Thema: Delphi Länge eines Strings

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#6

Re: Länge eines Strings

  Alt 31. Okt 2003, 07:49
Mit Canvas wirst du bei TEdit einige Probleme bekommen.

Daher hab ich mal schnell einige unabhänige Routinen erstellt.
Wie zu erkennen ist, muss nur der Text und der dazugehörige Font übergeben werden.
Delphi-Quellcode:
{© by Himitsu @ Delphi-PRAXiS}

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 angegeben werden,    *
    * der auch für die Darstellung des    *
     * entsprechenden Textes verwendet wird *)

    I := TextLaenge(Edit1.Font, Edit1.Text);
    Label1.Caption := IntToStr(I);
  End;
Viel Spass damit,
Frank

Habe es dieses mal sogar getestet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat