Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschied zwischen onshow und oncreate (https://www.delphipraxis.net/29137-unterschied-zwischen-onshow-und-oncreate.html)

ferby 4. Sep 2004 14:27


Unterschied zwischen onshow und oncreate
 
Hallo,

Ich kann bei Form1 unter Ereignissen onshow und oncreat wählen und habe beides ausprobiert um den Unterschied zwischen den beiden erreignissen herauszufinden, leider fand iuch keinen unterschied könnt ihr mir ihn erklären.
Das ein onshow ist ja wenn ich das Programm sehe, oder?
Und das andere oncreate ist wenn das Programm erstellt wird, oder?
Das ist ja auch im prinzip das selbe, ...oder?

Kann mir wer ein praktisches beispiel geben wo einmal das eine und einmal das andere verwendet wird.


Danke,
Ferby

static_cast 4. Sep 2004 14:37

Re: Unterschied zwischen onshow und oncreate
 
Hi

OnCreate passiert beim erstellen des Objektes in deinem fall die TForm.
OnShow wird ausgelößt kurz bevor wenn das fenster angezeigt wird.

Gruß
Daniel

ferby 4. Sep 2004 14:41

Re: Unterschied zwischen onshow und oncreate
 
Hallo,

Um erlich zu sein das versteh ich noch immer nicht ganz, das ist doch das selbe?!?

Luckie 4. Sep 2004 14:47

Re: Unterschied zwischen onshow und oncreate
 
"Erstellen des Objektes" meint, an legen des Objektes im Speicher. Und das ist nicht das Gleiche wie letztlich das Anzeigen des Fensters auf dem Bildschirm.

static_cast 4. Sep 2004 14:48

Re: Unterschied zwischen onshow und oncreate
 
Naja das gleiche ist es nicht stell dir vor du erstellst erstmal nur eine Form und willst Werte setzen oder etwas "machen" (funktion ausführen) aber die Form noch nicht anzeigen das kannst du dann im OnCreate erledigen.

OnShow wird ja auch erst ausgelöß wenn du Form.Show; oder Form.ShowModal; aufrufst.

ferby 4. Sep 2004 14:54

Re: Unterschied zwischen onshow und oncreate
 
Hi,

also wenn ich etwas machen will bevor das Programm für den Anwender startet z.B: Variabeln werte zuweißen dann sollte ich das in oncreat machen?
Wenn das stimmt was sollte man dann z.B. in onshow machen?
Kann mir wer einfach zwei Beispiele nennen wo man sinnvoller weiße einmal das nimmt und einmal das andere.

Hansa 4. Sep 2004 15:10

Re: Unterschied zwischen onshow und oncreate
 
Folgendes Beispiel : 2 Forms, 1 Array mit 10000 Einträgen, die sich nie ändern. Das soll nun auf Form2 Zugriff erlauben, also vorhanden sein. Wenn ich nun zwischen den Forms hin und herschalte, und das Array wird im Onshow Gefüllt, dann wäre das jedesmal der Fall, wenn diese Form sichtbar wird. Soll sie wieder weg, so muß ich den Speicher auch wieder frei geben, beim nächsten OnShow wird ja dann das Array wieder angelegt usw.

Da dieses Array aber eigentlich nur einmal angelegt und wieder freigegeben weden soll, hat so etwas im OnShow nichts zu suchen. Das gehört ins OnCreate. Danach kannst du die Form nämlich so oft du willst Anzeigen und verschwinden lassen, ohne daß es stört oder den Speicher zukippt. 8)

ferby 4. Sep 2004 15:16

Re: Unterschied zwischen onshow und oncreate
 
Hallo,


Danke war sehr hilfreich, jetzt versteh ich endlich den unterschied.....

2Knuckels 12. Apr 2018 18:37

AW: Unterschied zwischen onshow und oncreate
 
Sorry Onshow klappt nicht.

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.

himitsu 12. Apr 2018 18:40

AW: Unterschied zwischen onshow und oncreate
 
Zitat:

Zitat von 2Knuckels (Beitrag 1398986)
Ich suche was quasi etwas was eine "Main" Funktion aufruft in der dann das Programm die ganze Zeit läuft.

Ich würde mal sagen, dass du dein Konzept vielleicht doch besser nochmal überarbeiten solltest.

Aber für dich geht es ja wohl eh im anderen Thread weiter.
https://www.delphipraxis.net/195988-...ne-ttimer.html

günni0 12. Apr 2018 18:43

AW: Unterschied zwischen onshow und oncreate
 
Zitat:

Ich suche was quasi etwas was eine "Main" Funktion aufruft in der dann das Programm die ganze Zeit läuft.
Kommst du aus der Java- oder C-Welt?
So ist das bei Delphi nicht.

Es läuft standardmäßig eh immer alles im Main-Thread. Was will man mehr?

Solutor 13. Apr 2018 19:29

AW: Unterschied zwischen onshow und oncreate
 
Ein Bespiel:
Du hast eine Anwendung mit mehreren Fenstern.
Es werden erst alle Fenster Createt und erst danach wird das Hauptfenster angezeigt.
Wenn ich im OnCreate auf eine Eigenschaft oder Methode eines anderen Fensters zugreifen möchte,
kann das in die Hose gehen, wenn das andere Fenster noch nicht createt wurde.
Wenn ich das im ONShow mache, kann ich sicher sein, das alle OnCreate's abgearbeitet sind und alle Fenster verfügbar sind.

Praktisches Beispiel (Aber nicht sauber):

Man hate ein Formular in dem man Einstellungen macht.
Nehmen wir mal an man macht eine Checkbox da rein, die einen Button im Hauptformular sichtbar oder unsichtbar machen soll.

In der Hauptform würde man nun in onCreate versuchen auf die Checkbox des anderen Forumulars zuzugreifen um die Sichtbarkeit des Buttons zu setzen.
Das würde schief gehen, da zu diesem Zeitpunkt das zweite Formular noch nicht existiert.
Also macht man das in OnShow. (Nur zur Veranschauung.)

himitsu 13. Apr 2018 20:46

AW: Unterschied zwischen onshow und oncreate
 
Zitat:

Zitat von Solutor (Beitrag 1399154)
Es werden erst alle Fenster Createt und erst danach wird das Hauptfenster angezeigt.

Fast. Das Hauptfenster wird zum Schluß angezeigt, wenn es noch nicht sichtbar ist.
Und alle automatisch erzeugten Fenster werden vorher erzeugt, aber wenn dort Visible=True in der DFM steht, dann sind die Fenster sofort sichtbar, mitten im Create.
Bei alten Delphis war das scheinbar noch per Default auf True.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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 by Thomas Breitkreuz