Hallo zusammen, bin gerade dabei eine eigene Toolbar zu programmieren.
Das klappt soweit auch schon ganz gut, aber ein großes Problem:
Ich ziehe meine programmierte Toolbar auf das Formular, kann Eigenschaften ändern, etc.. So, nun speicher ich das Projekt ab und öffne es erneut, dann erhalte ich die Fehlermeldung "Komponente mit der Bezeichnung Button existiert bereits"
So ich könnte mir vorstellen, dass beim ersten mal die Buttons in der dfm gespeichert werden. Beim Öffnen des Projekts versucht er zu Beginn wieder die Buttons in der dfm zu speichern, doch dort existiert dieser ja bereits,
wie seht ihr das?
Hier mal der code in abgespeckter Fassung, in meiner Toolbar erzeuge ich wesentlich mehr Buttons, zusätzlich habe ich noch eine Eigenschaft eingebaut, die es ermöglicht, zwischen mehreren Standards (anzahl Buttons auf Toolbar) zu wechsel. (habe ich bei diesem Code aber herausgenomme, da es nicht relevant für das Auftreten dieses Fehlers ist.
Hoffe ihr könnt mir weiterhelfen
Das klappt soweit auch schon ganz gut, aber ein großes Problem:
Ich ziehe meine programmierte Toolbar auf das Formular, kann Eigenschaften ändern, etc.. So, nun speicher ich das Projekt ab und öffne es erneut, dann erhalte ich die Fehlermeldung "Komponente mit der Bezeichnung Button existiert bereits"
So ich könnte mir vorstellen, dass beim ersten mal die Buttons in der dfm gespeichert werden. Beim Öffnen des Projekts versucht er zu Beginn wieder die Buttons in der dfm zu speichern, doch dort existiert dieser ja bereits,
wie seht ihr das?
Hier mal der code in abgespeckter Fassung, in meiner Toolbar erzeuge ich wesentlich mehr Buttons, zusätzlich habe ich noch eine Eigenschaft eingebaut, die es ermöglicht, zwischen mehreren Standards (anzahl Buttons auf Toolbar) zu wechsel. (habe ich bei diesem Code aber herausgenomme, da es nicht relevant für das Auftreten dieses Fehlers ist.
Hoffe ihr könnt mir weiterhelfen
Code:
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.
Comment