Delphi-PRAXiS

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/)
-   -   Von Listview in ein Memo (https://www.delphipraxis.net/172626-von-listview-ein-memo.html)

jacky213 14. Jan 2013 21:03

Von Listview in ein Memo
 
Hallo leute, ich habe nun schon sehr viel gesucht und probiert, aber nichts hat wirklich geholfen.

Also mein Problem lautet wie folgt:

Ich habe eine ListView mit 4 Colums. Ich möchte nun einfach zeile für zeile durchgehen und die gesamte
Listview in ein Memo übertragen.

Beispiel:

Delphi-Quellcode:
Listview1

Produkt | Menge | Besonderheit | Bemerkung | Preis | Verfügbar
Holz     12      Schwarz       Stabil     50€     Ja  
Holz2     43      Weiß           Stabil     75€     Nein
Holz3     10      Schwarz       Stabil     20€     Ja
Ich möchte das ganze nun in ein Memo kopieren und dabei soll es wie folgt aussehen:

Delphi-Quellcode:
Memo1

Holz    
12     
Schwarz      
Stabil    
50€     
Ja

Holz2     
43     
Weiß           
Stabil    
75€     
Nein

Holz3     
10     
Schwarz      
Stabil    
20€     
Ja
Menge und verfügbarkeit müssen nicht mit ins memo, ich hab sie nur fürs verständnis mit übernommen.

hoffe ihr könnt mir helfen, ich sehe den wald vor lauter bäumen nicht mehr

schlagzu 14. Jan 2013 21:05

AW: Von Listview in ein Memo
 
Die Funktion die du suchst ist diese: http://www.delphipraxis.net/23672-split-funktion.html
Mit der kannst du Zeile für Zeile splitten und dann in dein Memo schreiben.

MfG schlagzu

jacky213 14. Jan 2013 21:26

AW: Von Listview in ein Memo
 
Kannst du mir da gleich ein beispiel zu machen, ich sitze schon seit 5 stunden an diesem problem, nach einer gewissen zeit nimmt das hirn nichts mehr auf.

also das beispiel direkt mit listview und memo wenns geht, du würdest mir echt den tag retten wenn es heute noch klappt

Volker Z. 14. Jan 2013 21:33

AW: Von Listview in ein Memo
 
Hallo,

vielleicht rettet folgendes Deinen Tag:
Delphi-Quellcode:
procedure TForm4.Button2Click(Sender: TObject);
var
  i, j : Integer;
begin
  for i := 0 to ListView1.Items.Count - 1 do
    begin
      Memo1.Lines.Add (ListView1.Items [i].Caption);
      for j := 1 to ListView1.Items [i].SubItems.Count - 2 do
        Memo1.Lines.Add (ListView1.Items [i].SubItems [j])
    end
end;
Gruß

Bummi 14. Jan 2013 21:34

AW: Von Listview in ein Memo
 
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
Var
 I:Integer;
begin
  for I := 0 to ListView1.Items.Count - 1 do
    begin
      Memo1.Lines.Add(ListView1.Items[i].Caption) ;
      Memo1.Lines.AddStrings( ListView1.Items[I].SubItems);
      Memo1.Lines.Add('');
    end;
end;

Bummi 14. Jan 2013 21:43

AW: Von Listview in ein Memo
 
Hi @Volker, jetzt darf man gespannt sein ob Deine den Anforderungen entsprechende, oder meine den erwarteten Ausgaben folgende Umsetzung gemeint war.

Popov 14. Jan 2013 21:44

AW: Von Listview in ein Memo
 
Hier etwas auf die Schnelle, obwohl es eigentlich auch einfacher gehen müßte:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, k: Integer;
begin
  with ListView1, Memo1 do
  begin
    Lines.Clear;

    for i := 0 to Items.Count - 1 do
    begin
      Lines.Add(Items[i].Caption);

      for k := 0 to Items[i].SubItems.Count - 1 do
        Lines.Add(Items[i].SubItems[k]);

      Lines.Add('------------------------------');
      Lines.Add('');
    end;
  end;
end;
Und hier noch mal ein Beispiel um ein ListView mit Daten zu füllen (aus der Delphi OH):

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

const
  Names: array[0..5, 0..1] of string = (
    ('Rubble', 'Barney'),
    ('Michael', 'Johnson'),
    ('Bunny', 'Bugs'),
    ('Silver', 'HiHo'),
    ('Simpson', 'Bart'),
    ('Squirrel', 'Rocky')
    );

var
  I: Integer;
  NewColumn: TListColumn;
  ListItem: TListItem;
begin
  with ListView1 do
  begin
    Parent := Self;
    Align := alClient;

    ViewStyle := vsReport;

    NewColumn := Columns.Add;
    NewColumn.Caption := 'Last';
    NewColumn := Columns.Add;
    NewColumn.Caption := 'First';

    for I := Low(Names) to High(Names) do
    begin
      ListItem := Items.Add;
      ListItem.Caption := Names[I][0];
      ListItem.SubItems.Add(Names[I][1]);
    end;
  end;
end;

Volker Z. 14. Jan 2013 21:50

AW: Von Listview in ein Memo
 
Hallo,

@Bummi Ich glaube Thread-Steller muss beide Versionen kombinieren. Ich habe die Leerzeile zwischen den Listeneinträgen vergessen und ich meine, dass Deine Variante Menge und Verfügbarkeit listet. Ansonsten war es wohl die berühmte Hundertstel.

Gruß

Bummi 14. Jan 2013 21:53

AW: Von Listview in ein Memo
 
M*** ... ich habe die letzte bzw. vorletzte Zeile übersehen ... :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:30 Uhr.

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