Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

Interface Problem mit TControl

  Alt 18. Sep 2009, 14:31
Hi,

ich habe ein Interface:

Delphi-Quellcode:
type
  IChangeable = interface(IInterface)['{BAC01552-BB67-488E-B33C-16CFF2BA2F5B}']
    function isChanged: Boolean;
    procedure Change;
  end;
Und Klassen die z. B. so aussehen:

TEditorFrame = class(TSynEdit, IFileFrame, IChangeable) Sie sind alle mittelbare Nachfahren von TControl. Nun habe ich eine Variable:

FFrame: TControl; Da sind irgendwelche TControl-Nachfahren drauf. Ob sie dieses Interface implementieren weiß ich nicht.

Nun habe ich es so versucht zu prüfen:
Delphi-Quellcode:
if (FFrame is IChangeable) then
  if IChangeable(FFrame).isChanged then
    ...
Der Compiler bringt mir aber folgende Felhermeldungen:

Zitat:
umainide.pp(345,14) Error: Class or Object types "TControl" and "IChangeable" are not related
umainide.pp(345,14) Error: Incompatible type for arg no. 1: Got "IChangeable", expected "TClass"
Hint: Found declaration: $fpc_do_is(TClass, TObject):Boolean
umainide.pp(346,8) Error: Class or Object types "TControl" and "IChangeable" are not related
umainide.pp(387) Fatal: There were 3 errors compiling module, stopping
Ich habe per Google zwar was von einem interfache "is" patch gefunden. Aber das war 2005. Inzwischen müsste der Patch doch drin sein?

Oder hab ich nen Denkfehler in meiner Prüfung drin?

Gruß
Felix
Felix Alter
  Mit Zitat antworten Zitat