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 Suche TMemo-Komponente mit Zeilenlänge > 1024 (https://www.delphipraxis.net/207232-suche-tmemo-komponente-mit-zeilenlaenge-1024-a.html)

Harry Stahl 5. Mär 2021 15:27

AW: Suche TMemo-Komponente mit Zeilenlänge > 1024
 
Zitat:

Zitat von bernau (Beitrag 1484496)
Zitat:

Zitat von haentschman (Beitrag 1484488)
Imho besteht das Notepad++ auch aus einem SynEdit...oder? ...Allerdings die C++ Version. :zwinker:

Stimmt. An SynEdit habe ich gar nicht mehr gedacht. Ich werde es mal testen.

Hallo Gerd, SynEdit geht definitiv, ich habe die Komponente auch in meinem Pascal-Editor drin.

bernau 5. Mär 2021 16:28

AW: Suche TMemo-Komponente mit Zeilenlänge > 1024
 
Hi Harry,

hab's grade eingebunden. Funktioniert wunderbar.

mschaefer 5. Mär 2021 16:44

AW: Suche TMemo-Komponente mit Zeilenlänge > 1024
 
Man könnte es auch in eine TListView einlesen

Delphi-Quellcode:

uses
  ComCtrls, Types, StrUtils;

procedure ListViewSaveToFile(ListView: TListView; const FileName: string);

  procedure AddTextToLine(var Line: string; const Text: string);
  begin
    Line := Line + Text + #9;
  end;

  procedure MoveCompletedLineToList(const Strings: TStringList; var Line: string);
  begin
    Strings.Add(System.Copy(Line, 1, Length(Line)-1));//remove trailing tab
    Line := '';
  end;

var
  Strings: TStringList;
  LatestLine: string;
  i, j: Integer;

begin
  LatestLine := '';

  Strings := TStringList.Create;
  try
    for i := 0 to ListView.Items.Count-1 do begin
      AddTextToLine(LatestLine, ListView.Items[i].Caption);
      for j := 0 to ListView.Items[i].SubItems.Count-1 do begin
        AddTextToLine(LatestLine, ListView.Items[i].SubItems[j]);
      end;
      MoveCompletedLineToList(Strings, LatestLine);
    end;
    Strings.SaveToFile(FileName, TEncoding.UTF8);
  finally
    Strings.Free;
  end;
end;

procedure ListViewLoadFromFile(ListView: TListView; const FileName: string);
var
  Strings: TStringList;
  i, j: Integer;
  Fields: TStringDynArray;
  Item: TListItem;
begin
  Strings := TStringList.Create;
  try
    Strings.LoadFromFile(FileName);
    ListView.Clear;
    for i := 0 to Strings.Count-1 do begin
      Fields := SplitString(Strings[i], #9);
      Item := ListView.Items.Add;
      Item.Caption := Fields[0];
      for j := 1 to high(Fields) do begin
        Item.SubItems.Add(Fields[j]);
      end;
    end;
  finally
    Strings.Free;
  end;
end;

KodeZwerg 5. Mär 2021 19:35

AW: Suche TMemo-Komponente mit Zeilenlänge > 1024
 
Zitat:

Zitat von mschaefer (Beitrag 1484516)
Man könnte es auch in eine TListView einlesen

Wenn alles in eine Zeile soll limitiert ein TListView noch stärker als es ein TMemo/TRichEdit macht.

Ja du splittest da etwas, aber das war ja nicht gefordert.

Ich glaub bei 260 (?) ist da aus die Maus.
Diese ganzen limits kommen nicht von Delphi, die Steuerelemente vom System sind dafür verantwortlich.

Lösung wurde ja gefunden :-)


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

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