Merhaba arkadaşlar,
Registry'de autorun'a programı ekledim. Hiçbir style uygulamadığımda program parametre ile registry'den açıldığında minimize işlemi gerçekleşiyor ve uygulama gizleniyor.
Vcl.Style'den bir style uyguladığımda ve ve bu style ile program registry'den açıldığında program minimize olmasına karşın gizlenmiyor. Ben aşağıdaki araç çbuğunda görünsün istemiyorum programı, "hide" olsun.
Bunu nasıl yapabilirim?
Uygulamayı minimize edildiğinde gizlemek için ApplicationEvents componentini kullanıyorum.
Vcl.Style ve başlangıçta programı gizleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Vcl.Style ve başlangıçta programı gizleme
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: Vcl.Style ve başlangıçta programı gizleme
Taskbar'dan gizlemek için,
ShowWindow(Application.Handle, SW_Hide);
Tekrar göstermek için
ShowWindow(Application.Handle, SW_Show);
ShowWindow(Application.Handle, SW_Hide);
Tekrar göstermek için
ShowWindow(Application.Handle, SW_Show);
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Re: Vcl.Style ve başlangıçta programı gizleme
Maalesef bilgisayar açılışında bu bir işe yaramıyor. Sorunu şöyle hallettim:
shouldMinimize adında boolean tipinde bir değişken oluşturdum. Eğer /winstart parametresi ile program açılırsa shouldMinimize true olacak:
Daha sonra Thread execute procedure'ünü şöyle yazdım.
DoMinimizeSync procedure'ünün kodu ise şöyle:
shouldMinimize adında boolean tipinde bir değişken oluşturdum. Eğer /winstart parametresi ile program açılırsa shouldMinimize true olacak:
Kod: Tümünü seç
if ParamStr(1) = '/WinStart' then
shouldMinimize:=True else shouldMinimize:=false;
Kod: Tümünü seç
procedure tthread_backup.Execute;
begin
try
priority:=tpnormal;
freeonterminate:=false;
while (not terminated) do begin
gtick:=gettickcount;
if gtick-last_second>SECOND then begin
last_second:=gtick;
if shouldMinimize then Synchronize(DoMinimizeSync);
if gtick-last_5_sec>FIVESECONDS then begin
last_5_sec:=gtick;
FolderChangeTimer;
if gtick-last_minute>MINUTE then begin
last_minute:=gtick;
Synchronize(CheckOfflines2Backup);
end;
end;
end;
end;
except
end;
end;
Kod: Tümünü seç
procedure tthread_backup.DoMinimizeSync;
begin
frmMain.ApplicationEvents1Minimize(frmMain);
frmMain.windowstate:=wsminimized;
shouldMinimize:=false;
end;
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: Vcl.Style ve başlangıçta programı gizleme
Tekrar merhaba,
Ben sorunu yanlış anlamışım. Açılışta gizlemek için bir parametreye ihtiyaç var ve sen de WinStart diye kullanmışsın.
Projenin kaynak koduna, Application.Run'dan önce aşağıdaki kodu yazarsan açılışta parametrene bağlı olarak gizlenecektir. Hiç thread ile uğraşmana gerek yok.
Ben sorunu yanlış anlamışım. Açılışta gizlemek için bir parametreye ihtiyaç var ve sen de WinStart diye kullanmışsın.
Projenin kaynak koduna, Application.Run'dan önce aşağıdaki kodu yazarsan açılışta parametrene bağlı olarak gizlenecektir. Hiç thread ile uğraşmana gerek yok.
Kod: Tümünü seç
...
// ShowMainForm varsayılan olarak True değerine sahiptir. Burada parametreye bağlıyoruz.
Application.ShowMainForm := (ParamStr(1) <> '/WinStart') and (ParamStr(1) <> '/hide') and (ParamStr(1) <> '-hide');
...
Application.Run;