![]() |
nochmal StringGrid, Listbox, Memo
Liste der Anhänge anzeigen (Anzahl: 2)
sorry, aber ich muss das Teil nochmal ändern...
Der Code soll folgendes machen: die ListboxEinträge mit den Zellen aus dem StringGrid vergleichen, bei Übereinstimmung sollen alle ZEILEN des StringGrids ins Memo geschrieben werden, allerdings NUR die Einträge aus der ausgewählten Spalte hier ist der Quellcode aus dem ButtonKlick-Ereignis
Delphi-Quellcode:
Bild Unbenannt1 zeigt die wie es momentan aussieht.
procedure TArtikel_Form.Btn_ListKonvertierenClick(Sender: TObject);
var i:Integer; begin . . . for i := 0 to ListBox1.Items.Count - 1 do //für jeden Listboxeintrag begin for x := 1 to StringGrid1.RowCount - 1 do //für jede Spalte begin if ListBox1.Items[i] = StringGrid1.Cells[x,1] then begin vZeile := ''; //y=0 : erste(leere Spalte) //y=1 : zweite(erste gefüllte Spalte) for y := 0 to StringGrid1.ColCount - 1 do begin for x := 1 to StringGrid1.Row -1 do begin vZeile := vZeile + StringGrid1.Cells[y,x] + vTrennzAus; memo1.Lines.Add('INVITEM' + vZeile); end; end; end; end; end; Listbox1.Clear; end; end; Bild Unbenannt2 zeigt wie es aussehen soll ! |
Re: nochmal StringGrid, Listbox, Memo
Wo der Fehler liegt kann ich dir zwar nicht sagen aber debbuge mal zeile für zeile.
Und schau dir immer den Wert von VZeile an. Dann solltest du draufkommen wo der Hacken ist. |
Re: nochmal StringGrid, Listbox, Memo
schon ok ich habs jetz endlich !
Danke an Alle die helfen wollten/konnten! ;-) |
Re: nochmal StringGrid, Listbox, Memo
falls es jmd interessiert:
Delphi-Quellcode:
danke nochmal an alle!for i:=1 to StringGrid1.RowCount - 1 do // Alle Zeilen durchlaufen begin vZeile:=''; for j:=1 to StringGrid1.ColCount do // Alle Spalten durchlaufen begin gefunden:=false; for k:=0 to ListBox1.Items.Count-1 do // Alle ListboxEinträge durchlaufen begin //### Listboxeintrag mit Spaltenüberschirft vergleichen ### if StringGrid1.Cells[j,1]=ListBox1.Items.Strings[k] then gefunden:=true; . . . end; // end Listboxeinträge //### wenn Übereinstimmung Listboxeintrag = Zelleninhalt dann Zeile festlegen ### if gefunden = true then vZeile := vZeile + vTrennzAus + StringGrid1.Cells[j,i]; end; // End ColCount Memo1.Lines.Add(vZeile); //festgelegte Zeilen ins Memo schreiben end; // End RowCount Listbox1.Clear; //Listeneinträge löschen nach Konvertierung end; end; |
Re: nochmal StringGrid, Listbox, Memo
Hallo,
darf es auch etwas kürzer sein :shock:
Delphi-Quellcode:
Außerdem ließt Du in deinemvTrennzAus := ';'; s := ''; with StringGrid1 do for i:=1 to RowCount - 1 do // Alle Zeilen durchlaufen begin for j:=1 to ColCount -1 do // Alle Spalten durchlaufen if ListBox1.Items.IndexOf(Cells[j,1]) <> -1 then s := s + vTrennzAus + Cells[j,i]; s := s+#13#10;//Zeilenumbruch hinzufügen end; Memo1.Text := s;//Ergebnis ins Memo
Delphi-Quellcode:
über den Bereich deiner StringGrid hinnaus, dort fehlt -1
for j:=1 to StringGrid1.ColCount do//<---
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz