|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | TCheckBox width Fra : Harald |
Dato : 09-11-02 18:30 |
|
Hej
Hvis jeg nu creater en TCheckBox at runtime hvordan finder jeg så ud af hvad
jeg skal sætte width til når jeg på forhånd ikke ved hvor meget texten
fylder?
I TCanvas findes der f.eks. TextExtent function der kan benyttes, men hvad
gør man med en TCheckBox.
Mvh
HK
| |
TheHawk (17-11-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : TheHawk |
Dato : 17-11-02 01:31 |
|
Hej HK
> Hvis jeg nu creater en TCheckBox at runtime hvordan finder jeg så ud af
hvad
> jeg skal sætte width til når jeg på forhånd ikke ved hvor meget texten
> fylder?
>
> I TCanvas findes der f.eks. TextExtent function der kan benyttes, men hvad
> gør man med en TCheckBox.
>
> Mvh
> HK
Da ingen andre har svaret endnu, vil jeg tillade mig at komme med min ikke
så elegante men dog brugbare løsning:
var
fntTemp: TFont;
begin
CheckBox1.Caption := 'Text';
fntTemp := Canvas.Font;
Canvas.Font := Checkbox1.Font;
CheckBox1.Width := Canvas.TextWidth(CheckBox1.Caption) + 18;
Canvas.Font := fntTemp;
end;
De 18 der er lagt til er størrelsen på selve checkboksens plus margin. Dette
skulle, så vidt jeg ved, ikke være til at ændre men en fast størrelse. Som
sagt ikke så elegant men det virker.
-Carsten Sonne Larsen
thehawk@thehawk.dk
| |
Harald (17-11-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Harald |
Dato : 17-11-02 17:07 |
|
"TheHawk" <thehawk@thehawk.dk> skrev i en meddelelse
news:3dd6e3bb$0$1575$edfadb0f@dread11.news.tele.dk...
> Hej HK
>
> > Hvis jeg nu creater en TCheckBox at runtime hvordan finder jeg så ud af
> hvad
> > jeg skal sætte width til når jeg på forhånd ikke ved hvor meget texten
> > fylder?
> >
> > I TCanvas findes der f.eks. TextExtent function der kan benyttes, men
hvad
> > gør man med en TCheckBox.
> >
> > Mvh
> > HK
>
> Da ingen andre har svaret endnu, vil jeg tillade mig at komme med min ikke
> så elegante men dog brugbare løsning:
>
> var
> fntTemp: TFont;
>
> begin
> CheckBox1.Caption := 'Text';
>
> fntTemp := Canvas.Font;
> Canvas.Font := Checkbox1.Font;
> CheckBox1.Width := Canvas.TextWidth(CheckBox1.Caption) + 18;
> Canvas.Font := fntTemp;
> end;
>
> De 18 der er lagt til er størrelsen på selve checkboksens plus margin.
Dette
> skulle, så vidt jeg ved, ikke være til at ændre men en fast størrelse. Som
> sagt ikke så elegant men det virker.
Nu er min CheckBox ikke på en form så jeg har ikke en canvas til rådighed
jeg kan bruge, så i mit tilfælde virker din løsnig ikke.
Mvh
HK
| |
|
|