![]() |
|
#1
|
|||
|
|||
![]() Общая проблема:
- можно ли в Delphi из консольного приложения вызывать события каких-либо компонентов? Если можно, то как? Локальная проблема: - как запустить событие OnTimer из TTimer из консоли, какие параметры нужно передовать? Далее следует пример запуска таймера в программе имеющей форму, а как сделать тоже самое, но из консоли??? // *** НАЧАЛО *** unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure fun(); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Interval:=5000; fun(); end; procedure TForm1.fun(); begin ShowMessage('Ok'); end; end. // *** КОНЕЦ *** |
#2
|
||||
|
||||
![]() Общая идея такова:
Создаешь объект Таймер, пишешь процедуру для обработки события OnTimer, сзязываешь ее с событием таймера. Запускаешь таймер. Это если использовать объект. Но лучше работать с таймером с помошью API функций SetTimer и KillTimer |
#3
|
|||
|
|||
![]() Цитата:
Если можно покажи это все на примерах, или хотя бы первое! Спасибо! |
#4
|
||||
|
||||
![]() Лучше второе
![]() Код:
program Project1; {$APPTYPE CONSOLE} uses windows,messages,sysutils,dialogs; var temer,count:integer; procedure getting(hnd:HWND;uMsg:UINT;tem:UINT;tickt:DWORD); stdcall; begin inc(count); if count>10 then killtimer(0,temer); inputbox('Таймер сработал '+IntToStr(count)+' раз','',''); end; begin count:=0; temer:=settimer(0,0,200,@getting); inputbox('Это чтобы прога не завершилась ;)','',''); end. |