Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Richedit schnell viele farbige Zeilen einfügen zu langsam (https://www.delphipraxis.net/129214-richedit-schnell-viele-farbige-zeilen-einfuegen-zu-langsam.html)

Blup 18. Feb 2009 12:58

Re: Richedit schnell viele farbige Zeilen einfügen zu langsa
 
So wird zumindest ein brauchbarer RTF-Code erzeugt:
Delphi-Quellcode:
procedure TFmain.TntButton_generate_ReportClick(Sender: TObject);
var
  i, j: Integer;
  st1, st2: String;
  StrS: TStringStream;
  col: TColor;
begin
  StrS := TStringStream.Create('');
  j := ListBox_HEX.Items.Count - 1;
  st1 := '{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}}';
  StrS.WriteString(st1);
  st1 := '{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}';
  StrS.WriteString(st1);
  try
    for i:= 0 to j do
    begin
      st1 := ListBox_HEX.Items[i];
      col := TColor(ListBox_HEX.Items.Objects[i]);
      case col of
        clRED : st2 := '\cf1 ';
        clBLUE : st2 := '\cf2 ';
      else      st2 := '\cf0 ';
      end;
      StrS.WriteString(st2 + st1 + '\par');
    end;
    st1 := '}';
    StrS.WriteString(st1);
    StrS.Position := 0;
    RichEdit1.Lines.LoadFromStream(StrS);
  finally
    StrS.Free;
  end;
end;

NICK447 18. Feb 2009 22:05

Re: Richedit schnell viele farbige Zeilen einfügen zu langsa
 
heute leider keine Zeit zum testen .. Werde Dir morgen berichten wie schnell das für 50.000 Zeilen geht danke für den Tipp mit dem brauchbaren RTF code..

Nick

NICK447 19. Feb 2009 19:35

Re: Richedit schnell viele farbige Zeilen einfügen zu langsa
 
Hallo ich mal wieder... Blup das funktioniert so !! .. also 50.000 Lines mit "Blup's" Methode macht 23 sekunden meine bisher schnellste Methode (von hinten nach vorne und Einfügepos. auf 0 lassen) waren 33 sekunden. Ich habe noch ein Progress Bar rein gesetzt damit niemand denkt das Programm ist abgestürtzt ... Begeistert mich nicht aber ist so.. Ich habe teilweise 200.000 Zeilen in den Reports Gruss Nick

toms 20. Feb 2009 01:42

Re: Richedit schnell viele farbige Zeilen einfügen zu langsa
 
Hallo

Da stellt sich die Frage nach dem Sinn einer Ausgabe von 200.000 Zeilen.

NICK447 20. Feb 2009 08:27

Re: Richedit schnell viele farbige Zeilen einfügen zu langsa
 
Hi Toms... der Sinn .. gesamte Kommunikation eines Gerätes mit dem PC wird aufgezeichnet .. als rtf Report kann es gespeichert werden .. Die Farben machen Sinn damit man schnell sehen kann wer hat gesendet und was wurde empfangen. Das rtf Format ist durchsuchbar und kann auf jedem PC mit verschiedenen Programmen angezeigt werden ( Im schlechten Fall mit Wordpad) Ich weis das man kaum 200.000 Zeilen lesen wird aber manchmal will man bestimmte Stellen suchen und untersuchen.

Nick


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz