Mám takový problém s formulářem. Jde o to, že potřebuji aby formulář zůstal zobrazený na ploše i když uživatel klikne na "zobrazit plochu" ve windows. Prostě bych potřeboval poradit,jak udělat v Delphi aby byl formulář stále na ploše. Díky všem za pomoc.
Fórum › Delphi
Formulář vždy nahoře,jak na to??
FormShow si uprav takto :
procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_STYLE,0);
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_EXSTYLE,0);
self.OnShow:=nil;
end;
rX^ napsal:
FormShow si uprav takto :procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_STYLE,0);
setwindowlong(getwindow(self.Handle,GW_OWNER),GWL_EXSTYLE,0);
self.OnShow:=nil;
end;
nejak me to nefunguje, kdyz kliknu na "zobrazit plochu" tak mi formular zmizi, proste potrebuju udelat to, aby byl muj formular jakoby prilepeny na plose, i kdyz se klikne na "zobrazit plochu" aby nezmizel .... diky moc vsem!
To David Čermák :
Mr. Google odpovídá 5. výsledkem na:
http://www.bsdg.org/SWAG/DELPHI/0397.PAS.html
procedure TYourForm.FormCreate(Sender: TObject);
begin
SetWindowPos(YourForm.Handle,
HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE OR
SWP_NOACTIVATE OR
SWP_NOSIZE);
end;
{However, you need to keep reminding Windows to restore your window to the
top of the z-order ahead of any other topmost windows by adding the
following to the form's OnPaint event. Otherwise, other programs that
modify the z-order can paint over yours.}
procedure TYourForm.FormPaint(Sender: TObject);
begin
SetZOrder(True);
end;
Funguje :) Nizmene pozor na setZOrder - mel jem sitovou aplikaci a nezobrazovalo se ani hlaseni firewallu :)
Snad pomohlo. Bimbo
Bohuzel me to nefunguje..... formulář na nahore, ale kdyz stisknu windows tlacitko "Zobrazit plochu" tak zmizi ... dokazal by me nekdo prosim poradit, jak udelat aby byl formular jakoby prilepen na plochu a zustal zobrazen i kdyz stisknu "Zobrazit Plochu". Vsem mockrat dekuji za snahu a pomoc. Diky
Bimbo napsal:
To David Čermák :
Mr. Google odpovídá 5. výsledkem na:
http://www.bsdg.org/SWAG/DELPHI/0397.PAS.html
procedure TYourForm.FormCreate(Sender: TObject);
begin
SetWindowPos(YourForm.Handle,
HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE OR
SWP_NOACTIVATE OR
SWP_NOSIZE);
end;
{However, you need to keep reminding Windows to restore your window to the
top of the z-order ahead of any other topmost windows by adding the
following to the form's OnPaint event. Otherwise, other programs that
modify the z-order can paint over yours.}
procedure TYourForm.FormPaint(Sender: TObject);
begin
SetZOrder(True);
end;
Funguje :) Nizmene pozor na setZOrder - mel jem sitovou aplikaci a nezobrazovalo se ani hlaseni firewallu :)
Snad pomohlo. Bimbo
To co psal Bimbo funguje.. tak jsi tam něco špatně udělal protože to jede ají mě :-)
SetWindowPos(Form1.Handle, HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE OR
SWP_NOACTIVATE OR
SWP_NOSIZE);
Program je na povrchu a když někdo klikne na "Zobrazit plochu" pořád je program aktivní
Arlene napsal:
To co psal Bimbo funguje.. tak jsi tam něco špatně udělal protože to jede ají mě :-)SetWindowPos(Form1.Handle, HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE OR
SWP_NOACTIVATE OR
SWP_NOSIZE);
Program je na povrchu a když někdo klikne na "Zobrazit plochu" pořád je program aktivní
Toto funguje, ovsem problem je v tom jak osetrit aby se to provedlo jen kdyz se klikne na zobraz plochu .... potrebuji aby byl formular pod okny, ale kdyz se klikne na zobrazit plochu, tak aby byl jako jediny videt, tudiz se pri kliknuti na ZP znovu zobrazil. Bohuzel porad nemohu prijit na zpusob, jak to vyresit...
To David Čermák : Neni to co myslíš zajistitelné stylem WS_EX_TOOLWINDOW ? V CreateWindowEx dwExStyle, pridej nekam na zacatek behu Unity - SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
Pocitej s tim ze clic na zobrazeni plochy to sice nepokryje ale jakmile nechas zobrazit nejaky okno zpet, TVOJE se poslusne navrati a navic nezabira nic v task liste.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jak zavřít konkrétní formulář — založil Foles
Jak zakodovat formular pred samotnym odeslanim — založil Petr_Uk
Vždy se zavře — založil fmxrider
Předáváte string vždy referencí? — založil Radek Chalupa
Zalomeni textu vzdy po 80 znacich — založil spouny