![]() |
VCL-Anwendung starten und Funktion ausführen
Irgendwie stehe ich gerade auf dem Schlauch. :?
Ich habe eine Anwendung, die Dateien verarbeitet. Die soll einfach nur ein Fenster (VCL) anzeigen und direkt nach dem Start loslaufen und Meldungen im Fenster ausgeben, ohne dass man noch irgendwas anklicken soll. Bekommt man das irgendwie hin, ohne die Ausführung in einem Thread laufen zu lassen? |
AW: VCL-Anwendung starten und Funktion ausführen
Hallo,
ich mache das so:
Delphi-Quellcode:
und dann
...
Application.CreateForm(TMyForm, MyForm); Application.OnIdle := MyForm.FirstAction; Application.Run;
Delphi-Quellcode:
procedure TMyForm.FirstAction;
begin Application.OnIdle := nil; ... end; |
AW: VCL-Anwendung starten und Funktion ausführen
Nimm einen Timer. Nicht schön, geht aber.
Warum keinen Thread? |
AW: VCL-Anwendung starten und Funktion ausführen
OnFormShow?
Sherlock |
AW: VCL-Anwendung starten und Funktion ausführen
Im FormCreate einfach die Funktion aufrufen, die automatisch gestartet werden soll?
Ein VCL-Programm von mir, das wahlweise als 'normale' Anwendung oder als Batchprogramm laufen soll, macht das so:
Delphi-Quellcode:
Oder kurz und knapp:
begin
Application.Initialize; Application.CreateForm(TfmDPMain, fmDPMain); Application.CreateForm(TfmUrlListe, fmUrlListe); Application.CreateForm(TfmAbout, fmAbout); Application.CreateForm(TdmSynHighlighter, dmSynHighlighter); Application.CreateForm(TfmKonfigurationAuswaehlen, fmKonfigurationAuswaehlen); if fmAbout.bMD5Checked then begin fmDPMain.acl.CreateMenu; if ParamCount = 1 then begin Try fmDPMain.Show; fmDPMain.edBatchVerarbeitungIniFile.Text := ParamStr(1); fmDPMain.acIniDateiLadenExecute(Nil); fmDPMain.pc.ActivePageIndex := 2; fmDPMain.acBatchAusfuehren.Tag := 1; fmDPMain.acBatchAusfuehrenExecute(Nil); fmDPMain.acSchliessenExecute(nil); except on e : Exception do begin ShowMessage(e.Message); end; end; fmUrlListe.tbUrlListe.SavePersistent; fmUrlListe.tbUrlListe.Close; end else begin Application.Run; end; end; end. Statt
Delphi-Quellcode:
Application.Run;
Delphi-Quellcode:
Form1.Show;
DieAuszufuehrendeRoutine; Form1.Close; |
AW: VCL-Anwendung starten und Funktion ausführen
Super, ich danke euch. Mir hat einfach das Form.Show gefehlt. So funktioniert es :-D
Kein Thread deswegen, weil das nur ein einfacher Job ist, der einmal verwendet wird und ich es nicht zu kompliziert machen wollte ;) |
AW: VCL-Anwendung starten und Funktion ausführen
Hallo,
ich würde statt OnShow OnActivate benutzen. OnShow kann mehrfach aufgerufen werden. PS: OK, OnActivate auch, aber hier hilft als 1. Zeile OnActivate := nil; |
AW: VCL-Anwendung starten und Funktion ausführen
Oder man spendiert sich ein
Delphi-Quellcode:
.
fRunOnce:Boolean
Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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