[Delphi] TButton moet AutoSizen

Pagina: 1
Acties:

  • pelleke
  • Registratie: Maart 2003
  • Laatst online: 08-11-2024

pelleke

Aut viam inveniam aut faciam

Topicstarter
Ik heb in mijn programma at runtime een TButton aangemaakt met als parent een TJvControlBar. Nu is mijn caption (die at runtime wordt bepaald) te lang, en moet die button breder worden.

Ik ben op zoek naar OF een VCL button die kan autosizen n.a.v. zijn caption, OF een manier waarop je de breedte van de caption kan achterhalen, dan kan ik het zelf programmeren. Ik heb al zitten klooien met "een a is zoveel pixels" maar de font van die button is in windows weer in te stellen :(

Google en GoTSearch hielpen me nu even rottig mee. Iemand een idee?

  • hamburger
  • Registratie: April 2000
  • Niet online

hamburger

BOOOM!!!

Kijk eens naar Canvas.TextWidth daarmee moet het lukken.

  • pelleke
  • Registratie: Maart 2003
  • Laatst online: 08-11-2024

pelleke

Aut viam inveniam aut faciam

Topicstarter
Het is gelukt! Bedankt!
code:
1
2
3
4
5
6
  Button:=TButton.Create(nil);
  Button.Parent:=ControlBar;
  Button.Caption:=Caption;
  Button.OnClick:=Action;
  Button.Visible:=True;
  Button.Width:=Canvas.TextWidth(Caption)+12;
Die doet het werk voor mij!

Houdt Canvas.TextWidth ook rekening met de grootte van Windows Fonts? (het zal haast wel...)

  • hamburger
  • Registratie: April 2000
  • Niet online

hamburger

BOOOM!!!

Yup, hij gebruikt het font zoals deze ingesteld staat in de font property van het canvas (wat weer uit Windows gehaald wordt). Het door jou gebruikte canvas is waarschijnlijk van het form waarop de componenten komen te staan. Als de property ParentFont aan staat (er wordt dus geen gebruik gemaakt van een ander font) van de button dan zou het volgens mij altijd goed moeten gaan.