Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
2-1130739601
denmin
2005-10-31 09:20
2005.11.20
Не печатается Quickreport. Горююю!!!!


4-1127380492
Xobbit
2005-09-22 13:14
2005.11.20
Импорт из DLL


1-1130351163
x.pro
2005-10-26 22:26
2005.11.20
Вопрос по численным методам


14-1130184033
Piter
2005-10-25 00:00
2005.11.20
McAfee VirusScan


4-1127021685
Igi
2005-09-18 09:34
2005.11.20
Отловить создание главного окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский