hier mal der Code in abgespeckter Version (nur ein Button wird erzeugt):
Delphi-Quellcode:
unit Unit1;
interface
uses
SysUtils, Classes, Controls, Graphics, ToolWin, ComCtrls, ImgList, cxGraphics, cxStyles,
StdCtrls, Dialogs, pngImage;
type
TToolbarType = (ttStandard1, ttStandard2, ttStandard3);
type
TTestToolbar =
class(TToolBar)
private
Buttons : TToolbutton;
protected
procedure Notification(AComponent: TComponent; Operation: TOperation);
override;
public
constructor create(aOwner: TComponent);
override;
destructor Destroy;
override;
{ Private-Deklarationen }
published
end;
procedure Register;
implementation
constructor TTestToolbar.Create;
begin
inherited;
Parent := Owner
as TWinControl;
if Assigned(Buttons)
then
Exit;
Buttons := TToolbutton.Create(self.Parent);
Buttons.
Name := '
btnTest';
Buttons.Parent := self;
Buttons.Caption := '
Test';
end;
procedure TTestToolbar.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (AComponent = Buttons)
and (Operation = opRemove)
then
Buttons :=
nil;
end;
destructor TTestToolbar.Destroy;
begin
Buttons.Free;
inherited;
end;
procedure Register;
begin
RegisterComponents('
ZTestKomponenten', [TTestToolbar]);
end;
end.
Folgendes PRoblem:
- Ich erstelle ein Projekt, ziehe meine programmierte Toolbar aufs Formular, kann auch die Eigenschaft "Toolbarstyle" ändern, das funktioniert alles. So, nun speicher ich mein Projekt ab und öffne es erneut und erhalte zu jeder Komponente folgenden Fehler:"Komponente mit der Bezeichnung btnNeu1, etc... existiert bereits"