Показать сообщение отдельно
  #8  
Старый 13.09.2011, 23:13
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Лови каку.
Код:
unit Unit15;

interface

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

type
  TForm1 = class(TForm)
    List: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

function FindFile(Folder, Mask : String; var List : TStringList) : Boolean; stdcall; external 'Find.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  s : TStringList;
begin
  s := TStringList.Create;
  try
    if FindFile('d:\borland\work\games\', '*.*', s) then
      List.Items.AddStrings(s);
  finally
    s.Free;
  end;
end;

end.

//------------------------------------------

library find;

uses
  Classes, SysUtils;

function FindFile(Folder, Mask : String; var List : TStringList) : Boolean; stdcall;
var
  SR : TSearchRec;
  St : String;
begin
  Result := False;

  St := IncludeTrailingPathDelimiter(Folder);
  if FindFirst(St + Mask, faAnyFile, SR) = 0 then
  try
    repeat
      if ((SR.Attr and faDirectory) = 0) and                       // Файл, а не папка?
         SameFileName(ExtractFileExt(SR.Name), '.exe') then        // Расширение - exe?
        List.Add(St + SR.Name);                         // Если да - добавляем
    until FindNext(SR) <> 0;
  finally
    Result := True;
    FindClose(SR);
  end;
end;

exports
   FindFile;

end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием