Schau doch mal hier
TStringList.IndexOf da steht des Rätsels Lösung
Irgendwie ist dein Code aber relativ wirr und ich kann mir nicht vorstellen, das dieser Code ansatzweise das tut was du möchtest:
Delphi-Quellcode:
row3 := 1;
for row2 := 6 to StringGrid1.RowCount - 1 do
if ListBox1.Items.IndexOf(StringGrid1.Cells[7,row2]) = - 1 then
begin
StringGrid2.Cells[ 0, row3 ] := copy( stringGrid1.Cells[ 0, row2 ], 0, 300 );
StringGrid2.Cells[ 1, row3 ] := copy( stringGrid1.Cells[ 1, row2 ], 0, 300 );
StringGrid2.Cells[ 3, row3 ] := copy( stringGrid1.Cells[ 3, row2 ], 0, 300 );
StringGrid2.Cells[ 6, row3 ] := copy( stringGrid1.Cells[ 6, row2 ], 0, 300 );
StringGrid2.Cells[ 7, row3 ] := copy( stringGrid1.Cells[ 7, row2 ], 0, 300 );
StringGrid2.Cells[ 9, row3 ] := copy( stringGrid1.Cells[ 9, row2 ], 0, 300 );
row3 := row3 + 1;
end;
Was mir vor allem nicht einleuchtet, warum du im StringGrid2 NACH der Aktion alle Spalten-Inhalte wieder löschen willst?
Ich hoffe auch, dass du VOR diesem Code dafür sorgst, dass in StringGrid2 genug Zeilen vorhanden sind.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)