Zitat von
rider:
Ja, das scheint ein Bug zu sein. Hast du schon mal im Borland Quality Central gestöbert, ob das bereits berichtet wurde?
Nein
Zitat von
rider:
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.
Das habe ich schon geschrieben:
Die Delphi
IDE erzeugt automatisch einen TSpeedButton.
btw: ShowCaptions zeigt die Captions aller ToolButtons. Das ist nicht gewünscht.
Zitat von
MaBuSE:
Ich verwende die Methode ToolsAPI.INTAServices.AddToolButton aber Delphi erzeugt einen TSpeedbutton statt TToolButton, da ImageIndex = -1 ist. (Es soll die Caption angezeigt werden)
Ich habe das nun wie folgt gelöst:
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;