Thema: Delphi TFrame ableiten

Einzelnen Beitrag anzeigen

martin-sun

Registriert seit: 11. Aug 2004
Ort: Weinheim
15 Beiträge
 
Delphi 2005 Professional
 
#1

TFrame ableiten

  Alt 7. Dez 2004, 18:21
hallo leute,

ich habe folgendes problem:
um mein programm dynamisch erweitern zu können nutze ich frames in dll's.

um eine einheitliche schnittstelle zu gewährleisten, müssen all diese frames bestimmte
funktionen besitzen, die ich aus dem hauptprogramm heraus aufrufe. also habe ich eine eigene frameklasse daraus gemacht:

Delphi-Quellcode:
TPluginFrame = class(TFrame)
  public
    { Public-Deklarationen }
    function StartRenaming(MaxFile: Integer): Integer; virtual; abstract;
    function Rename(var FileName: String; ActFile: Integer): Integer; virtual; abstract;
    function RenamingFinished(): Integer; virtual; abstract;

    function SaveSettings(var Settings: String): Integer; virtual; abstract;
    function RestoreSettings(Settings: String): Integer; virtual; abstract;
  end;
diese deklaration ist in einer separaten unit untergebracht, die sowohl in das hauptprogramm, wie auch in jede dll eingebunden ist.
in den dll's ergibt sich nun folgendes bild:

Delphi-Quellcode:
type
  TFrameChangeSpelling = class(TPluginFrame)
    grpboxPlugin: TGroupBox;
    Label1: TLabel;
    lblExample: TLabel;
    radiogrpName: TRadioGroup;
    radiogrpExtension: TRadioGroup;
    procedure radiogrpNameClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    function StartRenaming(MaxFile: Integer): Integer; override;
    function Rename(var FileName: String; ActFile: Integer): Integer; override;
    function RenamingFinished(): Integer; override;

    function SaveSettings(var Settings: String): Integer; override;
    function RestoreSettings(Settings: String): Integer; override;
  end;
ich erstelle in der dll einen neuen frame und kann ihn auch in der entwurfsansicht super bearbeiten. anschließend ändere ich im quelltext des frames 'class(TFrame)' in 'class(TPluginFrame)' um. wenn ich das anschließend erstelle und kompliliere klappt alles super.
nun aber zum dem problem:
wenn ich mein dll-projekt neu öffne und anschließend versuche, den frame anzeigen zu lassen (entwurfsansicht) dann hagelt es fehlermeldungen von nicht vorhandenen TForm eigenschaften (logisch ist ja auch TFrame).
ich vermute delphi erkennt nicht mehr, dass das ganze von TFrame abgeleitet ist.

weiß einer wie ich das der ide klar mache oder woran es genau liegt?

martin
  Mit Zitat antworten Zitat