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: TescilsizUzman - 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
  Optik form kodlama baloglurecep 8 1.535 16-11-2023, Saat: 16:23
Son Yorum: COMMANDX
Sad Tabsheet içinde Form Create, Close olayları YILDIRIMBEY 0 281 24-08-2023, Saat: 17:26
Son Yorum: YILDIRIMBEY
  Runtime Form Oluşturmak ermanispir@gmail.com 5 1.211 02-08-2023, Saat: 09:31
Son Yorum: SimaWB
  mdi child form sorunu goabdullah 3 3.227 20-03-2023, Saat: 21:37
Son Yorum: CesuR
Question MdiChild Form İçin Create Helper? YILDIRIMBEY 1 650 10-10-2022, Saat: 10:53
Son Yorum: YILDIRIMBEY



Konuyu Okuyanlar: 1 Ziyaretçi