Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Form Deactivate
#1
Merhaba yine bir sorun ile sizlerleyim elimden geldiğince izah etmeye çalışacağım,

Bir Main formum var(WindowsState). Bu form üzerinde show olarak açılan diğer formlarım mevcut. Formlarım normal form böyle olmak zorunda. MainFormda altta pencereleri gösteren benim yazdığım bir componentim var. Bunun amacı form minimize edildiğinde veya hide edildiğinde pencereye son form görüntüsü ile ekleyerek formlar arasında pencereden gezmek.

Formlar minimize edildiğinde pencereye ekliyorum. Veya aşağıdan pencereye tıklanarak gizliyse gösterilmesini, gösteriliyor ise formun gizlenmesini ve pencereler arası geçişi yapıyorum.

GmjpQN.png

Bir form gösteriliyor iken Ana forma tıklanırsa veya deactive arka plana düşürtülürse küçültülüp pencerelere eklenecek. Peki bunuda yapıyorum sıkıntı yok. Kodumuz şu;

procedure TFrmAltForm.FormDeactivate(Sender: TObject);
Var Ind     : Integer;
   xBuldum : Boolean;
begin
 if xSKScreensHotForm <> nil then
 begin
   xBuldum := False;
   for Ind := 0 to Pred(xSKScreensHotForm.SKItems.Count) do
   begin
     if xSKScreensHotForm.SKItems[Ind].IsForm = Self then
     begin
       xBuldum := True;
       Break;
     end;
   end;
   if not xBuldum then
     xSKScreensHotForm.AddItem(Self,GetFormScreensHot(Self));
   Hide;
 end;
end;

Formu deactive duruma gelince aşağı menüye eklendi ve gizlendi. sonra menüden tıklandı ve form açıldı. Buraya kadarda sorun yok. Sorun bundan sonra.
Tekrar alt menüye tıklanınca form gizlenmiyor ve gösteriliyor. Peki kodumuz ne?

procedure TScreenImageButton.Click;
begin
 inherited;
 if IsForm <> nil then
 begin
   if IsForm.Showing then
     IsForm.Hide
   else
     IsForm.Show;
 end;
end;

Hatanın nerede olduğunu biliyorum fakat aklıma gelen bir çözümüm yok. 
Hatamız şu form gözüküyor iken alt pencereden tıklanıp gizlenilmeye çalışılırsa önce deactivate çalışıyor gizleniyor. Sonra butonun click olayı çalışıyor ve bakıyor ki gizli tekrardan gösteriyor. Yani butonlarım main formda olduğu için tıklanıldığı anda diğer form deactivate'e düşüyor.

Bunun için nasıl bir yol izlenilmeli.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla


Bu Konudaki Yorumlar
Form Deactivate - Yazar: narkotik - 08-04-2019, Saat: 12:57
Cvp: Form Deactivate - Yazar: Tuğrul HELVACI - 08-04-2019, Saat: 16:54
Cvp: Form Deactivate - Yazar: narkotik - 08-04-2019, Saat: 17:03
Cvp: Form Deactivate - Yazar: Fesih ARSLAN - 08-04-2019, Saat: 17:24
Cvp: Form Deactivate - Yazar: Tuğrul HELVACI - 09-04-2019, Saat: 09:01
Form Deactivate - Yazar: narkotik - 08-04-2019, Saat: 18:54
Cvp: Form Deactivate - Yazar: Tuğrul HELVACI - 09-04-2019, Saat: 09:08

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çok sayıda form'daki DBgridlerin kolon genişliğini değiştirmek boreas 6 425 10-07-2019, Saat: 15:09
Son Yorum: boreas
  Form içinde exe nasıl çalıştırılır? Cyb3r 2 385 04-07-2019, Saat: 09:53
Son Yorum: Cyb3r
  Form create buton visible durumu Yeliz 6 693 01-02-2019, Saat: 14:07
Son Yorum: Yeliz
  Form Kapatma olayında diğer kontrolleri atlatma cinarbil 6 926 21-12-2018, Saat: 09:19
Son Yorum: cinarbil
  MDIChild Form Sorunu nevzatc 1 417 27-11-2018, Saat: 01:18
Son Yorum: ihalilcoban



Konuyu Okuyanlar: 1 Ziyaretçi