![]() |
AW: Wann wird eine Form angezeigt ?
Man könnte das auch mit einer eigenen Message lösen, die man sich selbst schickt (aber nicht SendMessage, sondern PostMessage benutzen). Die wird dann abgearbeitet, wenn alle anderen Messages davor durch sind.
|
AW: Wann wird eine Form angezeigt ?
Zitat:
Delphi-Quellcode:
const
WM_FORM_VISIBLE = WM_USER + 1; |
AW: Wann wird eine Form angezeigt ?
Zitat:
Das ist übrigens (fast) der komplette Code, der Rest ist der Delphi-Standard:
Delphi-Quellcode:
Hans
unit TestUnit;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Label1: TLabel; procedure FormShow(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} 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, 9); Form1.Label1.Refresh; end; end; ArtikelString.Free; Application.Terminate; end; end. |
AW: Wann wird eine Form angezeigt ?
Moin...:P
Zitat:
Delphi-Quellcode:
const
WM_AFTERSHOW = WM_USER + 100; ... procedure FormAfterShow(var Msg: TMessage); message WM_AFTERSHOW; ... procedure TfoMain.FormAfterShow(var Msg: TMessage); begin // das ist dann sichtbar... end; |
AW: Wann wird eine Form angezeigt ?
Zitat:
|
AW: Wann wird eine Form angezeigt ?
Zitat:
Jetzt klappt es wunderbar :_) Hans |
AW: Wann wird eine Form angezeigt ?
Hallo,
warum nimmst Du nicht FormActivate? Und dort als letzte Zeile PostMessage(Handle, WM_CLOSE, 0, 0); |
AW: Wann wird eine Form angezeigt ?
Wenn Form1 das Hauptformular ist, kann man das Problem doch in der DPR lösen:
Man entferne dort die Zeile
Delphi-Quellcode:
und füge statt dessen dort ein:
Application.Run;
Delphi-Quellcode:
Das Close in DoSomething führt dazu, dass das Programm beendet wird. Man muss es dann nicht per Selbstmord über
Form1.Show;
Form1.DoSomething;
Delphi-Quellcode:
beenden.
Application.Terminate;
Eventuell vorhandene OnClose-Ereignisse werden dann auch noch korrekt verarbeitet. |
AW: Wann wird eine Form angezeigt ?
Zitat:
Gruß Hans |
AW: Wann wird eine Form angezeigt ?
Steig lieber auf eine ProgressBar Anzeige um, ein Panel was sich bei jedem Wechsel umbenennt verzögert die abarbeitung.
Besser eine Anzeige per Bar, das Max ist die Menge der Daten, bei unbekannt viel Daten halt Marquee Effekt und alle paar (10'er/50'er/100'er?) Schritte mal den Anwender informieren das was verarbeitet wurde. Nur so am Rande meine 2 Cent. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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-2025 by Thomas Breitkreuz