Moin Moin, also ich ein großes PRoblem schonmal gelöst, aber schon treten neue Probleme auf. *lach*
Erstmal mein bisheriger Code, ich kann meine Toolbar auf die Form ziehen, kann den Buttons OnClick Ereignisse zuweisen, diese funktionieren auch.
Delphi-Quellcode:
unit Testtoolbar2;
interface
uses
SysUtils, Classes, Controls, ToolWin, ComCtrls, ImgList, cxGraphics;
type TTestBars =
set of (Standard1, Standard2, Standard3, Standard4, Standard5);
type
TTestToolbar =
class(TToolBar)
public
constructor create(aOwner: TComponent);
override;
destructor Destroy;
override;
//Bars: TTestBars;
//Buttons: TToolButton;
{ Private-Deklarationen }
private
Buttons : TToolbutton;
ImageList: TcxImageList;
protected
procedure Notification(AComponent: TComponent; Operation: TOperation);
override;
end;
procedure Register;
implementation
constructor TTestToolbar.Create;
begin
inherited;
Parent := Owner
as TWinControl;
if Assigned(Buttons)
then
Exit;
if csDesigning
in ComponentState
then
begin
Buttons := TToolButton.Create(Parent);
Buttons.
Name := '
btnSpeichern';
Buttons.Parent := self;
Buttons.Caption := '
Speichern';
Buttons := TToolButton.Create(Self.Parent);
Buttons.
Name := '
btnZurück';
Buttons.Parent := self;
Buttons.Caption := '
Zurück';
Buttons := TToolButton.Create(Self.Parent);
Buttons.
Name := '
btnVor';
Buttons.Parent := self;
Buttons.Caption := '
Vor';
Buttons := TToolbutton.Create(self.Parent);
Buttons.
Name := '
btnNeu';
Buttons.Parent := self;
Buttons.Caption := '
Neu';
end;
//Standardeigenschaften für Toolbar setzten
Self.ShowCaptions := True;
end;
destructor TTestToolbar.Destroy;
begin
Buttons.Free;
inherited;
end;
procedure TTestToolbar.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (AComponent = Buttons)
and (Operation = opRemove)
then
Buttons :=
nil;
end;
procedure Register;
begin
RegisterComponents('
ZTestKomponenten', [TTestToolbar]);
end;
end.
Wenn ich nun aber noch eine Toolbar auf die Form ziehe meckert er, dass die Komponente mit dem Namen btnNeu, ... bereits existiert, also werd ich beim programmieren der Toolbar eine function einbauen, die prüft, ob eine Komponente mit diesem Name bereits existiert, wenn ja prüfen ob eine mit dem Namen btnNeu1 existiert, falls ja prüfen ob BtnNeu2 existiert, usw. .Falls nein, den nächst freien Namen verwenden.
Oder ist das anderst und einfacher zu lösen