Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#49

AW: Textlänge abschneiden

  Alt 19. Jun 2016, 21:33
Also ich verstehe das nicht.

Lösung Sir Rufo:
Delphi-Quellcode:
type
  TCharMeasureWidthDelegate = function( const C: Char ): Integer of object;

function ShortenText( const Text: string; const MaxLength: Integer; const CharMeasurement: TCharMeasureWidthDelegate; const ShortenSuffix: string = '...' ): string;
snip...

So jetzt eine function

Delphi-Quellcode:
function TmyView.CalculateCharWith( const C: Char ): Integer;
begin
  Result := tsFontGetCharParameteri(C, TS_CHAR_ADVANCE);
end;
und das ganze Aufrufen mit

lDrawText := ShortenText( Edit1.Text, PaintBox1.ClientWidth, myView.CalculateCharWith ); fertig.

Also in meinen Augen ist die Lösung von Sir Rufo super weil komplett unabhängig
und vor allem auch testbar.
Fritz Westermann
  Mit Zitat antworten Zitat