AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCL-Anwendung starten und Funktion ausführen

Ein Thema von bra · begonnen am 15. Mär 2017 · letzter Beitrag vom 16. Mär 2017
Antwort Antwort
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 14:01
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?
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#2

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 14:12
Hallo,
ich mache das so:

Delphi-Quellcode:
...
Application.CreateForm(TMyForm, MyForm);
Application.OnIdle := MyForm.FirstAction;
Application.Run;
und dann

Delphi-Quellcode:
procedure TMyForm.FirstAction;
begin
  Application.OnIdle := nil;
  ...
end;
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
341 Beiträge
 
Delphi 12 Athens
 
#3

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 14:13
Nimm einen Timer. Nicht schön, geht aber.

Warum keinen Thread?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 14:14
OnFormShow?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 14:29
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:
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.
Oder kurz und knapp:
Statt Application.Run;
Delphi-Quellcode:
Form1.Show;
DieAuszufuehrendeRoutine;
Form1.Close;
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 15. Mär 2017, 15:05
Super, ich danke euch. Mir hat einfach das Form.Show gefehlt. So funktioniert es

Kein Thread deswegen, weil das nur ein einfacher Job ist, der einmal verwendet wird und ich es nicht zu kompliziert machen wollte
  Mit Zitat antworten Zitat
hoika

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

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 16. Mär 2017, 07:48
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;
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#8

AW: VCL-Anwendung starten und Funktion ausführen

  Alt 16. Mär 2017, 10:18
Oder man spendiert sich ein fRunOnce:Boolean .

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz