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
  Delphi7 DBGrid'e sağ tık yaparak form açmak batuhann 6 408 18-04-2020, Saat: 22:17
Son Yorum: denizfatihi
  ekranın köşesine yapışık bir button, form erdogan 4 452 03-03-2020, Saat: 15:56
Son Yorum: erdogan
  Form yada panel içinde taşıma info@guzelceker.com 2 495 13-12-2019, Saat: 15:15
Son Yorum: ozcanm
  Sekmeler Halinde Form Açılması apachi2006 17 2.385 28-10-2019, Saat: 12:16
Son Yorum: apachi2006
  Çok sayıda form'daki DBgridlerin kolon genişliğini değiştirmek boreas 6 1.219 10-07-2019, Saat: 15:09
Son Yorum: boreas



Konuyu Okuyanlar: 1 Ziyaretçi