Einzelnen Beitrag anzeigen

Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Text zur Anzeige kürzen mit Punkte hinten

  Alt 29. Okt 2011, 01:23
Vielleicht geht es mit MinimizeName, obwohl das AFAIK nur für Pfadangaben gedacht ist.
Stimmt, ist nur für Pfade.


EllipsisPosition
...
Geben tut es das ab Delphi 2006. Intern wird das 1:1 auf die entsprechenden Konstanten gemappt und an DrawText übergeben. Auch Canvas.TextRect kennt ein entsprechendes Flag. Aber das sind eben alles nur für die Ausgabe vorhandene Funktionen.
Danke für die Info. Hab EllipsisPosition gefunden beim TLabel in TurboDelphi. In Lazarus scheint's das nicht zu geben. In Delphi scheinbar nur im TLabel?

... für DrawText wird ein hdc benötigt, was nicht bei allen in Frage kommenden Controls der Fall ist.
Bei welchen denn? Nicht bei allen kommst du direkt heran, aber eigentlich haben alle einen Device Context.
Ok, ich sitze jetzt schon über eine halbe Stunde nur daran, ein blöden Text mit DrawText auf ein Panel zu bekommen. (Habs auch mit Form1 versucht.) Ich habe bestimmt 1 Mio. Codes von MSDN bis Was-weiß-ich-was-WebSites und Foren (auch hier) probiert und bin am verzweifen! Ich krieg ums Verrecken keinen Text mit Panel zu sehen!! Das kenn ich von "damals", als ich noch mit VB (Classic) programmierte. Und genau aus diesem Grund wollte ich DrawTest nicht haben. Das nervt einfach nur.

Es folgt ein Beispiel-Code, den ich ausprobiert habe. Bitte zeig mir doch den Fehler, oder einen funktionierenden Code. Und glaub mir, ich hab zig verschieden Kombinationen der Paramter und Funktionen probiert!

Delphi-Quellcode:
procedure TForm1.FormResize(Sender: TObject);
var
  Txt: String;
  h: HDC;
  Rct: TRect;
begin
  Txt := 'Dies ist ein Beispiel-Text.';
  //h := GetDC(Panel1.Handle);
  //h := GetWindowDC(Panel1.Handle);
  GetWindowRect(Panel1.Handle, Rct);

  DrawText(Panel1.Canvas.Handle, PChar(Txt), Length(Txt), Rct,
    DT_SINGLELINE or DT_LEFT or DT_VCENTER or DT_END_ELLIPSIS);
end;
Guido.

Geändert von Guido Eisenbeis (29. Okt 2011 um 01:31 Uhr) Grund: Beispiel-Code korrigiert
  Mit Zitat antworten Zitat