ListView переход в директорию по двойному клику

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
CoverStory
новенький
Сообщения: 95
Зарегистрирован: 09.02.2006 17:21:42
Откуда: Семипалатинск

ListView переход в директорию по двойному клику

Сообщение CoverStory »

Всем доброго!
Появилась проблема с которой никак немогу разобраться!
В своей программе я загружаю в ListView файлы и папки с определенной директории с помощью вот такого кода:

Код: Выделить всё

procedure TForm1.viewfile(PathD:string);
var
  ListItem: TListItem;
  sr: tsearchrec;
Begin
  if FindFirst(PathD + '\*.*', faAnyFile, sr) = 0 then
//  if FindFirst(ExtractFilePath(ParamStr(0)) + '*.*', faAnyFile - faDirectory - faVolumeId, sr) = 0 then
  begin
    ListView1.Items.Clear;
    ListItem := ListView1.Items.Add;
    ListItem.Caption := sr.name;
    ListItem.SubItems.Add(inttostr(sr.size));
    ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
    ListItem.SubItems.Add(inttostr(sr.attr));
    while FindNext(sr) = 0 do
    begin
      ListItem := ListView1.Items.Add;
      ListItem.Caption := sr.name;
      ListItem.SubItems.Add(floattostrf(sr.size/1024, ffnumber, 10, 0));
      ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
      //ListItem.SubItems.Add(inttostr(sr.attr));
    end;
    FindClose(sr);
  end;
End;       

Теперь мне нужно войти в отображаемую в ListView директорию с помощью двойного клика мышью. Как это сделать?
Пробовал вот так:

Код: Выделить всё

procedure TForm1.ListView1DblClick(Sender: TObject);
var
pathD: string;
begin
    pathD:=Edit1.Text + '\' + ListView1.Selected.SubItems.Strings[0];
    viewfile(PathD);
    Edit1.Text:=PathD;
end;       

Но компилятор выдает мне что это второй столбец, хотя имена папок находятся в первом.
Спасибо.
Последний раз редактировалось CoverStory 25.07.2008 13:07:09, всего редактировалось 3 раза.
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Прочитать это и особено это и написать соответсвующий код.
Ответить