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

Вниз

Взаимодействие объектов   Найти похожие ветки 

 
Николай В.   (2003-01-31 14:06) [0]

Уважаемые Мастера!
Подскажите, пожалуйста как реализовать следующее.
Есть MainForm из нее вызывается некая функция из подключенной моей DLL.
Как на MainForms показать прогресс выполнения этой функции (как передать значение из DLL в MainForms.ProgressBar)?
Зарание благодарен.


 
malkolinge ©   (2003-01-31 14:33) [1]

Говорят есть функции обратного вызова !


 
Николай В.   (2003-01-31 15:50) [2]

Как можно обратиться к компоненту через указатель?
Или как иначе?


 
malkolinge ©   (2003-01-31 16:06) [3]


> Как можно обратиться к компоненту через указатель?

Запрсто :) просто если передавать указатель в длл будет много беды :
надо либо БПЛ использовать, либо ШареМем включать.....короче сам не знаю толком :)


 
Набережных С.   (2003-01-31 18:23) [4]

Описываешь прототип функции обратного вызова:

TProgressCallback = function(Percent: DWORD; Value: Pointer): bool; stdcall;

Из DLL экспортируешь процедуру:

procedure SomeProcedure(Param1, Param2: DWORD; CallbackPrc, Value: Pointer); stdcall;
var
Percent: DWORD;
begin
Percent:=0;
//Что-то делаешь
Percent:=//Вычисляешь процент
if not TProgressCallback(CallbackPrc)(Percent,Value) then Exit;

//Что-то делаешь
Percent:=//Вычисляешь процент
if not TProgressCallback(CallbackPrc)(Percent,Value) then Exit;

// и т.д.
end;

В приложении пишешь функцию:

function MyCallback(Percent: DWORD; Value: TProgressBar): bool; stdcall;
begin
Value.Position:=Percent;
Application.ProcessMessages;
Result:=not Application.Terminated;
end;

И вызываешь процедуру из DLL:

begin
ProgressBar.Position:=0;
SomeProcedure(Mydata1,Mydata2,@MyCallback,ProgressBar);
end;


 
Anatoly Podgoretsky ©   (2003-01-31 18:36) [5]

Вся виндоуст построена на событиях, почему бы и тебе так не поступить?



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

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

Наверх




Память: 0.47 MB
Время: 0.034 c
4-29159
HappyNewYearToAll
2002-12-25 18:51
2003.02.10
Pipe - труба !


3-28659
AALLEEXX
2003-01-22 10:04
2003.02.10
asString and SQL


4-29163
vidiv
2002-12-27 11:50
2003.02.10
ПРОГРАМЕРЫ, как в TShellListView сделать фоновый рисунок?


1-28884
REA
2003-01-30 17:18
2003.02.10
Видимость функций


3-28615
Андрусь
2003-01-22 13:18
2003.02.10
Как передать в базу число > предела точности Integer