AW: Text zur Anzeige kürzen mit Punkte hinten
Ist dir schonmal aufgefallen, daß TCanvas.TextRect für den Text einen Var-Parameter nutzt?
Tipp: tfModifyString, tfEndEllipsis oder tfPathEllipsis und tfCalcRect > TTextFormat oder DT_MODIFYSTRING, DT_END_ELLIPSIS oder DT_PATH_ELLIPSIS und DT_CALCRECT > DrawTextEx
Delphi-Quellcode:
Text := DeinText;
Rect.Left := 1; Rect.Top := 1; Rect.Right := MaximaleBreite; Rect.Bottom := MaximaleHöhe; DrawTextEx(Handle, PChar(Text), Length(Text), Rect, ... or DT_END_ELLIPSIS or DT_MODIFYSTRING, nil); SetLength(Text, StrLen(PChar(Text))); siehe MSDN: DT_CALCRECT > but does not draw the text |
AW: Text zur Anzeige kürzen mit Punkte hinten
Geht doch:
Delphi-Quellcode:
Mein Panel (D7) hat übrigens kein Canvas.
procedure TForm1.FormPaint(Sender: TObject);
var Txt: String; Rct: TRect; begin Txt := 'Dies ist ein Beispiel-Text.'; GetWindowRect(Self.Handle, Rct); DrawText(Self.Canvas.Handle, PChar(Txt), Length(Txt), Rct, DT_SINGLELINE or DT_LEFT or DT_VCENTER or DT_END_ELLIPSIS); end; |
AW: Text zur Anzeige kürzen mit Punkte hinten
Zitat:
|
AW: Text zur Anzeige kürzen mit Punkte hinten
das kennst Du schon, oder?
Delphi-Quellcode:
type
TPanel = Class(ExtCtrls.TPanel) Public Property Canvas; End; TForm1 = class(TForm) Panel1: TPanel; procedure Panel1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Panel1Click(Sender: TObject); begin Panel1.Canvas.Rectangle(1,1,100,100); end; |
AW: Text zur Anzeige kürzen mit Punkte hinten
Ja, natürlich hat es einen. Aber ich meinte ein Canvas dem man so nutzen kann.
|
AW: Text zur Anzeige kürzen mit Punkte hinten
Zitat:
Delphi-Quellcode:
Diese unterstützt das nicht.
procedure TextRect(const ARect: TRect; X, Y: integer; const Text: string);
procedure TextRect(ARect: TRect; X, Y: integer; const Text: string; const Style: TTextStyle); virtual; Gruß, Sven |
AW: Text zur Anzeige kürzen mit Punkte hinten
Ich dachte die Lazarusleute hätten am Anfang erstmal alles kopiert? :stupid:
Wollte schon Fragen, wie TTextStyle dort aussieht, aber das hat sich grade erledigt. Da hat man sich mit einem IMHO etwas umständlichen Record begnügt. (Das SET wurde wohl erst später erfunden?) Wäre ja zu witzig gewesen, wenn dort tfModifyString und Co. mit enthalten wäre. :roll: http://www.delphipraxis.net/164139-t...-ellipsis.html Nja, die letzte Variante, also die mit dem Handle (HDC), sollte dann wohl auch unter Lazarus laufen. (hoff ich einfach mal, und wenn nicht, dann müßt ihr's halt noch etwas anpassen) |
AW: Text zur Anzeige kürzen mit Punkte hinten
Mein Delphi hat ein TControlCanvas. Das instantiiert man, verbindet es mit einem Control und -wupps- kann man auf dem Control zeichnen.
|
AW: Text zur Anzeige kürzen mit Punkte hinten
Zitat:
Ansonsten: Was ist da nur so interessant an DrawText? Mein oben genannter 5-Zeiler erledigt das doch gut: + Anwendbar auf die Caption-Eigenschaft + gibt eine String zurück + evtl. Plattformunabhängig ??? - Abhängigkeit von Caption (bzw Text) + keine Abhängigkeit von Canvas + kein Publizieren des Canvas (für jede Control-Klasse!) + kein Überschreiben von Paint (für jede Control-Klasse!) Zitat:
Guido. |
AW: Text zur Anzeige kürzen mit Punkte hinten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz