Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

kursovaya / Unit3

.pas
Скачиваний:
2
Добавлен:
23.02.2016
Размер:
3.51 Кб
Скачать
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, unit1, ComCtrls;

type
TForm3 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }

public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.dfm}
procedure NextLevel(ParentNode: TTreeNode); //переключение и показ папок на лок дисках
function DirectoryName(name: string): boolean;
begin
result:=(name<>'.') and (name<>'..');
end;
var
sr, srChild: TSearchRec;
node: TTreeNode;
path: string;
begin
node:=ParentNode;
path:='';
repeat
path:=node.Text+'\'+path;
node:=node.Parent;
until node=nil;
if FindFirst(path+'*.*', faDirectory, sr)=0 then
begin
repeat
if (sr.Attr and faDirectory <> 0) and DirectoryName(sr.Name)
then
begin
node:=Form3.TreeView1.Items.AddChild(ParentNode, sr.Name);
node.ImageIndex:=0;
node.SelectedIndex:=1;
node.HasChildren:=false;
if FindFirst(path+sr.Name+'\*.*', faDirectory, srChild)=0
then
begin
repeat
if (srChild.Attr and faDirectory<>0) and DirectoryName(srChild.Name)
then node.HasChildren := true;
until (FindNext(srChild) <> 0) or node.HasChildren;
end;
FindClose(srChild);
end;
until FindNext(sr) <> 0;
end
else ParentNode.HasChildren:=false;
FindClose(sr);
end;

procedure TForm3.FormCreate(Sender: TObject); //показать локальные диски и находящиеся
//в них папки
const
IconNames:array [0..6] of String=('CLOSEDFOLDER','OPENFOLDER','FLOPPY','HARD','NETWORK','CDROM','RAM');
var
c:Char;
s:String;
Node:TTreeNode;
DriveType:Integer;
bm,mask:TBitmap;
i:Integer;
begin
Form3.Left:=(Screen.Width-Form3.Width) div 2; //по середине моннитора
Form3.Top:=(Screen.Height-Form3.Height) div 2;

TreeView1.Items.BeginUpdate;
TreeView1.Images:=TImageList.CreateSize(16, 16);
bm:=TBitmap.Create;
mask:=TBitmap.Create;
for i:=low(IconNames) to high(IconNames) do
begin
bm.Handle:=LoadBitmap(HInstance, PChar(IconNames[i]));
bm.Width:=16;
bm.Height:=16;
mask.Assign(bm);
mask.Mask(clBlue);
TreeView1.Images.Add(bm, mask);
end;
for c:='A' to 'Z' do
begin
s:=c+':';
DriveType:=GetDriveType(PChar(s));
if DriveType=1 then continue;
node:=Form3.TreeView1.Items.AddChild(nil, s);
case DriveType of
DRIVE_REMOVABLE: node.ImageIndex:=2;
DRIVE_FIXED: node.ImageIndex:=3;
DRIVE_REMOTE: node.ImageIndex:=4;
DRIVE_CDROM: node.ImageIndex:=5;
else node.ImageIndex:=6;
end;
node.SelectedIndex:=node.ImageIndex;
node.HasChildren:=true;
end;
TreeView1.Items.EndUpdate;

end;

procedure TForm3.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
begin
TreeView1.Items.BeginUpdate;
Node.DeleteChildren;
NextLevel(Node);
TreeView1.Items.EndUpdate;
end;

procedure TForm3.FormActivate(Sender: TObject); //плавно всплывающее окно для формы 3
const n=127;
var
i:Byte;
begin
AlphaBlend:=True;
for i:=1 to n do
begin
AlphaBlendValue:=i*2;
Repaint;
end;
end;

end.
Соседние файлы в папке kursovaya
  • #
    23.02.20161.71 Кб2Unit2.~dfm
  • #
    23.02.20162.73 Кб2Unit2.~pas
  • #
    23.02.20167.8 Кб2Unit3.dcu
  • #
    23.02.201651 б2Unit3.ddp
  • #
    23.02.2016691 б2Unit3.dfm
  • #
    23.02.20163.51 Кб2Unit3.pas
  • #
    23.02.201651 б2Unit3.~ddp
  • #
    23.02.2016691 б2Unit3.~dfm
  • #
    23.02.20163.4 Кб2Unit3.~pas
  • #
    23.02.201611.47 Кб2Unit4.dcu
  • #
    23.02.201651 б2Unit4.ddp