Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   FastReport: lange Texte abgeschnitten (EndEllipsis?) (https://www.delphipraxis.net/173441-fastreport-lange-texte-abgeschnitten-endellipsis.html)

sahimba 25. Feb 2013 13:43

FastReport: lange Texte abgeschnitten (EndEllipsis?)
 
Hallo.

Ich baue derzeit an einigen Reports mit FastReport. So weit, so nett, FR gefällt mir richtig gut.

Nun habe ich in einigen Spalten einer tabellarischen Ansicht u.U. recht langen Text. Dieser wird (AutoWidth ist False) dann am Ende abgeschnitten. Gibt es einen einfachen Weg - wie bspw. bei TLabel (EllipsisPosition) - stattdessen am Ende automagisch "..." schreiben zu lassen?

Danke und Grüße.
S.

PS: Bereits im FastReport Forum angefragt, jedoch ohne Antwort diesbzgl. http://www.fast-report.com/en/forum/...howtopic=10083

sahimba 28. Feb 2013 14:53

AW: FastReport: lange Texte abgeschnitten (EndEllipsis?)
 
*push*

:oops:

Furtbichler 28. Feb 2013 16:48

AW: FastReport: lange Texte abgeschnitten (EndEllipsis?)
 
Ich würde es so probieren: Im Report für das Textfeld ein OnBeforePrint-Event definieren.
Delphi-Quellcode:
procedure Memo1OnBeforePrint(Sender: TfrxComponent);
Var
  s : String;
  i : Integer;
  wd : Extended;
  memo : TfrxMemoView;                              
   
begin
  memo := TfrxMemoView(Sender);                                                                    
  s := memo.Memo.Text;
  if memo.CalcWidth>memo.Width then                                                                                        
    for i:=Length(s) downto 1 do begin                                                                            
      memo.Memo.Text := Copy(s,1,i)+'...';                  
      wd := memo.CalcWidth;
      if wd <= memo.Width then break;
    end;                    
end;
Das geht auch schneller (binärsuche), aber das Prinzip sollte klar sein.

Das funktioniert aber -glaube ich- nur, wenn im Text keine Felder stehen. Aber vielleicht kann man den Inhalt des Memos irgendwie 'ausrechnen' lassen, sodaß etwaige Felder substituiert werden.

sahimba 1. Mär 2013 16:01

AW: FastReport: lange Texte abgeschnitten (EndEllipsis?)
 
Hallo und Danke. Der Ansatz ist gut und funktioniert erstem Anschein nach wie gewünscht.
Schönes Wochenende,
S.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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