Zitat von
yankee:
Zitat von
shmia:
p := spalte.IndexOf('rot'); // suche nach "rot"
end;
Du bist aber schon ein bißchen JavaScript geschädigt, oder
Nö, das ist doch korrekter Delphi Code.
Also
spalte ist eine Stringliste, und mit der Methode [TStrings.]
IndexOf erspare ich mir
eine Schleife über alle Strings in der Liste.
In der Variablen p wird die Position des Strings in der Liste gespeichert.
Wenn man nur einen Teilstring suchen möchte, dann kann man IndexOf natürlich nicht gebrauchen.
Zitat von
yankee:
EDIT2: ich habe mir das nochmal genauer durchgelesen. Das macht echt so den Anschein, asl hättest du ein bißchen zuvile Javascript geproggt.
Zitat von
shmia:
spalte := StringGrid1.cols[2]; // die 3. Spalte
Hier kopierst du gerade die komplette Spalte nochmal. Das ist doch totale
RAM-Verschwendung. Und CPU-Verschwendung eignlch auch.
Hier wird nicht kopiert, sondern spalte ist ein Objektzeiger.
Über dieses TStrings-Objekt greife ich direkt auf die Zellen einer Spalte des StringGrids zu.
Wenn du's nicht glaubst, dann versuche mal das:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
spalte : TStrings;
i : Integer;
begin
spalte := StringGrid1.cols[1]; // die 2. SPALTE
// wird jetzt mit Inhalten befüllt
for i := 0 to spalte.Count-1 do
begin
spalte[i] := IntToStr(i)+ ' Hallo';
end;
// beachte, dass das Objekt spalte weder mit Create erzeugt,
// noch mit Free zerstört wird
// auch ein Refresh des Grid ist nicht nötig !
end;