Hi,
ich muß die breite eines textes in TStaticText in pixeln ermitteln. ein TCanvas liefert den wert mit TCanvas.TextWidth zurück. aber im TStaticText kann ich nicht auf einen Canvas zugreifen.
wie kann ich die breite trotzdem bestimmen ?
CU, DiJey
Hi,
ich muß die breite eines textes in TStaticText in pixeln ermitteln. ein TCanvas liefert den wert mit TCanvas.TextWidth zurück. aber im TStaticText kann ich nicht auf einen Canvas zugreifen.
wie kann ich die breite trotzdem bestimmen ?
CU, DiJey
Hi Dirk!
aber im TStaticText kann ich nicht auf einen Canvas zugreifen.
…was auch kein Wunder ist, wenn’s gar kein Canvas gibt 
wie kann ich die breite trotzdem bestimmen ?
Diese Funktion leistet das Gewünschte:
FUNCTION StaticTextPixelWidth (st: TStaticText): INTEGER;
VAR
DC : HDC;
SaveFont: HFont;
TextSize: TSize;
begin
DC := GetDC(0);
SaveFont := SelectObject(DC, st.Font.Handle);
GetTextExtentPoint32(DC, PCHAR(st.Caption), Length(st.Caption), TextSize);
SelectObject(DC, SaveFont);
ReleaseDC(0, DC);
Result := TextSize.cx
end;
Mit freundlichem Gruß
Martin