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