AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String mit ... abkürzen

Ein Thema von Yheeky · begonnen am 1. Aug 2002 · letzter Beitrag vom 24. Mär 2008
 
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: String mit ... abkürzen

  Alt 20. Mär 2008, 13:44
Ich hab´s mir selbst so gebastelt:

Delphi-Quellcode:
function TVCustom.PaintCanvas: TCanvas; // damit´s auch mit den AlphaSkins funktioniert
begin
  if SkinData.Skinned then
    Result := SkinData.FCacheBMP.Canvas
  else
    Result := Canvas;
end;

procedure TVCustom.WriteValue(X, Y: Integer; S: String; TextColor: TColor = clWindowText);
var Rect: TRect;
    H, P: String;
    Flags: Longint;
begin
  if not (csDesigning in ComponentState) then
  begin
    if not (csDestroying in ComponentState) then
    begin
      with PaintCanvas do begin
        Font.Color := TextColor;
        Inc(X, 3);
        Brush.Style := bsClear;
        Rect := ClipRect;
{
... freien Bereich evtl. eingrenzen
        if CheckBoxVisible then Rect.Left := Rect.Left + CheckBoxData.Width;
        if ImageVisible then Rect.Right := Rect.Right - ImageData.Width;
}

        Rect.Left := Rect.Left + X;
        Rect.Top := Rect.Top + Y;
        H := S;
        P := '';
// hier wird die Länge ermittelt...
        while (TextWidth(S + P) >= Rect.Right - Rect.Left) and (S <> '') do
        begin
          Delete(S, Length(S), 1);
// ... evtl. mit 3 Punkten ersetzt
          if P = 'then P := '...';
        end;
        S := S + P;
        Flags := 0;
        DrawText(Handle, PChar(S), -1, Rect, Flags);
// ... und wenn der Platz nicht reicht, der Text im Hint angegeben
        if P <> 'then
        begin
          ShowHint := True;
          Hint := H;
        end
        else begin
          ShowHint := False;
          Hint := '';
        end;
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz