[Delphi] FlashWindow i.c.m. ShowModal

Pagina: 1
Acties:

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ik open m.b.v. ShowModal een nieuw venster. Beide vensters zijn tegelijk zichtbaar op het scherm en de gebruiker moet (uiteraard) het 'nieuwe' venster sluiten voordat het 'oude' venster kan worden benadert.
Ik wil echter dat als de gebruiker probeert het niet-modal venster te benaderen het modal venster geflasht wordt m.b.v. de FlashWindow API functie.
Is dit mogelijk? (info die ik vind gaat alleen over FlashWindow i.c.m. een timer)

Developer Accused Of Unreadable Code Refuses To Comment


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:22

Creepy

Tactical Espionage Splatterer

Heb je het al uitgeprobeerd? Het lijkt me dat als je FlashWindow aanroept met het modal scherm dat dat modal scherm dan moet gaan flashen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Icelus
  • Registratie: Januari 2004
  • Niet online
Dat werkt wel. Het probleem is dat ik moet kunnen nagaan of het venster de focus verliest. Omdat dit echter een modal venster is is (laat Windows niet toe) dit niet mogelijk is.

Developer Accused Of Unreadable Code Refuses To Comment


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Je zou ook zelf ShowModal kunnen na-apen door gewoon Show te gebruiken, maar zodra het oude venster geactivate wordt (OnActivate) gebruik je FlashWindow en zet je het nieuwe scherm naar de voorgrond met BringToFront.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Ik snap de vraag eigenlijk niet, of denk dat je iets fout doet.

Als ik een application maak, en daarin het mainform een ander form modal laat weergeven, kan ik het mainform domweg geen focus meer geven. Als ik op het mainform klik, krijg ik direct het modal form en heeft dat ook de focus. De enige manier waarop dat form de focus kan kwijtraken, is als ik een andere applicatie activeer.

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ok, ik heb het gevonden:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
interface

type  TForm = class(TForm)
       public
         procedure CreateParams(var Para: TCreateParams); override;
      end;

implementation

procedure TForm.CreateParams(var Para: TCreateParams);
begin
  inherited;
  Para.WndParent := GetActiveWindow;
end;
Bovenstaande in modal-venster zetten. Wanneer er nu buiten het modal-venster wordt geklikt flasht de titel van het modal-venster.

Developer Accused Of Unreadable Code Refuses To Comment

Pagina: 1