Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.09.2011, 15:35
ssergey_96 ssergey_96 вне форума
Прохожий
 
Регистрация: 13.09.2011
Сообщения: 10
Репутация: 10
По умолчанию Как заставить работать поиск файла по маске

Как заставить работать поиск файла по маске
Я пишу мини поисковик по расширениям и хочу перенести функцию поиска из формы и проекта в длл
Проект компилируеться но после того как я выбираю папку и нажимаю кнопку выскакивает ошибка "Cannot to assign to TForm1 to a TlistboxStrings"
вот код длл
Код:
library Project1;

uses
  SysUtils,
  Classes;

{$R *.res}

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

exports
   FindFile;

begin
end.
 

А Вот код самого приложения
Код:
var
  Form1: TForm1;

implementation

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

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
List.Items:=(FindFile(Shell.Path,Mask.Text,List.Items));
end;

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

Скорее всего вам нужно:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  List.Items.AddStrings(FindFile(Shell.Path, Mask.Text, List.Items));
end;
Ну примерно так, на вскидку набросал.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 13.09.2011, 22:30
ssergey_96 ssergey_96 вне форума
Прохожий
 
Регистрация: 13.09.2011
Сообщения: 10
Репутация: 10
По умолчанию

Нет не вышло теперь пишет Access violation at address 00403a3c
Ответить с цитированием
  #4  
Старый 13.09.2011, 22:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Кинь проект, а то лень писать.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 13.09.2011, 22:44
ssergey_96 ssergey_96 вне форума
Прохожий
 
Регистрация: 13.09.2011
Сообщения: 10
Репутация: 10
По умолчанию

Лови там исх проекта и длл
P.S С использыванием длл писать только начал
Вложения
Тип файла: rar Skan.rar (137.8 Кбайт, 8 просмотров)
Ответить с цитированием
  #6  
Старый 13.09.2011, 22:50
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Антивирус не даёт скачать архив, убери exe и dll из архива.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025