Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Formular im Hintergrund aufbauen?

  Alt 25. Feb 2010, 16:38
Naja eine Möglichkeit wäre es wenn du einen Ladedialog hättest, der sich erst schließt wenn das Formular halt alles erstellt hat und solange ist das Hauptformular halt unsichtbar.

Edit: Der genannte "Splashscreen"

Dann könntest du noch z.b. dem Fenster einen Initial-Zustand geben, den Cursor zur Sanduhr machen und die Zeichenfunktion des Formulars deaktivieren. Dann alles initialisieren und den Cursor, sowie die Zeichenfunktion wiederherstellen.

Zum Deaktivieren des Zeichenvorgang eines Formulars:

Delphi-Quellcode:

procedure LockWinControl( const oWinControl: TWinControl );
begin
  if Assigned ( oWinControl ) then
  begin
    // Handle erstellen, falls noch nicht vorhanden
    oWinControl.HandleNeeded;
    // Deaktivieren von Repaint
    SendMessage( oWinControl.Handle, WM_SETREDRAW, 0, 0 );
  end;
end;

procedure UnlockWinControl( const oWinControl: TWinControl );
begin
  if Assigned ( coWinControl ) then
  begin
    // Handle erstellen, falls noch nicht vorhanden
    oWinControl.HandleNeeded;
    // Aktivieren von Repaint
    SendMessage( oWinControl.Handle, WM_SETREDRAW, 1, 0 );
    // Repaint ausführen
    RedrawWindow( oWinControl.Handle, nil, 0, RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN );
  end;
end;
Oder natürlich die eleganteste Lösung wäre wohl Zustandshandling, wobei ich dazu irgendwie grad keinen Link finde...

MfG Alaitoc
  Mit Zitat antworten Zitat