AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Oncreate beenden und function aufrufen (ohne TTimer)
Thema durchsuchen
Ansicht
Themen-Optionen

Oncreate beenden und function aufrufen (ohne TTimer)

Ein Thema von 2Knuckels · begonnen am 12. Apr 2018 · letzter Beitrag vom 13. Apr 2018
Antwort Antwort
Seite 1 von 2  1 2      
2Knuckels

Registriert seit: 12. Nov 2016
9 Beiträge
 
#1

Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:21
Gibt es eine Möglichkeit nach dem Durchlauf der OnCreate Funktion eine andere Funktion aufzurufen aber OnCreate formal zu beenden. (und das ohne Timer zu benutzen)
(Umgebung: Win, XE10, VCL App)

procedure TForm1.FormCreate(Sender: TObject);
begin
Befehl1;
Befehl2;
....
"Aufruf einer neuen Funktion";

end;

-> und jetzt sollte FormCreate als Funktion beendet werden

function "Aufruf einer neuen Funktion";
begin
Befehl1;
Befehl2;
....
end;


so wie es oben geschrieben ist bleibt FormCreate bis zum Ende die ausführende Funktion und die andere Funktion wird nur als Unterfunktion aufgerufen, und das soll nicht so sein.

Kann man evtl. einen Win Handle verwenden um nach dem FormCreate beendet ist eine neue Funktion aufzurufen?
Bin für jeden Vorschlag Hilfe offen. (Wie man das mit einem Timer umsetzt ist bekannt, nur so würde ich das nur ungern lösen)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:27
Es gibt eine virtuelle procedure AfterConstruction , die du überschreiben kannst. Die wird unmittelbar nach dem Create aufgerufen. Für Fenster im Speziellen könnte OnShow oder eins der anderen Post-Create Events auch eine Möglichkeit sein.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
2Knuckels

Registriert seit: 12. Nov 2016
9 Beiträge
 
#3

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:31
Danke für den Tip mit OnShow, muss ich testen (wäre extrem einfach)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:35
In "halbwegs" neueren Delphis ist seit paar Jahren/FastJahrzehnten das TForm.OnCreate im AfterConstruction
und früher war es im Create.

Oder selber eine Ereignismethode erstellen, also für WM_USER+x und dann am Ende des Create, OnCreate oder OnShow per PostMessage anstoßen. (nur ein einfacher Call, anstatt einem goßen Timer)
http://www.cryer.co.uk/brian/delphi/...ow_message.htm
$2B or not $2B

Geändert von himitsu (12. Apr 2018 um 18:38 Uhr)
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#5

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:35
Zitat:
so wie es oben geschrieben ist bleibt FormCreate bis zum Ende die ausführende Funktion und die andere Funktion wird nur als Unterfunktion aufgerufen, und das soll nicht so sein.
Eventuell ein TTask, anonymer Thread o.ä. ? Dann ginge es direkt weiter und bliebe nicht in OnCreate hängen.
  Mit Zitat antworten Zitat
2Knuckels

Registriert seit: 12. Nov 2016
9 Beiträge
 
#6

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:38
Sorry Onshow klappt nicht.

Hab das kurz mit ShowMessage getestet und das wird aufgerufen noch bevor man das Form sieht.
Ich suche quasi etwas was eine "Main" Funktion aufruft in der dann das Programm die ganze Zeit läuft.

Werde es mit dem "WM_USER+x" testen (Danke)

Geändert von 2Knuckels (12. Apr 2018 um 18:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:42
Ja, das geht dann wohl tatsächlich eher in Richtung Threads/Tasks. Ist leider kein ganz einfaches Thema.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:43
Eventuell ein TTask, anonymer Thread o.ä. ? Dann ginge es direkt weiter und bliebe nicht in OnCreate hängen.
Es gibt TThread.Queue aber gerade vom Hauptthread aus arbeitet das IMHO falsch. (von der Semantik her wäre es aber richtig gewäsen)
Delphi-Referenz durchsuchenTThread.Queue

Aber https://www.delphipraxis.net/179193-...der-queue.html
$2B or not $2B
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#9

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:44
Doppelt.

Geändert von günni0 (12. Apr 2018 um 18:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Oncreate beenden und function aufrufen (ohne TTimer)

  Alt 12. Apr 2018, 18:47
Hier der Grund für das Wofür
Hab das kurz mit ShowMessage getestet und das wird aufgerufen noch bevor man das Form sieht.
Ich suche was quasi etwas was eine "Main" Funktion aufruft in der dann das Programm die ganze Zeit läuft.
Das wäre dann wohl Thread/Task die geeignetere Lösung
oder das Konzept auf Message/Event-bassiert ändern und den Bei Google suchenSpaghetti Code auftrennen.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:55 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