need-some-blood Geschrieben 23. Oktober 2003 Teilen Geschrieben 23. Oktober 2003 Also ich kann ein Formular mit Application.CreateForm(TFormmain, Formmain); oder mit Formmain:=Tformmain.create(self); öffnen. Doch wo liegt da der Unterschied? Was wird wie ausgeführt und verarbeitet? MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 23. Oktober 2003 Teilen Geschrieben 23. Oktober 2003 Original geschrieben von need-some-blood Also ich kann ein Formular mit Application.CreateForm(TFormmain, Formmain); oder mit Formmain:=Tformmain.create(self); öffnen. Doch wo liegt da der Unterschied? Was wird wie ausgeführt und verarbeitet? Mit Application.createForm wird als Eigentümer des neuen Formulars das Anwendungsobjekt gesetzt (Application). TFormClass.Create(self) setzt als Eigentümer das Object, das die Methode aufruft (self). Application.createForm = TFormClass.Create(Application) Edit: procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference); var Instance: TComponent; begin Instance := TComponent(InstanceClass.NewInstance); TComponent(Reference) := Instance; try [b] Instance.Create(Self);[/b] except TComponent(Reference) := nil; raise; end; [i] if (FMainForm = nil) and (Instance is TForm) then begin TForm(Instance).HandleNeeded; FMainForm := TForm(Instance); end; [/i] end; Der Unterschied ist, dass u.U. das Hauptformular der Anwendung gesetzt wird. Wenn es also nicht das Erste Formular ist, dass erzeugt wird macht es keinen Unterschied. (siehe fetter bzw. kursiver Bereich oben) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
need-some-blood Geschrieben 23. Oktober 2003 Autor Teilen Geschrieben 23. Oktober 2003 Alles Klar dank dir. MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.