Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Strings in ListView vergleichen

  Alt 13. Aug 2006, 16:17
Hallo Hawkeye,

du machst deinem nick alle Ehre - natürlich hast du Recht. Es sind sogar noch weitere Fehler vorhanden, da ich die Prozedur recht kurzentschlossen beim Posten noch verallgemeinert habe: der Hinweis auf die Unit StrUtils (wegen IfThen) fehlt und im Aufrufbeispiel habe ich den Parameter index gar nicht bedient. Hier der korrigierte Code:

Delphi-Quellcode:
procedure ExtractGroups(li: TListItems; index: Word; s: TStrings);
var
  i: Integer;
  sGroup, sTest: String;
begin
  s.Clear;
  sGroup := '';
  for i := 0 to Pred(li.Count) do
  begin
    if index = 0
      then sTest := li[i].Caption
      else sTest := li[i].SubItems[Pred(index)];
    if (i = 0) or (sTest <> sGroup) then
    begin
      sGroup := sTest;
      s.Values[sGroup] := IntToStr(i);
    end;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  ExtractGroups(ListView.Items, 3, ValueListEditor.Strings);
end;
Aber immernoch geht es nur ums Prinzip - Prüfungen fehlen und eine implizite Voraussetzung sind sortierte Spaltenwerte.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat