AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TToolbar zeichnet Seperator, obwohl er nicht soll
Thema durchsuchen
Ansicht
Themen-Optionen

TToolbar zeichnet Seperator, obwohl er nicht soll

Ein Thema von MaBuSE · begonnen am 9. Nov 2006 · letzter Beitrag vom 16. Jun 2010
Antwort Antwort
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 9. Nov 2006, 11:04
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:
  • Neues Form erzeugen
  • TToolBar auf Form plazieren
  • Rechtsklick auf TToolbar -> neuen Button
  • TToolButton wird erzeugt und richtig dargestellt.
  • TSpeedButton in TToolBar legen
  • TSpeedButton auf Flat setzen -> Es wird ein Seperator in der Mitte des TSpeedButtons sichtbar.
  • TLabel auf TToolBar legen
  • TLabel auf Transparent setzen -> Hinter der Caption ('Label1') ist der Seperator zu sehen.
Frage:
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)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
rider

Registriert seit: 11. Aug 2006
90 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 9. Nov 2006, 11:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 9. Nov 2006, 12:53
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;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
dabba

Registriert seit: 1. Jun 2010
2 Beiträge
 
#4

Re: TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 1. Jun 2010, 07:40
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?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 1. Jun 2010, 07:55
Zitat von MaBuSE:
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
Ich habe einfach vergessen den Bug zu melden.
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
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
dabba

Registriert seit: 1. Jun 2010
2 Beiträge
 
#6

AW: TToolbar zeichnet Seperator, obwohl er nicht soll

  Alt 16. Jun 2010, 13:12
Embarcardero kann den Fehler offenbar nicht fixen, daher scheint es außer einer alternativen Komponente keine Möglichkeit zu geben, den unschönen Balken loszuwerden. Kennt jemand vielleicht noch andere Toolbar-Komponenten, die möglichst kompatibel zur TToolbar von Delphi sind?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz