Results 1 to 11 of 11

Thread: TSpeedButton AutoSize werkt niet

  1. #1
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844

    TSpeedButton AutoSize werkt niet

    Goeiendag,

    Ik heb het hier voor al een keer voorzichtig genoemd.
    De autosize eigenschap van een TSpeedButton werkt niet.
    Ik heb gemerkt dat als ik een ander lettertype van de knop selecteer, de afmetingen wel worden aangepast.
    Maar niet als ik een glyph of caption aanpas.
    Ik vond deze oplossing, maar daarmee werkt het bij mij nog niet.
    Als ik CTRL-Klik op TSpeedButton kom ik in Buttons.pp waar staat: TSpeedButton = class(TCustomSpeedButton).
    CTRL-Klik ik op TCustomSpeedButton dan kom ik in Buttons.pp bij: TCustomSpeedButton = class(TGraphicControl).
    CTRL-Klik ik op TGraphicControl kom ik in controls.pp bij: TGraphicControl = class(TControl).

    Wanneer gebruikt Lazarus nou die speedbutton.inc?
    En is er een oplossing om die autosize werkend te maken?

    BVD
    Peter.
    Carpe Diem !
    (Horatius)

  2. #2

  3. #3
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Quote Originally Posted by Bart B View Post
    Die had ik gevonden. Staat in mijn eerste post.
    Maar ik vroeg me af of er een oplossing of work around voor is.
    Wat in die link wordt besproken werkt niet.
    Carpe Diem !
    (Horatius)

  4. #4
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Bedoel je deze workaround
    DisableAutoSizing;
    SpeedButton1.Text:='NewText';
    SpeedButton1.Align:=alLeft;
    Button1.AutoSize:=true;
    Button1.Caption:='NewCaption';
    EnableAutoSizing;

  5. #5
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Quote Originally Posted by jkuiper View Post
    Bedoel je deze workaround
    Die staat inderdaad op die bugs pagina die ik al gevonden had.
    Dat werkt niet.

    Ik heb speedbutton.inc, met de aanpassing in de code, gedownload en op de juiste plek gezet.
    Maar dat heeft niet geholpen.
    Dus de vraag was eigenlijk of en wanneer Lazarus het bestand speedbutton.inc gebruikt.
    Carpe Diem !
    (Horatius)

  6. #6
    Quote Originally Posted by SaintPier View Post
    Dus de vraag was eigenlijk of en wanneer Lazarus het bestand speedbutton.inc gebruikt.
    Delphi Code:
    1. {%MainUnit ../buttons.pp}
    2. 2  
    3. 3   {******************************************************************************
    4. 4   TCustomSpeedButton

    Als je programma de unit buttons gebruikt dus.

    Bart

  7. #7
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Quote Originally Posted by Bart B View Post
    Als je programma de unit buttons gebruikt dus.
    Bart
    Kun je me dan vertellen waarom deze fix niet werkt?
    Delphi Code:
    1. procedure TCustomSpeedButton.RealSetText(const Value: TCaption);
    2.  begin
    3.    if Caption = Value then Exit;
    4.    inherited RealSetText(Value);
    5.    InvalidatePreferredSize; //<-add this line
    6.    AdjustSize; //<-and this one
    7.    Invalidate;
    8.  end;
    Carpe Diem !
    (Horatius)

  8. #8
    Zet een breakpoint op die procedure en kijk of die überhaupt aangeroepen wordt als je de caption zet.

    [edit]
    Ja, die wordt aangeroepen.
    En de "workaround" hierboven werkt voor het setten van de caption bij mij prima (Lazarus trunk, Win32).

    Bart
    Last edited by Bart B; 22-Jan-14 at 20:30.

  9. #9
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Sjongejonge,
    Ik had de speedbutton.zip gedownload. Dacht snel klaar te zijn.
    De originele terug gezet en handmatig de twee regels code toegevoegd.
    Nu werkt het. Soms kun je aardig aan jezelf gaan twijfelen.
    Waarom die download niet wilde werken weet ik niet. Met debuggen stopte de hij op een regel die begon met '//'.
    Het werkt nu. Bedankt.

    Greets,
    Peter.
    Carpe Diem !
    (Horatius)

  10. #10
    Weelicht moet je hetzelfde ook doen bij
    TCustomSpeedButton.SetGlyph

    Bart

  11. #11
    Senior Member SaintPier's Avatar
    Join Date
    Nov 2010
    Location
    Etten-Leur
    Posts
    844
    Ga ik proberen.
    THX.
    Carpe Diem !
    (Horatius)

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
  •