Formun her durumda görünmesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Formun her durumda görünmesi

Mesaj gönderen Battosai »

Program arka planda çalışırken form2 ye show komutu veriyorum.Sorun ise başka programlar açıksa benim form arka planda kalıyor ve görünmüyor. Yani MSN deki gibi felan kullanıcı oturum açtı penceresi gibi her durumda görünsün istiyorum. Biraz araştırdım pek bi neticeye ulaşamadım bende sorayım bari dedim...Saygılar.
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

ilk önce Form1 yada ismi neyse formunu seç ardından properties den FormStyle ı bul oradan fsStayOnTop u seç ve hep yukarda kalsın.

Örnek kod istiyorsan FormCreate ye koy.

Form1.FormStyle := fsStayOnTop;
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Aradığım bunlar değil bunları uyguladım zaten bilindik parametreler bunlar ama malesef işe yaramıyor. Hatta form2.bringtofront komutuyla birlikte yapıncada olmuyor...Soruma dikkat edersen program arkaplanda çalışırken MSN oturum açma ekranı gibi gelecek ve arka planda kalmayacak form. "Stayontop" Form'un bağlı olduğu programda işe yarayan bir özelliktir.Yinede sağol.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Hayır değildir. Bu özelliği kullanan formlarım diğer uygulamaları aktif yaptığım zaman bile önde kalıyorlar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

sabanakman iyi diyorsunda benim formum zaten fsstayontop modunda uygulamamın ana penceresi açıkken form2 nin stayontop ında sıkıntı yok.Ama sorumu bir daha okursanızz anlayacaksınız meseleyi...kısacası fsstayontop işimi görmüyor....
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

Konu hakkında merak ettiğim için yazıyorum.

stay on top konusunda soru işaretlerim var. şaban akman mantıken doğru söylüyor. ama ayrı 2 formda bu özellik varsa ne olacak.

bu olayda mdichild kullanımı düşünülemezmi ?
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ı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

ikutluay mevzuyu dağıtmasak benim istediğim zaten kendi programım içindeki formların önde yada arkada olması değil program sistem tray çalışırken form2.show komutu veriyorum ve her durumda form2 görünsün istiyorum....
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Application.BringToFront
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

konuyu dağıtmayalım peki:)

ama sanırım cevabı buldum.

Kodu denemedim. ama sanırım çözüm budur.

fsalways on top olayı sadece bir uygulamanın formları içinde etkili imiş. değişik uygulamalar anlamında değil. sanırım isim yanlış algıya sebep oluyor. sonuç : formun on create olayında apiye başvurmamız gerekiyormuş. kodu oncreate ekle;

Kod: Tümünü seç

procedure TSeninformadi.FormCreate(Sender: TObject);
     begin
          SetWindowPos(seninform.Handle,
          HWND_TOPMOST,
          0, 0, 0, 0,
          SWP_NOMOVE OR
          SWP_NOACTIVATE OR
          SWP_NOSIZE);
     end;

bu olay yeterli değilmiş. birde diğer uygulamalar on paint olayında z-order değiştirebileceğinden senin bunuda gözönüne alman gerekiyormuş yani;

bunuda formun on paint olayına ekle

Kod: Tümünü seç

 SetZOrder(True);
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ı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Kod: Tümünü seç

procedure TSeninformadi.FormCreate(Sender: TObject); 
     begin 
          SetWindowPos(seninform.Handle, 
          HWND_TOPMOST, 
          0, 0, 0, 0, 
          SWP_NOMOVE OR 
          SWP_NOACTIVATE OR 
          SWP_NOSIZE); 
     end;
Bu kodda işe yaramadı...
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

soru çok basit gelebilir ama formla ilgili değişkenleri değiştirmek dikkatinden kaçmamıştır değil mi ?
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ı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

:) Onları değiştirmezsen çalışmaz zaten :)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Ya ne olur ne olmaz diye sordumdu üstad. adam çalışmadı diyor bazen derleme hatasımı aldı, kod mu hatalı bilemiyorsun.

ben o cevabı swag da bulmuştum. bence netten bir arattır. belki gözden kaçan bir şey vardır. mesela o uygulama içindeki formlarda geçerliş olma konusunu ben bilmiyordum. sistem bazında bir etkisi yokmuş
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 »

Jedi'ın içinde MSN'de çıkan pencerenin birebir aynısı olan bi bileşen vardı, ona da bi bakın derim. Jedi yüklü değil, bakamıyorum ben şimdi...
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

şimdi aklıma geldi, @White Rose'un ezan_namaz diye bi programı vardı, onda da yine MSN'deki gibi bi bilgi kutusu çıkıyordu, oyun oynarken bile görülüyordu, White Rose'a danışmak lazım.

(Bkz. Amerika'yı yeniden keşfetmemek)
Cevapla