Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

передача значений параметров потоку   Найти похожие ветки 

 
Tori ©   (2005-10-23 17:48) [0]

Помогите пожалуйста разрешить следующую проблему:
есть функция в .dll файле:
function MyFunction(const sPash:string):string; export;
begin
 Application.Initialize;
 Application.CreateForm(TDataModule2, DataModule2);
 Application.CreateForm(TForm2, Form2);
 Application.Run;
 Form2.Visible:=True; // для события TForm2.OnShow прописан тот же обработчик что и для TForm2.Button1Click
 Result:=sPash;
end;
По идее после Form2.Visible:=True; срабатывает
procedure TForm2.Button1Click(Sender: TObject);
begin
potok1 := TMyTread.Create(True);
potok1.FreeOnTerminate := True;
potok1.OnTerminate := Form2.OnDestroy;
potok1.Priority := tpIdle ;
potok1.Resume;
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
Application.Terminate;
end;

Необходимо в функцию MyFunction в качестве параметра передавать путь+имя к .ini файлу.
Это значение используется в процедуре
procedure TMyTread.Execute; и в функции которая вызывается во время выполнения procedure TMyTread.Execute;
Т.е.
type
 TMyTread = class(TThread)
 protected
   procedure Execute; override;
 end;

procedure TMyTread.Execute;
var
i: Integer;
go_exit : Boolean;
zz1, zz3 : _STARTUPINFOA;
zz2, zz4 : _PROCESS_INFORMATION;

begin
Application.Minimize;
ReadIni("S_ASCHET", "<путь+имя .ini файла>"); // это функция в которую необходимо передать параметр из MyFunction;
.........................................................................
CreateProcess(PChar(sc.BeforeRev("\", "<путь+имя .ini файла>") + "\FOX\CRE_IND1.EXE"),
          nil, nil, nil,
          False,
          CREATE_DEFAULT_ERROR_MODE, nil,
          PChar(sc.BeforeRev("\", "<путь+имя .ini файла>")), zz3, zz4);
..........................................................
end;

Так вот каким образом из MyFunction(<путь+имя .ini файла>) передать значение этого параметра в procedure TMyTread.Execute; а оттуда уже в function ReadIni(ASection, sPash:string):string;?
Помогите пожалуйста!!!


 
Bes ©   (2005-10-23 20:44) [1]

уууу.... а ты перед тем как браться за потоки, книжу по ООП почитай....
Раздел - свойства объектов.

а то блин накопи-пайстил сорц и терь не знаешь что с ним делать...

а надо добавить в раздел pulibc  класса TFrom2 и TMyThread
св-во path:string и через него передавай...а как почитай. инет - друг твой.


 
Eraser ©   (2005-10-23 22:29) [2]


> Tori ©   (23.10.05 17:48)

Переопредели конструктор потока, которому и передавай имя файла.


 
Digitman ©   (2005-10-24 08:47) [3]


> Tori ©   (23.10.05 17:48)  


кроме многих прочих несуразностей в твоем алгоритме непонятно самое главное - зачем вообще здесь нужен thread, при том что обработка ini-файла и так уже выполняется параллельно с вызывающим приложением, в отдельном создаваемом тобой процессе ?


 
Leonid Troyanovsky ©   (2005-10-24 08:47) [4]


> Tori ©   (23.10.05 17:48)  
> Помогите пожалуйста разрешить следующую проблему:
> есть функция в .dll файле:


Оную функцию (вместе с длл) - в печь.

--
Regards, LVT.


 
Tori ©   (2005-10-26 18:50) [5]

Спасибо Bes! Спасибо Eraser! Книжку почитала. Сделала так как посоветовали - все получилось!



Страницы: 1 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
14-1130226864
stud
2005-10-25 11:54
2005.11.20
опять вопрос про оболочки


14-1130407903
syte_ser78
2005-10-27 14:11
2005.11.20
Введение в системы баз данных. К.Дж.Дейт


2-1130738711
kyn66
2005-10-31 09:05
2005.11.20
Проверка новой версии программы.


3-1128886287
ZMaximI
2005-10-09 23:31
2005.11.20
Генераторы


14-1130240015
Некто
2005-10-25 15:33
2005.11.20
Региональные словечки =)