Einzelnen Beitrag anzeigen

Jim Carrey
(Gast)

n/a Beiträge
 
#3

AW: Forms umschalten - ohne zwischendurch Desktop zu sehen?

  Alt 16. Okt 2016, 10:04
Da fällt mir spontan ein ...

Delphi-Quellcode:
const
 WM_FORM_VISIBLE = WM_USER + 1;

type
 TDeineAnwendung = class(TForm)
 // ....
 private
  bFormVisibleChecked: Boolean;
  procedure WMFormVisible(var msg: TMessage); message WM_FORM_VISIBLE;
 public
 // ....
end;

implementation

// ....

procedure TDeineAnwendung.FormCreate(Sender: TObject);
begin
 bFormVisibleChecked := False;
end;

procedure TDeineAnwendung.WMFormVisible(var msg: TMessage);
begin
 if not bFormVisibleChecked then
  begin
   showmessage('Zweites Formular ist jetzt komplett sichtbar - verstecke Formular eins!');
   bFormVisibleChecked := True;
  end;
end;

procedure TDeineAnwendung.FormPaint(Sender: TObject);
begin
 if not bFormVisibleChecked then
  PostMessage(Handle, WM_FORM_VISIBLE, 0, 0);
end;
Die showmessage() wird erst angezeigt, wenn Formular 2 komplett sichtbar ist.
In WMFormVisible kannst du jetzt den Begrüßungsbildschirm ausblenden, schließen oder was auch immer machen.
  Mit Zitat antworten Zitat