![]() |
|
|
#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. |