![]() |
Delphi-Version: 10.1 Berlin
Wann wird eine Form angezeigt ?
Moin,
ich stehe mal wieder vollkommen auf dem Schlauch: Ich habe ein Programm das automatisch - also ohne Start-Button oä. - bei Form.Show abläuft. Wann bzw. wie kann ich denn während des Programmlaufes die Form anzeigen ?? Ich habe mal ein Textprogramm erstellt - nur die Form, darauf ein Label und eine Textdatei mit 20.000 Zeilen. Ich merke auch das das Programm ausgeführt wird, es ist aber nicht sichtbar. Gruss Hans
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var ArtikelString: TStringList; Zeile: String; i, j: Integer; begin ArtikelString := TStringList.Create; ArtikelString.LoadFromFile('d:\temp\test\artikelliste.csv'); for j := 1 to 10 do begin for i := 0 to ArtikelString.Count -1 do begin Zeile := ArtikelString.Strings[i]; Form1.Label1.Caption := Copy(Zeile, 1, 12); Form1.Label1.Refresh; end; end; ArtikelString.Free; Application.Terminate; end; end. |
AW: Wann wird eine Form angezeigt ?
Nach Vorbereitung -> Selbstmord
Zitat:
|
AW: Wann wird eine Form angezeigt ?
Zitat:
|
AW: Wann wird eine Form angezeigt ?
Weil Form.Show vor dem Anzeigen ausgeführt wird.
Und auch wenn die Form sichtbar wäre, wäre ja wenig sichtbar |
AW: Wann wird eine Form angezeigt ?
Dein Problem kann man schön mit WMFormVisible lösen
Delphi-Quellcode:
const
WM_FORM_VISIBLE = WM_USER + 1; private FormInitialised: Boolean; procedure WMFormVisible(var msg: TMessage); message WM_FORM_VISIBLE; end; implementation procedure TForm1.FormCreate(Sender: TObject); begin FormInitialised := False; end; procedure TForm1.WMFormVisible(var msg: TMessage); begin if not FormInitialised then begin FormInitialised := True; Code hier rein end; end; |
AW: Wann wird eine Form angezeigt ?
Zitat:
|
AW: Wann wird eine Form angezeigt ?
Zitat:
|
AW: Wann wird eine Form angezeigt ?
Zitat:
"message WM_FORM_VISIBLE;" Undeklarierter Bezeichner "WM_FORM_VISIBLE" Gruß Hans |
AW: Wann wird eine Form angezeigt ?
Zitat:
Zitat:
Hans |
AW: Wann wird eine Form angezeigt ?
Gehen wir davon aus, dass das Formular momentan so aufgerufen wird:
Delphi-Quellcode:
Dann könnte man den Aufruf dahingehend ändern:
procedure TMainForm.Button1Click(Sender: TObject);
begin Form1.Show; end;
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
begin Form1.Show; Form1.DoSomething; // Diese Methode enthält den Inhalt des jetzigen OnShow-Ereignisses. Close; end;
Delphi-Quellcode:
Eventuell könntest Du uns aber auch mal die Stelle in Deinem Quelltext zeigen, an der Form1 angezeigt werden soll. Was passiert da vorher noch so alles?
procedure TForm1.DoSomething;
var ArtikelString: TStringList; Zeile: String; i, j: Integer; begin ArtikelString := TStringList.Create; ArtikelString.LoadFromFile('d:\temp\test\artikelliste.csv'); for j := 1 to 10 do begin for i := 0 to ArtikelString.Count -1 do begin Zeile := ArtikelString.Strings[i]; Form1.Label1.Caption := Copy(Zeile, 1, 12); Form1.Label1.Refresh; end; end; ArtikelString.Free; Close; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz