Тема: treeview
Показать сообщение отдельно
  #2  
Старый 06.04.2008, 16:52
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Мне с трудом удалось решить проблему с построением дерева, перехода и чтобы не глючило. Вот кусок кода

Procedure TForm1.ShowFiles(Dir:String);
var
ListItem: TListItem;
sr: tsearchrec;
NewColumn: TListColumn;
ImgList:TImageList;
A:TDateTime;
begin
While Dir[Length(Dir)]='\' Do
Delete(Dir,Length(Dir),1);
ListView1.Items.Clear;
if FindFirst(Dir+'\*.*', faAnyFile, sr) = 0 then
begin
FindNext(sr);
ListItem := ListView1.Items.Add; // создается объект
ListItem.Caption := sr.name;
If (sr.Attr And faDirectory)<>0 Then
ListItem.ImageIndex:=0 Else
ListItem.ImageIndex:=1;
ListItem.SubItems.Add(inttostr(sr.Size));
//ListItem.SubItems.Add(datetimetostr(FileDateToDate Time(sr.time)));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileCreationTime(Dir+'\'+Sr. Name)) Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileModifyTime(Dir+'\'+Sr.Na me))Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileAccessTime(Dir+'\'+Sr.Na me))Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));

ListItem.SubItems.Add(GetAttributesAsString(sr.Att r));

while FindNext(sr) = 0 do
begin
ListItem := ListView1.Items.Add;
ListItem.Caption := sr.name;
If (sr.Attr And faDirectory)<>0 Then
ListItem.ImageIndex:=0 Else
ListItem.ImageIndex:=1;
ListItem.SubItems.Add(inttostr(sr.size));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileCreationTime(Dir+'\'+Sr. Name)) Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileModifyTime(Dir+'\'+Sr.Na me)) Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));
If sr.Name<>'..' Then
A:=FileDateToDateTime(FileAccessTime(Dir+'\'+Sr.Na me)) Else
A:=FileDateToDateTime(FileCreationTime((Dir)));
ListItem.SubItems.Add(DateTimeToStr(A));

ListItem.SubItems.Add(GetAttributesAsString(sr.Att r));
end;
FindClose(sr);
end;
End;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием