Results 1 to 7 of 7

Thread: TToolbar ButtonWidth

  1. #1
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289

    TToolbar ButtonWidth

    Waarom wordt de ButtonWidth van een ToolBar bepaald en kun je deze niet zelf zetten?

    Ik heb een Toolbar met 10 buttons onderaan het scherm staan met alleen tekst, geen images.
    De width staat altijd op 76 in designtime, onderstaand in een OnResize maakt ze niet scherm vullend.
    Wat is dan het doel van ButtonWidth als je hem zelf niet kunt zetten, de property heeft wel een "write SetButtonWidth"?

    Code:
    Dit werkt niet
    ToolBarBottom.ButtonWidth := 100;
    Code:
    Dit werkt niet
    ToolBarBottom.ButtonWidth := ToolBarBottom.Width div 10;
    Code:
    Dit werkt ook niet
      for I := 0 to 9 do
        begin
          ToolbarBottom.Buttons[I].AutoSize := true;
          ToolbarBottom.Buttons[I].Width := ToolBarBottom.Width div 10;
        end;
    Code:
    Dit werkt ook niet
      SendMessage(ToolbarBottom.Handle, TB_SETBUTTONWIDTH, 0, MAKELPARAM(0, 100));
    Last edited by Herby; 29-Jul-20 at 17:11.

  2. #2
    Quote Originally Posted by Herby View Post
    Code:
    Dit werkt ook niet
      SendMessage(ToolbarBottom.Handle, TB_SETBUTTONWIDTH, 0, MAKELPARAM(0, 100));
    Heb je deze ook in combinatie met AutoSize = false geprobeerd?

    https://stackoverflow.com/a/32998424/1037511

  3. #3
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289
    Ja, ik ben op dezelfde manier aan de sendmessage regel gekomen :-)

    Ik verwachte iets heel simpels
    - Add toolbar, align taBottom
    - Create x buttons met alleen tekst
    - OnResize de breedte voor alle buttons gelijk zetten en klaar....

    blijkbaar een te simpele gedachte, waar is dan de ButtonWidth in godsnaam voor, heeft weinig nut als je geen text buttons mag gebruiken.

    een alternatieve optie zou zijn:
    - Add panel
    - Add x buttons
    - OnResize set width en Left positiion.

    Maar dat is te makkelijk, moet toch gewoon werken zou je zeggen

  4. #4
    Ik denk (en zie in ComCtrls) dat die ButtonWidth gewoon weer terug gezet wordt op wat er door Windows berekend wordt.

    Dus dan lijkt mij je oplossing met je panel de enige optie om dit voor elkaar te krijgen.

    (Misschien dat de TCoolBar meer kan. Maar anders is het je genoemde optie of een third party toolbar)

  5. #5
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289
    Dan vraag je je toch af, waaom zit die property er dan als je hem toch niet kun zetten hadden ze er ook geen setter aan hoeven te hangen, bietje vageu als je het mij zegt
    Coolbar heb ik nog niet geprobeerd

  6. #6
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    426
    XE7 toolbar1.ButtonWidth:=toolbar1.width div toolbar1.ButtonCount (zonder verder enige aanpassing) werkt bij mij prima

  7. #7
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289
    bij mij in 10.3.3 CE niet, helaas, ik had "ToolBarBottom.ButtonWidth := ToolBarBottom.Width div 10;" waarbij de 10 de buttoncount is

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •