Forum: Object-Pascal / Delphi-Language
Delphi
by PMM,
12. Mai 2009
Der "as" operator setzt einen Nachfolger von TObject voraus. nform ist jetzt aber eine untypisierte Refrenz, über die der Compiler keine weiteren Annahmen machen darf.
Du hast zwei Optionen:
TForm(nform).Show ... benutzen - damit übernimmst du die Verantwortung das der cast OK ist.
Oder den nform parameter typisieren:
function formerzeugen(fclass:TFormClass;var nform : Tform1):boolean;...
Forum: Object-Pascal / Delphi-Language
Delphi
by PMM,
12. Mai 2009
Noch was:
application.CreateForm(AOwner,nform);
Der erste Parameter ist die FormClass und nicht der Owner. Du solltest diesen dann auch nicht aOwner nennen.
PMM
Forum: Object-Pascal / Delphi-Language
Delphi
by PMM,
12. Mai 2009
Wie hast du den Form1 deklariert?
Forum: Object-Pascal / Delphi-Language
Delphi
by PMM,
12. Mai 2009
Probier mal
function createform(AOwner:TFormClass; VAR nform:TForm):boolean;
Ohne VAR wird innerhalb der function eine Kopie von "nform" benutzt (call by value), du möchtest aber das Ergebnis (die Adr. der TForm Instanz) ausserhalb der function verwenden (call by reference)
PMM