![]() |
Procedure ausführen nachdem das Fenster angezeigt wird
Guten Tag,
ich möchte eine procedure ausführen lassen, nachdem die Form angezeigt wurde. Die procedure überprüft ein Wert auf vorhandensein. Ist der Wert nicht vorhanden, dann soll der User einen Wert eingeben. Dazu wäre es gut, wenn das Formular schon im vollen Umfang angezeigt wurde. Ausprobiert habe ich das Ereignis OnActivate, dies war aber nicht das richtige Ereignis. Im OnShow-Ereignis funktionierte dies auch nicht. Es müsste so etwas, wie nach dem Anzeigen der Form "OnShowAfter", geben. Wie würdet Ihr dies lösen? Oder übersehe ich mal wieder ein Ereignis? Vielen Dank für Eure Hilfe. |
AW: Procedure ausführen nachdem das Fenster angezeigt wird
|
AW: Procedure ausführen nachdem das Fenster angezeigt wird
Hallo,
Zitat:
Zeig doch mal Deinen Code. |
AW: Procedure ausführen nachdem das Fenster angezeigt wird
Zitat:
sichtbar ist. Den Code dazu:
Delphi-Quellcode:
procedure TfrmLogeBuchungen.FormActivate(Sender: TObject);
var pJahr: Word; pMonat: Word; pTag: Word; pNode: PVirtualNode; pDaten: TOBuJahrVSTDaten; begin // Anfangsbestand erfassen nicht vergessen DecodeDate(Date, pJahr, pMonat, pTag); BuJahr := pJahr; LeseBuJahreEin; // Buchungsjahr in VirtualStringTree if vstBuchungsJahr.RootNodeCount = 0 then begin smdlg1.Caption := 'Ein Buchungsjahr erfassen ...'; smdlg1.Buttons.Clear; smdlg1.Buttons.Add.Caption := 'Ja, erfassen'; smdlg1.Buttons.Add.Caption := 'Nein, nicht erfassen'; smdlg1.Buttons[0].ButtonResult := mrOk; smdlg1.Buttons[1].ButtonResult := mrCancel; if smdlg1.ExecuteDialog = mrOk then begin NeuesBuchungsJahr; end; end; // Den else-Zweig in eine neue Procedur packen und im OnShowereignis ausführen lassen, dann klappt es {else begin vstBuchungsJahr.SetFocus; pNode := vstBuchungsJahr.GetFirst; vstBuchungsJahr.FocusedNode := pNode; vstBuchungsJahr.Selected[pNode] := True; pNode := vstBuchungsJahr.FocusedNode; pDaten := TOBuJahrVSTDaten(vstBuchungsJahr.GetNodeData(pNode)^); BuJahr := pDaten.FBuJahr; BuKontenPlanID := pDaten.FKontenPlanID; if pDaten.FAbschluss = 'J' then BuAbschluss := True; // Weitere Tabellen öffnen ------------ BuchungenOeffnen; end;} end; |
AW: Procedure ausführen nachdem das Fenster angezeigt wird
Hallo,
und wo ist jetzt Dein Problem? Wird der VST nicht komplett angezeigt? Ich nehme mal an, dass smdlg1 Dein Dialog ist, der angezeigt werden soll? |
AW: Procedure ausführen nachdem das Fenster angezeigt wird
Zitat:
Datensatz ausgelesen werden konnte. An dieser Stelle kam es auch zum Programmabbruch. Aber wie erwähnt, ich habe den Code der im Elsezweig steht in eine neue Procedure gepackt und greife auf die Procedure im OnShow-Ereignis zu. Das wird nun auch fehlerfrei ausgeführt. Danke für Deine Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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