![]() |
AW: Eigene Komponente (Toolbar) programmieren
hier mal der Code in abgespeckter Version (nur ein Button wird erzeugt):
Delphi-Quellcode:
Folgendes PRoblem:
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. - 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" |
AW: Eigene Komponente (Toolbar) programmieren
Ich habe jetzt eine ganze Weile mit dem teil rumexperimentiert und weiß jetzt warum ich das TToolbar bisher nie freiwillig einsetzen wollte.
Der Effekt tritt ja schon auf wenn Du im Formular auf Ansicht als Text und wieder zurückschaltest. Wenn man den Namen weglässt entsteht bei jedem hin und herschalten ein neuer Button, zu Laufzeit kommt dann die Fehlermeldung "Klasse TToolbutton nicht gefunden". ein :
Delphi-Quellcode:
ändert ncihts an dem Verhalten, produziert aber neue Fehler.
if not Assigned(FindComponent('Test')) then
begin Der selbst erstellte Toolbutton ist auch nicht bedienbar.... Muss es tatsächlich ein TToolbar als Vorfahr sein, oder kannst Du auch z.B. auf einem TCustompanel aufsetzen, hier hast Du das ganze unbeeinflussbare Innenleben des Toolbars nicht an der Backe hängen. |
AW: Eigene Komponente (Toolbar) programmieren
Zitat:
Und wie wäre es über ein TCustompanel möglich neue Toolbuttons auf dem Panel zu platzieren? Oder versteh ich etwas falsch? Ich habe am Wochenende nochmal ein bisschen probiert, aber ich finde einfach keine Lösung für mein geschildertes Problem, bin am Verzweifeln :cry: |
AW: Eigene Komponente (Toolbar) programmieren
Nein, ich bezweifle dass ich den Nerv hätte mich mit dem Toolbar längerfristig rumzuärgern.
Ich wünsche Dir viel Erfolg und bewundere Deine Ausdauer... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz