Autor Téma: Timer v konzolove aplikaci  (Přečteno 220 krát)

Offline thcom

  • Nováček
  • *
  • Příspěvků: 30
  • Karma: 0
    • Verze Delphi: 10.3.1 Rio Comunnity
Timer v konzolove aplikaci
« kdy: 11-11-2020, 11:01:33 »
zdravim, snazm se tu zprovoznit timer v konzolove aplikaci
delphi 10.4.1
nasel jsem exampl

program TimerTest;

Kód: Delphi [Vybrat]
  1. {$APPTYPE CONSOLE}
  2.  
  3. uses
  4.      SysUtils,
  5.        Vcl.ExtCtrls;
  6.  
  7.  
  8. type
  9.      TEventHandlers = class
  10.        procedure OnTimerTick(Sender : TObject);
  11.      end;
  12.  
  13. var
  14.      Timer : TTimer;
  15.      EventHandlers : TEventHandlers;
  16.  
  17.  
  18. procedure TEventHandlers.OnTimerTick(Sender : TObject);
  19. begin
  20.      writeln('Hello from TimerTick event');
  21. end;
  22.  
  23.  
  24. begin
  25.  
  26.   Readln;
  27.  
  28. end.
  29.  

ncmene timer netimeruje, netusite, co je spatne prosim ?

dekuji moc !

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3101
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Timer v konzolove aplikaci
« Odpověď #1 kdy: 11-11-2020, 12:37:46 »
ncmene timer netimeruje, netusite, co je spatne prosim ?
Vsechno.

Ciste teoreticky je TTimer postaven na zprave WM_TIMER tj. predpoklada funkcni pumpu zprav, ktera v console aplikaci neexistuje. A pokud jsi nasel example, tak jsi z nej nezkopiroval ani 1/10, protoze ten jiste obsahoval vlastni implementaci te pumpy zprav :-(

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2766
  • Karma: 105
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Timer v konzolove aplikaci
« Odpověď #2 kdy: 18-11-2020, 09:33:32 »
Kdysi jsem ze zajímavosti dělal něco podobného https://delphi.cz/post/Pouziti-TThreadSynchronize-u-ne-GUI-aplikaci.aspx, ale stejně je tvůj příklad úplně špatně jak píše PF.

Kromě toho co píše PF ty ten timer ani nevytváříš.
Embarcadero MVP - Czech republic