Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Dubikate in TStringGrid anzeigen (den Rest rausschmeißen

  Alt 14. Aug 2005, 10:17
Hai yankee,

hier noch eine alternative Methode (zum testen habe ich eine ListBox genommen):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ndx: integer;
begin
  with ListBox1 do
  begin
    for ndx := Count - 2 downto 1 do
    begin
      if not ((Items[ndx] = Items[ndx + 1]) or (Items[ndx] = Items[ndx - 1])) then
      begin
        Items.Delete(ndx);
      end;
    end;
  // Schleifen ende
    if not (Items[0] = Items[1]) then // erster <> zweiter
    begin
      Items.Delete(0);
    end;
    if not (Items[Count-1] = Items[Count-2]) then // letzer <> vorletzer
    begin
      Items.Delete(Count-1);
    end;
  end;
end;
Ich durchlaufe von unten nach oben die Einträge von count -2 (vorletzter) bis 1 (zweiter) und prüfe ob der Eintrag davor oder danach gleich dem aktuellen ist. Wenn dies nicht zutrifft lösche ich den aktuellen.
Ganz zum schluss prüfe ich noch ob der erste = dem zweiten ist bzw. der letze = dem vorletzten.

Aber die Methode von Keldorn ist auch sehr elegant
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat