Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
Delphi 12 Athens
|
Re: Caption vertikal zentrieren
18. Jan 2009, 17:01
auch grad getestet ... muß ich ja eines meiner Programme mal schnell durchsehn/überarbeiten.
noch ungetestet!
Delphi-Quellcode:
Function TextExtentEx(Canvas: TCanvas; S: String): TSize;
Var S2: String;
i, i2: Integer;
ts: TSize;
Begin
Result.cx := 0;
Result.cy := 0;
While S <> '' do Begin
i := Pos(#13, S);
i2 := Pos(#10, S);
If (i > 0) and (i2 > 0) and (i2 < i) Then i := i2;
If i = 0 Then i := Length(S) + 1;
S2 := Copy(S, 1, i - 1);
If Copy(S, i, 2) = #13#10 Then Delete(S, 1, i + 1)
Else Delete(S, 1, i);
If S2 <> '' Then Begin
ts := Canvas.TextExtent(S2);
Result.cx := Max(ts.cx, Result.cx);
Inc(Result.cy, ts.cy);
End Else Begin
ts := Canvas.TextExtent('X');
Inc(Result.cy, ts.cy);
End;
End;
End;
Function TextWidthEx(Canvas: TCanvas; Const S: String): Integer;
Begin
Result := TextExtentEx(Canvas, S).cx;
End;
Function TextHeightEx(Canvas: TCanvas; Const S: String): Integer;
Begin
Result := TextExtentEx(Canvas, S).cy;
End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|
|
Zitat
|