![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#3
|
||||
|
||||
![]() 2-3. Смотри здесь раздел DOS и Консоль
1. - TTimer можно создать программно. НО чтобы он срабатывал, надо перевести приложение в режим обработки сообщений и строить его практически по принципу работы с формами ( только экран у тебя будет черный и все делать в ручную ). Код:
program console_test; {$APPTYPE CONSOLE} uses SysUtils, Windows, Forms, ExtCtrls; var myTimer: TTimer; count: Integer = 0; type TTimerImpl = class class procedure DoOnTimer(Sender: TObject); end; { TTimerImpl } class procedure TTimerImpl.DoOnTimer(Sender: TObject); begin writeln('Timer is On'); Inc(count); if count > 10 then Application.Terminate; end; begin { TODO -oUser -cConsole Main : Insert code here } myTimer := TTimer.Create(Application); // try myTimer.Interval := 500; myTimer.OnTimer := TTimerImpl.DoOnTimer; myTimer.Enabled := True; with Application do repeat try HandleMessage; except HandleException(Application); end; until Terminated; { finally myTimer.Free; end; // } end. Код:
program console2_test; {$APPTYPE CONSOLE} uses SysUtils, Classes; type TMyThread = class(TThread) procedure Execute; override; end; { TMyThread } procedure TMyThread.Execute; var count: Integer; begin count := 0; for count := 0 to 10 do begin if Terminated then break; sleep(500); writeln('MyThread is On'); end; halt; end; begin { TODO -oUser -cConsole Main : Insert code here } TMyThread.Create(false); sleep(10000); end. |