Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: FormularArray den richtigen Create aufrufen! Wie?
2. Feb 2014, 17:42
Du hast override
vergessen
BTW
TFormClass
ist definiert als class of TForm
Was du da machst mit dem FC
ist nicht falsch, aber überflüssig
Nachtrag
So macht es Sinn
Delphi-Quellcode:
type
TVater = Class( TForm )
public
Procedure SetFoo( A : TComponent ); Virtual; Abstract;
end;
TVaterClass = Class of TVater;
TMyForm = class( TVater )
public
Procedure SetFoo( A : TComponent ); override;
end;
var
AktForm : TVater;
FC : TFormClass;
begin
FC := GetForm('FormName'); // holt die Registriere Formclass TMyForm... (Source verkürzt)
if FC.InheritsFrom( TVater ) then
begin
AktForm := TVaterClass( FC ).Create( Self ); // Kein Typecast mehr!
AktForm.SetFoo(Self); // <- Abstracter Fehler ist weg
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
Geändert von Sir Rufo ( 2. Feb 2014 um 17:52 Uhr)
|