Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#30

AW: FormularArray den richtigen Create aufrufen! Wie?

  Alt 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)
  Mit Zitat antworten Zitat