Formu ekranda en öne nasıl getirebilirim.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aligel54
Üye
Mesajlar: 34
Kayıt: 20 Nis 2009 10:34

Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen aligel54 » 13 Eyl 2017 11:40

Bilgisayar kullanıcısını uyaracak bir program yapıyorum.

Uyarı verilmesi gerektiğinde ekranda uyarı formu gözükecek.
Fakat windows ekranında onun üzerinde başka bir pencere açıksa, tarayıcı, youtube ya da bir program penceresi, uyarı anında formu ekranın en önüne getiremiyorum.
Ne olursa olsun ekranda en önde bu formu nasıl gösterebilirim.

Delphi 7 kullanıyorum.

Biraz araştırma yaptım. Alttakine benzer bir şeyler yaptım fakat bu komut sadece görev çubuğunda uyarı programının simgesinin yanıp sönmesine yarıyor. Ekranın önüne getiremiyorum.

Win := FindWindow(nil,Pchar(Application.Title));
if Win <> 0 then
begin
SetForegroundWindow(Win);
SetActiveWindow(Win);
end;

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2180
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen freeman35 » 13 Eyl 2017 12:01

TForm.Bringtofront;
D7 de var mı? bilmiyorum. Modal formun üzerine çıkar mı denemek gerek.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

aligel54
Üye
Mesajlar: 34
Kayıt: 20 Nis 2009 10:34

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen aligel54 » 13 Eyl 2017 12:40

Var ama bir işe yaramıyor.

Application.BringToFront;
UyariPanel.BringToFront;

ikisi de...

Kullanıcı avatarı
loaded
Üye
Mesajlar: 81
Kayıt: 12 Eki 2010 08:45
Konum: Konya
İletişim:

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen loaded » 13 Eyl 2017 02:58

Merhaba
Formunuza ait FormStyle özelliğini fsStayOnTop olarak ayarlarsanız, muhtemelen istediğiniz işlem gerçekleşecektir.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.

Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 04:38
Konum: İstanbul

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen adelphiforumz » 14 Eyl 2017 11:03

// ekranı en üstte tut
SetWindowPos(handle, hwnd_TopMost,0,0,0,0, swp_NoMove or swp_NoSize)
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana

aligel54
Üye
Mesajlar: 34
Kayıt: 20 Nis 2009 10:34

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen aligel54 » 14 Eyl 2017 12:47

adelphiforumz yazdı:
14 Eyl 2017 11:03
// ekranı en üstte tut
SetWindowPos(handle, hwnd_TopMost,0,0,0,0, swp_NoMove or swp_NoSize)

Evet işte bu oldu.
Ne açarsam açayım bütün pencerelerin önünde kalıyor.
Tam istediğim gibi oldu.

#loaded fsStayOnTop da bir işe yaramadı. Bilgin olsun.


Aslında sorunumu çözdüm. Ama bu sayfayı hep pencerelerin en üstünde tutuyor.
Ben sadece benim istediğim zaman pencerelerin en üzerine gelecek şekilde ayarlama yapmam gerekirse ne yapacağım?

Sanırım normal zamanlarda Hwnd_TopMost yerine başka bir şey yazmam gerekiyor.
Ve üstte göstermek istediğim anda Hwnd_TopMost yazmalıyım.

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 09:42
Konum: İstanbul
İletişim:

Re: Formu ekranda en öne nasıl getirebilirim.

Mesaj gönderen SimaWB » 15 Eyl 2017 03:08

HWND_TOPMOST yerine HWND_NOTOPMOST yazarsanı özellik iptal edilmiş olur
There's no place like 127.0.0.1

Cevapla