AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Procedure ausführen nachdem das Fenster angezeigt wird

Procedure ausführen nachdem das Fenster angezeigt wird

Ein Thema von NoName1 · begonnen am 5. Nov 2018 · letzter Beitrag vom 7. Nov 2018
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Procedure ausführen nachdem das Fenster angezeigt wird

  Alt 5. Nov 2018, 19:00
Hallo,
Zitat:
Ausprobiert habe ich das Ereignis OnActivate, dies war aber nicht das richtige Ereignis.
Das müsste aber das richtige Ereignis sein.
Zeig doch mal Deinen Code.
Heiko
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
201 Beiträge
 
Delphi 12 Athens
 
#2

AW: Procedure ausführen nachdem das Fenster angezeigt wird

  Alt 6. Nov 2018, 15:17
Hallo,
Zitat:
Ausprobiert habe ich das Ereignis OnActivate, dies war aber nicht das richtige Ereignis.
Das müsste aber das richtige Ereignis sein.
Zeig doch mal Deinen Code.
Alles klar. Es stand noch etwas im Code, das wirklich nur ausgeführt werden kann, wenn das Formular
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;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Procedure ausführen nachdem das Fenster angezeigt wird

  Alt 6. Nov 2018, 19:09
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?
Heiko

Geändert von hoika ( 6. Nov 2018 um 19:12 Uhr)
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
201 Beiträge
 
Delphi 12 Athens
 
#4

AW: Procedure ausführen nachdem das Fenster angezeigt wird

  Alt 7. Nov 2018, 16:04
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?
Na ja, das Problem war, dass der Focus nicht auf das VST gestellt werden und somit auch nicht der erste
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.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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