Zitat von
Tempdir:
Danke für die Hinweise
@DevilsCamp
Also hat jedes Feld einen eigenen Index mit dem ich es direkt ansprechen könnte?
Es ist ja immer noch eine Listbox. Nur halt nicht mit nur einer Spalte sondern mit mehreren.
Ich konnte jetzt mal nachprüfen und die Listbox füllt sich nach Methode 1 aus Post #4
Um es mal mit deinem Beispiel zu erklären:
Code:
...| X
...| 0 1 2
-------------------------------
0| 23 41 45
Y 1| 97 678 65
2| 34 89 89
Code:
Listbox.Items[0] := '23';
Listbox.Items[1] := '97';
Listbox.Items[2] := '34';
Listbox.Items[3] := '41';
Listbox.Items[4] := '678';
Listbox.Items[5] := '89';
Listbox.Items[6] := '45';
Listbox.Items[7] := '65';
Listbox.Items[8] := '89';
Wenn du nun per Code herausfinden willst, welchen Index du für Spalte 3 der zweiten Zeile verwenden musst:
Delphi-Quellcode:
function Form1.CellToIndex(x, y: Integer): Integer; // x und y sind 0-basiert
begin
Result := x * Listbox1.Columns + y;
end;
procedure Form1.Button1Click(Sender: TObject);
begin
Listbox1.Items[CellToIndex(2, 1)] := 'Neuer Wert'; // Wert '65' wird zu 'Neuer Wert'
end;
(Wo war die rote Box?
)
@Luckie:
Die Listbox hat eine Eigenschaft
Columns. Wenn der Wert > 0 ist, dann zeigt die Listbox die Einträge in mehreren Spalten an, wenn die Listbox eine zu geringe Höhe hat um alle anzuzeigen.