need-some-blood Geschrieben 23. Oktober 2003 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
geloescht_JesterDay Geschrieben 23. Oktober 2003 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
need-some-blood Geschrieben 23. Oktober 2003 Autor Geschrieben 23. Oktober 2003 Alles Klar dank dir. MVG need-some-blood Zitieren
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.