/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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)
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)
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




Søg
Reklame
Statistik
Spørgsmål : 177495
Tips : 31968
Nyheder : 719565
Indlæg : 6408489
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste