![]() |
TToolbar zeichnet Seperator, obwohl er nicht soll
Hallo,
Wenn ein anderes Control als der ToolButton eingefügt wird, dann zeichnet die TToolBar einen Seperator unter dieses Control. Wenn das Control Transparent ist sieht man den -> :-( Beisp:
Wie kann ich Delphi daran hindern diesen Seperator zu zeichnen? Das Problem tritt bei mir in Delphi 2006 auf. Im Moment habe ich Transparent auf False fesetzt, das sieht aber sch... aus, da TToolBar.DrawingStyle := dsGradient eingestellt ist. Ich kann die TToolBar nicht durch was anderes ersetzen, ich habe keine andere Wahl, ich muss TSpeedButton verwenden. Ich verwende die Methode ToolsAPI.INTAServices.AddToolButton aber Delphi erzeugt einen TSpeedbutton statt TToolButton, da ImageIndex = -1 ist. (Es soll die Caption angezeigt werden) |
Re: TToolbar zeichnet Seperator, obwohl er nicht soll
Ja, das scheint ein Bug zu sein. Hast du schon mal im Borland Quality Central gestöbert, ob das bereits berichtet wurde?
Aber warum brauchst du unbedingt einen SpeedButton? Captions kannst du mit dem Property ShowCaptions in der ToolBar auch für normale ToolButtons anzeigen. Auch das neue Property List sieht recht chic aus. |
Re: TToolbar zeichnet Seperator, obwohl er nicht soll
Zitat:
Zitat:
Die Delphi IDE erzeugt automatisch einen TSpeedButton. btw: ShowCaptions zeigt die Captions aller ToolButtons. Das ist nicht gewünscht. Zitat:
Der Action habe ich nun ein Imageindex > -1 zugewiesen. Damit erzeugt die Delphi IDE einen TToolButton und keinen TSpeedButton. Dann mit AllowTextButtons die Moglichkeit nur bei bestimmtenButtons die Caption anzuzeigen aktiviert. Den ImageIndex nachträglich wieder auf -1 gesetzt. (Ich will ja kein Bild) und den TToolButton.Style auf tbsTextButton gesetzt. -> Funktioniert. Hier der Quellcode:
Delphi-Quellcode:
constructor TmyClearCaseExpert.Create;
var myService: INTAServices; tb: TToolbar; tc: TControl; ... begin inherited; ... if BorlandIDEServices <> nil then begin if Supports(BorlandIDEServices, INTAServices, myService) then begin ... // Der Delphi 2006 IDE eine Toolbar hinzufügen tb := myService.NewToolbar('myClearCaseToolBar', 'ClearCase', 'CustomToolBar', True); tb.AutoSize := True; tb.AllowTextButtons := True; ... // Buttons hinzufügen actCcStatus.ImageIndex := 0; // actCcStatus ist vom Typ TAction; tc := myService.AddToolButton('myClearCaseToolBar', 'myCcStatus', actCcStatus); actCcStatus.ImageIndex := -1; // Wenn ImageIndex = -1 dann ist es ein TSpeedButton if (tc is TSpeedButton) then begin (tc as TSpeedButton).Transparent := False; end; // Wenn ImageIndex > -1 dann ist es ein TToolButton if (tc is TToolButton) then begin (tc as TToolButton).Style := tbsTextButton; end; ... end; end; end; |
Re: TToolbar zeichnet Seperator, obwohl er nicht soll
Hallo allerseits! :)
Ich hole den alten Thread nochmal hoch, weil ich das gleiche Problem mit der TToolbar habe. Sind die Laufzeit-Themes aktiv, wird hinter jedem TControl, der kein Button ist, ein Separator gezeichnet (Delphi 2007 11.0). Die Controls sind u. a. Checkboxen und Comboboxen, die sich nur schwierig ersetzen lassen würden. Kann man das beheben? |
Re: TToolbar zeichnet Seperator, obwohl er nicht soll
Zitat:
Ich hatte ja einen Workarround für mich gefunden. Somit ist er wahrscheinlich auch noch in der aktuellen D2010 enthalten. (Werde ich demnächst testen.) Du kannst den Bug gerne melden, ansonsten mach ich das die Tage, dann ist er vieleicht in D2012 weg ;-) |
AW: TToolbar zeichnet Seperator, obwohl er nicht soll
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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