Вобщем пишу программу, она ищет файлы в конце выводит результат. Изначально при запуске формы нет, она появляется когда все диски просканированы и файлы все найдены. Так вот, поиск делаю в потоке. Но проблема в том что после того как поиск файлов закончен форма, промелькнёт на доли секунду и пропадает, хотя программа в диспетчере остается висеть. После поисков проблемы, оказалось что это все из-за запуска поиска в потоке. Вот код:
Код
procedure FindDrive;
var
DiskList: DWORD;
Drive: Char;
begin
DiskList := GetLogicaldrives;
Drive := 'a';
while (DiskList > 0) do
begin
case GetDriveType(Pchar(Drive + ':\')) of
3: FindFile(Drive + ':\');
end;
Disklist := Disklist shr 1;
Inc(Drive);
end;
CreateWindow;//Процедура создания и отображения формы WINAPI
end;
...
BeginThread(nil, 0, @FindDrive, nil, 0, ThID); //Запускаю отдельно поток.
если делать без потока просто запустить поиск все нормально и форма при окончании поиска появляется и не исчезает. Но без потока нельзя.
тогда преложили сделать из процедуры procedure FindDrive;, функцию function FindDrive(Param: Pointer): Integer;. Но что передавать в переменную Param, я не понимаю.
И еще вопрос какой параметр нужно передавать?
Код
BeginThread(nil, 0, @FindDrive, здесь передаешь нужный указатель для обращению к нему из потока, 0, ThID);
Прошу помощи, заранее благодарю.