Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать OnTimer в RunTime в DLL? [D7, WinXP]


tytus ©   (2007-03-15 11:46:00) 

var
Timer:TTimer;
OnTimer:TNotifyEvent;

function.....
Timer:=TTimer.Create(????);
Timer.Enambled:=false;
Timer.Interval:=30000;
Timer1.Enabled:=true;


Сергей М.   (2007-03-15 15:59:00) [1]


> tytus ©   (15.03.07 15:58) [14]


> Напишу cdecl и все.


Валяй.
далеко пойдешь)


tytus   (2007-03-15 15:58:00) [2]

>Сергей М. ©   (15.03.07 15:48) [13]
да не нужен мне Application в dll. Напишу cdeclи все.
Всем спасибо!
See ya! -)


Сергей М.   (2007-03-15 15:48:00) [3]


> tytus ©   (15.03.07 15:40) [12]


И что ?

И у этой "проги на С" есть и дельфийский объект Application и хэндл основного окна ?

Репу-то почеши малясь) ..


tytus   (2007-03-15 15:40:00) [4]

>Сергей М. ©   (15.03.07 15:20) [10]
stdcall упомянут осознанно или "щоб було" ?
ни, цэ нэ так, моя dll выклыкатыметься прогою на С. -)))


Leonid Troyanovsky   (2007-03-15 15:25:00) [5]


> tytus ©   (15.03.07 15:09) [9]

> Вы имеете ввиду передавать в dll Application.Handle?

Я имел ввиду, что у хоста может и не быть Application.

> Или передача хендла хост-приложения оправдана только для
> форм в dll?

Там она не оправдана.
Или, лучше сказать, что не оправданы формы в dll.

--
Regards, LVT.


Сергей М.   (2007-03-15 15:20:00) [6]


> tytus ©   (15.03.07 15:09) [9]


stdcall упомянут осознанно или "щоб було" ?


tytus   (2007-03-15 15:09:00) [7]

>Leonid Troyanovsky ©   (15.03.07 14:14) [8]
Вы имеете ввиду передавать в dll Application.Handle?
К примеру так:
SomeFunction(AHandle:THndle;....):integer;stdcall;

А в самой dll писать:
SomeFunction(.....):integer;
begin
Application.Handle:=AHandle;
SomeClass:=TSomeClass.Create(Application);
...
end;
Или передача хендла хост-приложения оправдана только для форм в dll?

На счет SetTimer - спасибо. Юзал, думаю проблем не будет.


Leonid Troyanovsky   (2007-03-15 14:14:00) [8]


> tytus ©   (15.03.07 12:26) [6]

> может так

Не нужно использовать TTimer в dll.
Есть такая функция SetTimer, ее и пользуй with TimerProc.
Ну, а для начала, библиотека должна найти какое-нибудь
окно хост-приложения (принадлежащее вызывающему потоку).

--
Regards, LVT.


Сергей М.   (2007-03-15 12:42:00) [9]

Класс любой нужен.
А у класса этого метод с прототипом TNotifyEvent


tytus   (2007-03-15 12:26:00) [10]

может так
var
 procedure OnTimer(Sender:TObject) of object;
begin
...
Timer.OnTimer:=OnTimer;


tytus   (2007-03-15 12:17:00) [11]

var
 Timer:TTimer;
 OnTimer:TNotifyEvent;

begin
Timer:=TTimer.Create(nil);
Timer.OnTimer:=OnTimer;
Timer.Enabled:=true;
end;

как описать процедуру
procedure Timer.OnTimer(Sender:TObject);


Сергей М.   (2007-03-15 12:13:00) [12]


> tytus ©   (15.03.07 12:08) [3]


Ну и причем тут DLL ?

Если у тебя, предположим, не DLL, а приложение без форм, то в этом случае ты знаешь как это сделать ?


tytus   (2007-03-15 12:08:00) [13]

>Сергей М. ©   (15.03.07 11:58) [1]
непонятно как подрутить событие срабатывания таймера  к самому таймеру.


Рамиль   (2007-03-15 12:07:00) [14]

nil


Сергей М.   (2007-03-15 11:58:00) [15]

А что не понятно ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо