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

magnum / proga / Unit4

.pas
Скачиваний:
11
Добавлен:
16.04.2013
Размер:
3 Кб
Скачать
unit Unit4;

interface

uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WinSock,
  StdCtrls, ComCtrls, ImgList;

type
  TForm4 = class(TForm)
    ListBox1: TListBox;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    L : TList;
  end;

type
  Buffer = array[0..1023] of Byte;

var
  Form4: TForm4;
  CurrentPath : string;
implementation

uses Unit2;

{$R *.DFM}

procedure TForm4.Button1Click(Sender: TObject);
var Q, BufferSize : DWord;
    R : THandle;
    Buf : ^Buffer;
    P : Pointer;
    NR : ^NETRESOURCE;
begin
ListBox1.Clear;
 if WNetOpenEnumA( RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, nil, R ) = NO_ERROR then
   begin
     BufferSize := 0;
     Q := $FFFFFFFF;
     if WNetEnumResourceA( R, Q, Buf, BufferSize ) <> NO_ERROR then
       begin
         Q:=1;
         New( Buf );
         while WNetEnumResourceA( R, Q, Buf, BufferSize ) = NO_ERROR do
           begin
              begin
                P := Buf;
                NR := P;
                ListBox1.Items.Add( NR^.lpProvider );
                L.Add( Buf );
              end;
              Q := $FFFFFFFF;
              New( Buf );
           end;
         Dispose( Buf );
       end;
     WNetCloseEnum( R );
   end;
 end;

procedure TForm4.FormCreate(Sender: TObject);
begin
  ListBox1.Clear;
  L := TList.Create;
end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
var I : Integer;
begin
 for I := 0 to L.Count - 1 do
   begin
     Dispose( L.Items[ I ] );
   end;
 L.Free;
end;

procedure TForm4.Button2Click(Sender: TObject);
var
 s:string;
begin
 if ListBox1.ItemIndex<>-1 then
  begin
   s:=ListBox1.Items[ListBox1.ItemIndex];
   if s[1]='\' then Delete (s, 1, 2);
   Form2.Edit1.Text:=s;
   ModalResult:=mrOK;
  end;
end;

procedure TForm4.ListBox1DblClick(Sender: TObject);
var Q, BufferSize : DWord;
    R : THandle;
    Buf : ^Buffer;
    P : Pointer;
    NR : ^NETRESOURCE;
    NREsource : NETRESOURCE;
    I : Integer;
    Err : Integer;
    Path : string;
    Sr : TSearchRec;
begin

    NR := L.Items[ ListBox1.ItemIndex ];
    Move (NR^, NResource, SizeOf( NETRESOURCE ));
    ListBox1.Clear;

    Path := NResource.lpRemoteName;

    Err := WNetOpenEnumA( RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @NResource, R );

    for I := 0 to L.Count -1 do
      begin
        Dispose( L.Items[ I ]);
      end;
    L.Clear;

  if Err = NO_ERROR then
    begin
        BufferSize := 1024;
        q:=1;
        New( Buf );
         while WNetEnumResourceA( R, Q, Buf, BufferSize ) = NO_ERROR do
           begin
              begin
                P := Buf;
                NR := P;
                ListBox1.Items.Add( NR^.lpRemoteName );
                L.Add( Buf );
              end;
              New( Buf );
           end;
         Dispose( Buf );
    end;
   WNetCloseEnum( R );
end;

end.
Соседние файлы в папке proga
  • #
    16.04.20133 Кб11Unit3.dcu
  • #
    16.04.20131 Кб12Unit3.dfm
  • #
    16.04.2013437 б11Unit3.pas
  • #
    16.04.20136 Кб11Unit4.dcu
  • #
    16.04.2013906 б11Unit4.dfm
  • #
    16.04.20133 Кб11Unit4.pas
  • #
    16.04.20133 Кб11Unit5.dcu
  • #
    16.04.2013575 б11Unit5.dfm
  • #
    16.04.2013352 б11Unit5.pas
  • #
    16.04.20133 Кб12Unit6.dcu
  • #
    16.04.2013664 б11Unit6.dfm