Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Stringgrid, in bestimmter Spalte nach String suchen...

  Alt 21. Jan 2005, 18:50
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;
Andreas
  Mit Zitat antworten Zitat