RDP - modalno okno skrito za trenutnim

Win32 api funkcije.
Odgovori
Rokson
Prispevkov: 66
Pridružen: 17.03.2004 13:07:44

RDP - modalno okno skrito za trenutnim

Odgovor Napisal/-a Rokson » 20.06.2012 12:44:15

Kolikor sem guglal, sklepam, da se zadeva pojavlja samo v povezavi z oddaljenim namizjem.
Modalno okno se včasih pojavi ZA trenutnim, ne pa spredaj, kot bi se moralo. Če je okno majhno (kar ponavadi je), je popolnoma skrito in z miško ga ne moreš klikniti. Telovadba z Alt-Tab slejkoprej pomaga, a je stranka vseeno slabe volje.
Obe "rešitvi", ki mi ju je predlagal Gugelj (DisableProcessWindowsGhosting in Application.OnActivate (in notri GetLastActivePopup... )) sta se izkazali kot *ne* delujoči.

A ima kdo to rešeno?

Rokson

Aja, Delphi 5 (vem, vem...), če je to kaj važno.

zippo
Prispevkov: 264
Pridružen: 14.07.2002 12:11:29

Re: RDP - modalno okno skrito za trenutnim

Odgovor Napisal/-a zippo » 17.07.2012 22:58:35

Hmm.. Morda strel v temo, ampak poskusi menjati ownerja ob kraciji okna, npr. na Application..

Malo abstraktna koda:

Koda: Izberi vse

Mywindow := TMyWindow.Create(Application);
MyWindow.ShowModal;
To je tako, vrženo iz rokava, ker sam še nisem naletel na tako težavo.

mig640
Prispevkov: 59
Pridružen: 03.01.2008 11:36:54

Re: RDP - modalno okno skrito za trenutnim

Odgovor Napisal/-a mig640 » 18.07.2012 13:43:36

Poglej ti dve temi http://delphi.about.com/od/delphitips20 ... ession.htm oziroma GetSystemMetrics($1000).
Sam sem to delal tako, da sem modal formo dal v Form1.bringtoTop. vezano na timer, če je bil ts mode..
Bolj zanimivo se mi je zdela izjava da Delphi ni #TS compatible#.

Rokson
Prispevkov: 66
Pridružen: 17.03.2004 13:07:44

Re: RDP - modalno okno skrito za trenutnim

Odgovor Napisal/-a Rokson » 25.07.2012 14:01:22

zippo napisal/-a:Hmm.. Morda strel v temo, ampak poskusi menjati ownerja ob kraciji okna, npr. na Application..

Malo abstraktna koda:

Koda: Izberi vse

Mywindow := TMyWindow.Create(Application);
MyWindow.ShowModal;
To je tako, vrženo iz rokava, ker sam še nisem naletel na tako težavo.
Na mojem seznamu "Thou Shalt Not..." je xxxx.Create(Application) precej visoko zaradi vseh miljavžent notifikacij ob kreiranju in ubijanju.
mig640 napisal/-a:Poglej ti dve temi http://delphi.about.com/od/delphitips20 ... ession.htm oziroma GetSystemMetrics($1000).
Sam sem to delal tako, da sem modal formo dal v Form1.bringtoTop. vezano na timer, če je bil ts mode..
Bolj zanimivo se mi je zdela izjava da Delphi ni #TS compatible#.
Dobra zamisel z urco in .BringToTop.
Ker se mi to pojavlja na več koncih, sem si naredil class tModalForm, ki vsake toliko časa kliče .BringToTop. in ga shranil v repozitorij.
Krasno. Pri formah, ki jih naredim na novo (File > New... > Forms > ModalForm (inherit)) dela lepo.
Naivno sem si predstavljal, da bom pri že narejenih dialogih v DFM in PAS datoteki spremenil tFORM v tModalForm (in seveda dodal uModalForm v interface uses), vendar mi ob prevajanju javlja: "Declaration of class TModalForm is missing or incorrect".
Kako naj se spopadem s tem?

Rokson

Odgovori