else TBegin := DateTimeToFileDate(DateTimePickerl.Date) ;
end;

ladd := SR.Time >= TBegin; // проверка размера

if not CBSize.Checked then if ComboBoxl.Itemlndex = 0 then ladd : = ladd and

(SR.Size > (SpinEditl.Value shl 10)) else ladd := ladd and

(SR.Size <
(SpinEditl.Value shl 10));

end; if ladd then begin // занесение узла в дерево

NewNode := TreeViewl.Items.AddChild(PNode, SR.Name); // задание пиктограммы

if (SR.Attr and faDirectory) = 0 then NewNode.Imagelndex := 1 else NewNode.Imagelndex := 0;
NewNode.Selectedlndex := NewNode.ImagBIndex;
end;
end;
end;
// продолжение поиска ires := FindNext(SR) end;

FindClose(SR); // возврат в предыдущий каталог

ChDir(1..1);
end;
procedure TForml.BFindClick(Sender: TObject);

// начало поиска

var Dir, CurDir: string;

begin

// запоминание текущего каталога

CurDir := GetCurrentDir; // очистка дерева

TreeViewl.Items.Clear; // снятие сортировки

TreeViewl.SortType := stNone; // корневой каталог

Dir := Trim(EDir.Text);

if Dir <> '' then if Dir [Length (Dir) ] = 'V

then Delete(Dir, Length(Dir),1);
// курсор "песочные часы"

Screen.Cursor := crHourglass; // уход на поиск

ViewDir(Dir, nil) ; // курсор по умолчанию

Screen.Cursor:=crDefault; // восстановление текущего каталога

ChDir(CurDir); // сортировка дерева

TreeViewl.SortType := stText; // раскрытие корневого узла

if TreeViewl.Items[0].HasChildren then TreeViewl.Items[0].Expand(false);
end;
procedure TForml.TreeViewlCompare(Sender: TObject;
Nodel, Node2: TTreeNode;
Data: Integer;

var Compare: Integer); // функция сортировки: сначала папки, потом файлы begin

if Nodel.Imagelndex = Node2.Imagelndex then Compare := AnsiCompareText(Nodel.Text, Node2.Text) else Compare := Nodel.Imagelndex - Node2.Imagelndex;
end;
procedure TFOrml.TreeViewlDblClick(Sender: TObject);
// открытие файла при двойном щелчке var S: string;

Node: TTreeNode; begin

Node := TreeViewl.Selected; // если это файл, а не папка if Node.Imagelndex = 1 then begin // формирование полного пути S := Node.Text; while Node.Parent <> nil do begin

Node := Node.Parent;
S := Node.Text + 1\' + S;
end;
ShellExecute(Handle,nil,PChar(S),nil,nil,SW_SH0WN0RMAL);
end;
end;

procedure TForml.BBrowseClick(Sender: TObject); // диалог выбора каталога

var Dir: string; begin

if SelectDirectory('Выберите папку',11, Dir)

then EDir.Text := Dir;
end;
procedure TForml.TreeViewlCollapsed (Sender : TObject;
Node: TTreeNode);

// смена пиктограммы при свертывании узла папки

begin

if(Node.Imageindex = 2) then Node.Imageindex := 0;
Node.Selectedlndex := Node.Imageindex;
end;
procedure TForml.TreeViewlExpanded(Sender : Tobject;

Node : TTreeNode); // смена пиктограммы при развертывании узла папки begin

if(Node.Imageindex = 0) then Node.Imageindex := 2;
Node.Selectedlndex := Node.Imageindex;
end;

procedure TForml.CBSizeClick(Sender : TObject); // управление видимостью ComboBoxl и SpinEditl begin

ComboBoxl.Enabled := not CBSize.Checked;
SpinEditl.Enabled := not CBSize.Checked;
end;
procedure TForml.RGDataClick(Sender : TObject);

⇐ Предыдущая страница| |Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31