Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Caption vertikal zentrieren

  Alt 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.
  Mit Zitat antworten Zitat