Einzelnen Beitrag anzeigen

NoName1

Registriert seit: 8. Mär 2018
191 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Procedure ausführen nachdem das Fenster angezeigt wird

  Alt 6. Nov 2018, 16: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