Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Sonstiges (https://www.delphipraxis.net/45-library-sonstiges/)
-   -   Länge und Höhe eines Textes (String) (https://www.delphipraxis.net/11102-laenge-und-hoehe-eines-textes-string.html)

himitsu 31. Okt 2003 08:24


Länge und Höhe eines Textes (String)
 
Da es anscheinend öfters benötigt wird, denke ich mal es wird hier gut rein passen.
Delphi-Quellcode:
function TextLaenge(Font: TFont; Text: String): Integer;
var
  B: TBitMap;
begin
  B := TBitMap.Create;
  B.Canvas.Font := Font;
  Result := B.Canvas.TextWidth(Text);
  B.Free;
end;

function TextHoehe(Font: TFont; Text: String): Integer;
var
  B: TBitMap;
begin
  B := TBitMap.Create;
  B.Canvas.Font := Font;
  Result := B.Canvas.TextHeight(Text);
  B.Free;
end;

(* Beispiel für einen Aufruf der Funktion(en) *)
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  (* Wichtig:                             *
   * Es muß der Font übergegeben werden,  *
   * der auch für die Darstellung des     *
   * entsprechenden Textes verwendet wird. *)
  I := TextLaenge(Edit1.Font, Edit1.Text);
  Label1.Caption := IntToStr(I);
end;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
[edit=fkerber]Neu abgespeichert wg. Code-Highlighting. Mfg, fkerber[/edit]

CalganX 26. Apr 2004 15:48

Re: Länge und Höhe eines Textes (String)
 
Von unserem Foren-User shmia in diesem Beitrag. Darauf hingewiesen hat himitsu.

Zitat:

Zitat von shmia
Delphi-Quellcode:
function TrueFontHeight(fnt: TFont): integer;
// written by Udo Nesshoever, Jan 2001
var
   dc: hdc;
   tm: TTextMetric;
begin
   DC := GetDC(0);
   SelectObject(DC, fnt.Handle);
   GetTextMetrics(DC, tm);
   ReleaseDC(0, DC);
   Result:= tm.tmHeight;
end;

function TrueFontWidth(fnt: TFont; const text:string): Integer;
var
   dc: hdc;
   tsize : Windows.TSize;
begin
   dc := GetDC(0);
   SelectObject(DC, fnt.Handle);
   GetTextExtentPoint32(dc, PChar(text), Length(text), tsize);
   ReleaseDC(0, DC);
   Result := tsize.cx;
end;

[edit=fkerber]Neu abgespeichert wg. Code-Highlighting. Mfg, fkerber[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz