Kullanılmaz haldeki formu kapatmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Kullanılmaz haldeki formu kapatmak

Mesaj gönderen Yavuz »

Bir formun enablesi false yapıldığında form kullanılmaz hale geliyor. Ama bu şekildeki bir formu kendi üzerinden kapatmak mümkün olmuyor.
Ama ben formu kendi üzerinden kapatmak istiyorum Bunun için bir yöntem bilen varmı . Şeffaf bir nesnenin formun üzerine yayılıp enablesi false yapılabileceği aklıma geldi ama buna uygun bir bileşen bulamadım.
Tüm bileşenlerin false yapılması olabilir ama görüntülerinin pasif olmasını istemiyorum. Aynen formun enable olduğu durumdaki gibi görünmelerini istiyorum.
Bunun için yapılabilecek bir işlem var mı ?
Teşekkürler ...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
forma bir tane panel koy diğer tüm bileşenleri bu panelin üzerine koy.
(eğer kaydırma çubuklarına ihtiyacın oluyorsa scroolbox da olabilir) sonar bu panelin enable sini false yap.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Kullanılmaz haldeki formu kapatmak

Mesaj gönderen ikutluay »

Yavuz yazdı:Bir formun enablesi false yapıldığında form kullanılmaz hale geliyor. Ama bu şekildeki bir formu kendi üzerinden kapatmak mümkün olmuyor.
Ama ben formu kendi üzerinden kapatmak istiyorum Bunun için bir yöntem bilen varmı . Şeffaf bir nesnenin formun üzerine yayılıp enablesi false yapılabileceği aklıma geldi ama buna uygun bir bileşen bulamadım.
Tüm bileşenlerin false yapılması olabilir ama görüntülerinin pasif olmasını istemiyorum. Aynen formun enable olduğu durumdaki gibi görünmelerini istiyorum.
Bunun için yapılabilecek bir işlem var mı ?
Teşekkürler ...
meraba
neden buna ihtiyac duyuyorsunki?
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Admin/user tanımlı bir program için ihtiyaç duydum. Admin olmayanlar form üzerindeki nesneri aynen görsünler ama şifresiz işlem yapamasınlar istedim. Tek tek tüm elemanların enablesini değiştirmek ise çok dolambaçlı geldi.
aslangeri nin çözümü çok basit ve akıllıca.

ÇokTeşekkürler ...
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

tüm formlarla uğraşmak istemezseniz şunu bi prosedür haline getirip kullanabilirsiniz:

Kod: Tümünü seç

for i := 0 to Pred(ControlCount) do
  Controls[0].Enabled := False;
Tüm kontrollerin enable'ını false yapıp formunuzun enable'ının true kalmasını sağlayabilirsiniz =)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

en uygun öneri aslangeri tarafından yapılmış. tüm kontrolleri gezmektense bir panel iyidir
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

ikutluay yazdı:en uygun öneri aslangeri tarafından yapılmış. tüm kontrolleri gezmektense bir panel iyidir
Neye göre iyi? =)

Aradaki farklar:
1) Bu kodu fonksiyon haline getirirseniz Panel.Enabled = bool yazacağınız yere SetControlsEnabled(Self, bool) gibi bi ifade yazarsınız biter. Formlardaki kontrolleri kesip, panel ekleyip, panelin özelliklerini ayarlayıp, kontrolleri tekrar paste etmek zorunda kalmazsınız. Ha, bu zaman farkı 10-15 form için bişi değil, ama form sayısı çoksa ve form inheritance filan kullanılmadıysa ölümcül olur.

2) Görünüm de farklı oluyor. Panel'in enable'ını false yaptığınızda misal editlerdeki yazılar gri olmuyor.

3) Formda TControl'den türetilmemiş bi kontrol varsa (olur olur) benim kod hatalı olur, TComponent'leri tarayıp o kontrole özel kod eklemek gerekir.

vs. vs...

Ben de @aslangeri'nin çözümü iyi değil demiyorum, her kod farklı yerlerde iyi.

Kolay gelsin...

Alttaki cevaba istinaden edit: düşündüğümden de fazla öznel bi konu, hayırlısı...
En son ulu coder tarafından 20 Eki 2007 03:41 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

ben durum için konuştum... sizin kod kötüdür anlamında demedimki.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla