formları taskbarda gösterme ile ilgili problem...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

formları taskbarda gösterme ile ilgili problem...

Mesaj gönderen serkan »

selam arkadaşlar..
açılan her formu taskbarda göstermek için aşağıdaki kodları kullanıyorum...
form2'de

Kod: Tümünü seç

    protected 
    procedure CreateParams(var Params: TCreateParams); override;

Kod: Tümünü seç

procedure Tyenistok.CreateParams(var Params: TCreateParams);
begin
Inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
end;
ancak form2 üzerinde başka bir formu showmodal dösterdiğimde form1 form2 nin üzerine geliyor.bunu nasıl engelleriz acaba.yeni projelerimde arayüz ve navigation olayını bu şekilde çözmek istiyorum.benim için çok önemli..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba..

- Kısa bir öneride bulunucam.

- Taskbar'da görünecek formları DPR proje dosyandan silip, lazım olduğunda create edersen z-order denen bahsi geçen sıralama hatalarını aşarsın diye değerlendiriyorum...

Örnek:

Kod: Tümünü seç

procedure TForm2.Button1Click(Sender: TObject);
begin
  If NOT Assigned(Form3) then
  Application.CreateForm(TForm3, Form3);

  Form3.ShowModal;
  Form3.Free;
  Form3 := Nil;
end;
Resim
Resim ....Resim
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

hocam ne demek istediğini pek anlamadım..
form1:anaform
form2:taskbarda gösterilecek form(mdichil değil)
form3:form2 nin üzerinde showmodal gösterilmesini istediğim form.

yukardaki kodları form2 üzerinde kullanıyorum.form1 de form2.show dediğimde form2 gösteriliyor ve taskbarda ayrı bir uygulama gibi gözüküyor.buraya kadar prblem yok. form2 üzerinde form3.showmodal dediğimde form1 form2 nin üzerine geliyor ve form3 showmodal gözüküyor.form3 ü kapattığımda yine form2 aktif oluyor.ama neden form3 gösterilirken form2 arkaya form1 öne geliyor.bunu nasıl engellerim acaba.dediklerini örnekteki gibi ayrıntılı yazma şansın var ise sevinirim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Yanlış anlamış olmalıyım. Örnekleri incele.

Çalışan Exe dosyası :
http://rapidshare.de/files/34134922/Pro ... E.zip.html

Kaynak Kodu :
http://rapidshare.de/files/34135042/Pro ... e.zip.html
Resim
Resim ....Resim
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

selam hocam şuan müşteriden baktımda düzgün çalışıyor.tek problem form3'ün taskbarda gözükmesini istemiyorum.sadece form1(ana form olduğundan zaten gözükecek) birde form2 gözükecek.böylede iş görebilir ama form3 taskbarda gözükmeden form2 nin üstünde modal olarak gözükse çok tatlı olurdu.emeğine sağlık teşekkür ederim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Form3 taskbarda görünmeyecek de kimde görünecekse ona ait form handle vermen kafi.

inherited;
Params.WndParent := Form2.Handle;

dediğinde taskbar değil form2 onun pencere sahibi olur. ve dolayısı ile onun altında görünür. Application'un değil.

- Çalışmalarında başarılar...
Resim
Resim ....Resim
Cevapla