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.