Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 16:26
Hm, ich würde gerne meine ursprüngliche Idee mit dem manuellen Sortieren der Stringlisten trotzdem gerne weirer verfolgen. Ich habe jetzt:
Delphi-Quellcode:
procedure SortSl(slInOut, slTemplate: TStringlist);
var
  slTemp: TStringList;
  i: Integer;
  //idx: Integer;
  s: string;
begin
  slTemp := TStringList.Create;
  try
    //for i := 0 to slTemplate.Count - 1 do
    while slTemp.Count > slTemplate.Count do
    begin
      s := slInOut.Strings[i];
      if pos(slTemplate.Strings[i], s) > 0 then
        slTemp.Add(s);
    end;
    slInOut.Assign(slTemp);
  finally
    //FreeAndNil(slTemp);
  end;
end;
Nur bekomme ich dann eine AV, wenn ich auf eine Zelle mit einem Dateinamen klicke:
Delphi-Quellcode:
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Col, Row: Integer;
  sl: TStringList;
  i: Integer;
begin
  StringGrid1.MouseToCell(X, Y, Col, Row);
  if (Col = 0) and (Row > 0) and (StringGrid1.Cells[Col, Row] <> '') then
  begin
    IndexFileToOpen := Row - 1;
    TempForm := TfrmDisplayFiles.Create(self); // hier AV!!!
    FormList.Add(TempForm);
    TfrmDisplayFiles(FormList.Items[FormList.Count - 1]).Show;
    TfrmDisplayFiles(FormList.Items[FormList.Count - 1]).BringToFront;
  end;
  if (Col = StringGrid1.ColCount - 1) or
    (Col = StringGrid1.ColCount - 2) and
    (Row = 0) then
  begin
    StringGrid1.SortSettings.Column := Col;
    StringGrid1.QSort;
    sl := TStringList.Create;
    try
      for i := 1 to StringGrid1.RowCount - 2 do
      begin
        sl.Add(StringGrid1.Cells[0, i]);
      end;
      SortSl(slFiles, sl);
    finally
      FreeAndNil(sl);
    end;
    Sorted := True;
    mnuUnsort.Enabled := Sorted;
  end;
end;
Ich zerschieße mir wohl irgendwie die ursprüngliche Dateiliste (slFiles).
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat