Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#8

Re: Aus listbox mit mehreren Felder bestimmtes Feld ändern

  Alt 18. Mär 2009, 18:11
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.
  Mit Zitat antworten Zitat