Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Memo zeichen pro zeile
15. Dez 2011, 19:09
ich schließe mich meinem Vorredner an, wenn Du eine entsprechende Schrift verwendest könntest DU hiermit weiterkommen:
Delphi-Quellcode:
Function GetMemoCharactersPerLine(M:TMemo):Integer;
var
DC:THandle;
C:TCanvas;
begin
Result := 0;
C:=TCanvas.Create;
DC := GetDC(M.Handle);
try
C.Handle := DC;
C.Font.Size := M.Font.Size;
Result := C.TextWidth(' X');
finally
ReleaseDC(M.Handle, DC);
C.Free;
end;
end;
Function GetMemoTextWidth(M:TMemo; Const s: String):Integer;
var
DC:THandle;
C:TCanvas;
begin
Result := 0;
C:=TCanvas.Create;
DC := GetDC(M.Handle);
try
C.Handle := DC;
C.Font.Size := M.Font.Size;
Result := C.TextWidth(s);
finally
ReleaseDC(M.Handle, DC);
C.Free;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
memo1.Font.Size := 8;
Showmessage( IntToStr(GetMemoCharactersPerLine(Memo1)));
memo1.Font.Size := 90;
Showmessage( IntToStr(GetMemoCharactersPerLine(Memo1)));
Showmessage(IntToStr(GetMemoTextWidth(Memo1,' Nasenbär')));
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
Geändert von Bummi (15. Dez 2011 um 19:12 Uhr)
|