Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: FastReport: lange Texte abgeschnitten (EndEllipsis?)

  Alt 28. Feb 2013, 17:48
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.
  Mit Zitat antworten Zitat