AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Nach welcher Regel werden Procedures ausgeführt?
Thema durchsuchen
Ansicht
Themen-Optionen

Nach welcher Regel werden Procedures ausgeführt?

Ein Thema von Nogge · begonnen am 5. Feb 2005 · letzter Beitrag vom 6. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 14:53
Hallo Community,
Der Titel beschreibt leider nicht genau meine Frage, aber wusste keine bessere Formulierung. Ich möchte gern wissen, wann die 2te Form erstellen wird:
Delphi-Quellcode:
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
Da müsste es ja (rein logisch gedacht) 2 Varianten geben:
1.) Die 2te Form wird erst erstellt (mit dem zusätzlichen Code in OnCreate), wenn die 1te Form erstellt wurde (mit dem zusätzlichen Code in OnCreate).
2.) Die 2te Procedure wird sofort nach der 1ten ausgeführt, d.h. es könnte zu Problemen in der 2ten Procedure kommen, wenn diese best. Variablen o.Ä. aus der 1ten vorraussetzt. Wenn nämlich die 1te Procedure ziemlich viel Code enthält, der während des Ausführens der 2ten Procedure abgearbeitet wird, könnte eine Variable noch auf false (Standard) gesetzt sein, obwohl diese im Verlauf des Abarbeitens auf true gesetzt wird.

Hoffe, Ihr könnt mir helfen...
mfg Nogge
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 15:01
Du hast D7-Pro und kannst die Sache ja selbst nachvollziehen:

Einfach Debug-Breakpoints an den zu untersuchenden Stellen setzen.
Aber Variante 1 ist richtig (Ohne Test und gewähr). OnCreate wird am Ende des Konstruktur gerufen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 15:11
Formübergreifende Variablen etc. sollte man tunlichst auf jeden Fall vermeiden. 8) Dann tauchen nämlich solche Probleme auf, die du hast/befürchtest. Ein Grund, warum ich Forms nur zur Laufzeit erzeuge ist, daß dann eventuelle Fehler viel früher auftauchen. Z.B. habe ich immer im OnCreate die Initialierungen drin. Dadurch kann man sicher sein, daß sofern keine AV kommt wegen nicht zugreifbarer Form, daß dann die Variablen von Anfang an richtige Werte haben. Es taucht aber kein Fehler auf und es handelt sich nicht um ein kleines Projekt.

Wenn du anfängst, zu überlegen in welcher Form welche Variable drin ist und wo sie wie von was auch immer für irgendeine Aktion gebraucht und auch verändert wird, das ergibt dann im Endeffekt den klassischen Spaghetti-Code. Und dann gibts ja auch noch private, protected usw. Würde ich mir mal ansehen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 15:13
1tens ist richtig, zweiteres geht ja nicht wenn du nicht mit threads arbeitest da ja immer nur einwas gemacht werden kann. Und somit wird erst das create von form1 abgeschlossen und danach wird weitergemacht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#5

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 15:23
Ich habs gerade ausprobiert: Methode 2 ist die richtige! Ich habe ShowMessage('bla') in OnCreate von Form2 geschrieben und einen BreakPoint in OnCreate der Form1 gesetzt (einmal ganz oben, mitte und weiter unten). In allen Fällen habe ich die Message erhalten.
Gefällt mir zwar gar nicht, dass es sich so verhält, aber damit muss ich leben...
Vielen Dank für den Tipp, Bernhard Geyer.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 15:35
Zitat von Nogge:
...aber damit muss ich leben...
Mußt du nicht. Höchstens alle Antworten lesen. Warum erzeugst du nicht alles selber und zwar dann, wenn das ganze Sinn macht ? Gehe mal zu Projekt -> Optionen -> Formulare.
Gruß
Hansa
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#7

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 18:35
Forms zur Laufzeit zu erstellen, ist zwar besser (nur eine Unit, d.h. keine formübergreifenden Variablen, kontrolliertes Erstellen von anderen Forms usw.), aber so müsste ich wie bei NonVCL alle Objects selbst setzen, d.h. die Position und deren Procedures, was unglaublich viel Arbeit ist!
@Hansa: Was wolltest du mir damit sagen?
Zitat:
Gehe mal zu Projekt -> Optionen -> Formulare.
Ich kann doch auch gleich manuell im program das "Autoerstellen" aller Forms deaktivieren, indem ich best. Zeilen löschen...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 18:38
Du kannst doch in den Projekt Optionen einstellen, dass er die zweite Form nicht sofort beim Start laden soll. Nix mit Kontrolls erst zur Laufzeit erzeugen usw.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#9

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 19:01
Wenn ich das richtig gemacht habe (Auto-create forms in Available forms verschieben außer der Main_Form), dann erscheint, wenn ich eine andere Form öffnen möchte, eine Fehlermeldung (geht nicht genauer..."Read of Address: YxYYYYYYY).
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Nach welcher Regel werden Procedures ausgeführt?

  Alt 5. Feb 2005, 19:20
Hai Nogge,

hast du das Fenster denn auch erstellt?
Im Anhang ist mal ein ganz einfaches Beispiel.
Angehängte Dateien
Dateityp: zip forms_135.zip (9,1 KB, 2x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  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 23: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