Einzelnen Beitrag anzeigen

Guido Eisenbeis

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

AW: Text zur Anzeige kürzen mit Punkte hinten

  Alt 28. Okt 2011, 05:09
@BUG

Dein Ansatz ist zwar etwas grob, aber schon ganz gut. Mit grob meine ich, dass das Kürzen immer ganze Wörter weg nimmt. Bei längeren Wörtern (z. B. "Weltwirtschaftskrise") wäre das schon jeweils ein ziemlich krasser Sprung. An sich aber eine interessante Idee.


Zumindestens in Delphi gibt es da irgendwo eine Funktion dafür, aber ich glaub das war sogar eine WinAPI, also sollte es sie auch in Lazarus geben.
Welche Funktion ist das denn? Die von dir erwähnte DrawText? DrawText will ich nicht.
Nee, Spaß beiseite, für DrawText wird ein hdc benötigt, was nicht bei allen in Frage kommenden Controls der Fall ist. Außerdem soll der gekürzte Text als string vorliegen, um in z. B. weiterverarbeiten zu können.

Falls du eine andere Funktion meintest, dann raus damit.


Bei den TLabel (Delphi) kann man das jetzt auch über den OI regeln.
Wobei es intern schon viel länger möglich war.
(ich weiß nicht wie dieses in Lazarus arbeitet, aber vermutlich ähnlich)
Denke ich auch. Wie heißt die Eigenschaft denn? Ab welcher Delphi-Version?


Ansonsten, eine Routine zum kürzen habe ich mittlerweile selbst geschrieben. Funktioniert ganz gut. Hier ein Code-Ausschnitt:
Delphi-Quellcode:
  // Text kürzen, bis er ins Control passt.
  while (ACtrl.Width < (TmpCanvas.TextWidth(TmpTxt) + 50)) do
  begin
    if Length(TmpTxt) < 2 then exit;
    TmpTxt := LeftStr(TmpTxt, Length(TmpTxt) - 1);
  end;
  Mit Zitat antworten Zitat