Kleiner Tipp am Rande.
Ich hab "damals" ne kleinen ComponentEditor gebastelt, mit dem man verhindern kann, dass mehr als eine Instanz einer Komponente ins Projekt geworfen werden können. Hier ein Auszug aus der Registrierungs-
Unit:
Delphi-Quellcode:
uses
DsgnIntf, SysUtils, TypInfo, Classes, Dialogs System32;
Type
TStopEditor = class(TComponentEditor)
private { Private-Deklarationen }
FRemove:Boolean;
public
constructor Create(AComponent: TComponent; ADesigner: IFormDesigner); override;
Procedure GetCompNames(const S: string);
End;
Procedure Register;
implementation
uses PicSel;
Procedure Register;
Begin
....
RegisterComponentEditor(TotStopWatch32,TStopEditor);
....
End;
.....
// **************************************************************************
// ** TStopEditor ***********************************************************
// **************************************************************************
constructor TStopEditor.Create(AComponent: TComponent;
ADesigner: IFormDesigner);
Var TD:TTypeData;
begin
inherited;
If AComponent.Owner<>NIL Then Begin
TD.ClassType:=TotStopWatch32;
ADesigner.GetComponentNames(@TD,GetCompNames);
If FRemove Then Begin
ADesigner.DeleteSelection;
Component.Owner.RemoveComponent(Component);
End;
End;
end;
Procedure TStopEditor.GetCompNames(const S: string);
Begin
If S<>Component.Name Then Begin
Showmessage('Es ist bereits eine Stopwatch im Projekt!');
FRemove:=TRUE;
End;
end;
Vielleicht kann der Eine oder Andere was damit anfangen!?
Gruss
OLLI