AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Warum Application.CreateForm(...) in .dpr?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum Application.CreateForm(...) in .dpr?

Ein Thema von ToFaceTeKilla · begonnen am 3. Nov 2008 · letzter Beitrag vom 3. Nov 2008
Antwort Antwort
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#1

Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:10
Hiho,

ich hab bin gerade dabei mein aktuelles Projekt zum Abschluss nochmal durchzuleuchten (unnütze Comments löschen, Optimieren etc.)
und dabei ist mir aufgefallen, dass die Codevervollständigung* in die .dpr folgendes geschrieben hat:
Delphi-Quellcode:
begin
  //...
  Application.Initialize;
  Application.Title := 'IVES Taskmanager';
  Application.CreateForm(TIVESTimeManagerMainForm, IVESTimeManagerMainForm);
  Application.CreateForm(TFrmChooseImport, FrmChooseImport); //die Zeile
  Application.CreateForm(TFrmPropAlloc, FrmPropAlloc); // und die Zeile
  Application.Run;
end.
Bei FrmPropAlloc und FrmChooseImport handelt es sich um 2 Forms die ich selbst erstellt und an der Stelle, wo sie verwendet werden, eingebunden habe.
Dort führe ich ebenfalls ein Application.CreateForm(xxx) aus.
Jetzt stellt sich mir die Frage, warum die CodeVervollständigung das ganze nochmal in die .dpr geschrieben hat, zumal kein Fehler auftaucht, wenn ich die 2 Zeilen in der .dpr auskommentiere.

Danke schonmal




*Ich meine die Programmierhilfe die beim drücken von [Ctrl]+[Shift]+[C] einsetzt, weis leider nichtmehr wie die heißt und finde es auch nicht
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:14
Sobald du ein neues Formular anlegst werden diese Zeilen automatisch der DPR hinzugefügt. Wenn du nicht willst das es automatisch erzeugt wird kannst du dies manuell oder über die Projektoptionen entfernen.
Das es auch funktioniert wenn du zusätzlich die Forms später nochmal anlegst ist normal denn per Default sind die Fomulare unsichtbar. Das heißt in der DPR werden sie erzeugt aber nicht angezeigt. Wenn du jetzt erneut eine Instanz deiner Formklasse erzeugst und diese der Variablen zuweist gibt es 2 Formularinstanzen, die eine von dir welche du dann vermutlich anzeigst und dann noch die automatisch erzeugte auf die du dann über die Variable nicht mehr zugreifen kannst weil du die Variable bereits mit deiner Instanz überschreiben hast.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:19
Hm danke schonmal soweit.
Das wirft wiederum die Frage auf, warum das dann nur bei den beiden Forms so ist. Ich hab mindestestens noch zwei Forms erstellt, die auf die gleiche Weise angelegt werden und die wurden nicht in die .dpr geschrieben. Tritt das nur bei einer bestimmten Verfahrensweise auf?
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  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: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:29
Das ganze tritt eigentlich immer auf wenn du ein Projekt geöffnet hast und dann auf "File->New Form" oder so ähnlich gehst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:37
Naja, wer weis warum es nur die zwei eingetragen hat.
Jetzt weis ich wenigstens, dass das redundant ist und kann die Zeilen beruhigt löschen.

Danke nochmal
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 14:46
Es ist nicht nur redundant, sondern dadurch dass es ein Speicherleck erzeugt sogar fast schon als ausgewachsener Fehler einzustufen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#7

Re: Warum Application.CreateForm(...) in .dpr?

  Alt 3. Nov 2008, 15:53
Zitat von ToFaceTeKilla:
Hm danke schonmal soweit.
Das wirft wiederum die Frage auf, warum das dann nur bei den beiden Forms so ist. Ich hab mindestestens noch zwei Forms erstellt, die auf die gleiche Weise angelegt werden und die wurden nicht in die .dpr geschrieben. Tritt das nur bei einer bestimmten Verfahrensweise auf?
Wenn Du es ueber das Menue von Delphi machst wird es automagisch ins Projekt eingefuegt.

Wenn Du ein bestehendes Formular als Template hast und dieses kopierst und an geeigneter Stelle in die Uses einbindest und instantiierst, passiert das nicht.
utu

if it was hard to write it should be hard to read
  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 23:46 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