Programowanie w języku Delphi » FAQ

Timer od podstaw

  • 2008-04-10 00:06
  • 13 komentarzy
  • 3701 odsłon
  • Oceń ten tekst jako pierwszy
<center>Objaśnienie stosowania timer'a by maciusiak</center>    


Timer jest prosty w obsłudze, wywołuje uruchomienie dowolnej funkcji po upływie czasu wybranego przez ciebie.
Aby wkleić Timer'a na formę należy przejść do zakładki:
SYSTEM -> TIMER   i wkleić go na formę...
Tam gdzie Timer1  tam wprowadź jego poprawna nazwę (tak jak go nazwałeś)
Timer1.Interval:=1000; - Czas aktywacji Timera po 1000ms (w milisekundach i można zmienić czas).
Timer1.Enabled:=True;   - Aktywacja Timer'a.
Timer1.Enabled:=False;  - Blokada Timer'a



unit MainFrm;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls;
 
type
  TMainForm = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  MainForm: TMainForm;
 
implementation
 
uses pomoc;
 
{$R *.dfm}
 
procedure TMainForm.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
end;
 
procedure TMainForm.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
MessageBox(0, 'Timer zablokowany!', 'Timer', MB_OK);
end;
 
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
MessageBox(0, 'Timer aktywny w pracy d(*_*)b', 'Timer', MB_OK);
end;
 
procedure TMainForm.Button3Click(Sender: TObject);
begin
Timer1.Interval:=1000;
end;
 
procedure TMainForm.Button4Click(Sender: TObject);
begin
Timer1.Interval:=3000;
end;
 
procedure TMainForm.Button5Click(Sender: TObject);
begin
Form1.Show;
end;
 
end.


Timer.zip (21,63 KB)

13 komentarzy

Brak avatara
Nieznany 2013-12-09 09:00

fajne to bo wykorzystujemy troche do gry bo jest wykrzacz straszny, normalnie masakra :P

Piotrekdp 2008-04-09 20:19

Moja uwaga jest taka
Buttony jak i inne "części " należy odpowiednio nazywać , samo Button1 Button2 ... nic nie mówi
dobrym zwyczajem jest nazywać komponenty podając Skrót od rodzaju komponentu i jego nazwę np BtnStart BtnStop w obecnej postaci to można arta killnąć

Oleksy_Adam 2008-04-09 13:42

Do autora: Do czasu aż nie nauczysz się ortografii, zasad formatowania kodu, zasad redagowania artów, ogólnego poziomu merytorycznego to odpuść sobie takie pisanie. Nie wiem czy zdajesz sobie sprawę, że pisanie arta pociąga za sobą pewną odpowiedzialność. Dlaczego? Ktoś to przeczyta i będzie się stosował do wskazówek. Potem nauczy kogoś, gdzie ten ktoś znowu nauczy. Jaki morał? Reakcja łańcuchowa - popatrz jak formatujesz kod i zobacz co właśnie zaczynajacy się nauczą - złego formatowania (u Ciebie to wręcz jego brak) do tego niskiego poziomu merytorycznego i nie będą zwracać uwagi na błędy ortograficzne. Ja też czasem je robię ale nie k***a po trzy w każdym zdaniu! Poza tym przemyśl co chcesz napisać w artykule i zrób to ciekawie. Jak piszesz FAQ to przemyśl jaka wskazówka ma się tam znaleźć. Najlepiej aby była troszkę bardziej złożona, bo Twoje kody w 78% generuje kompilator. Póki co to szkoda Twojego czasu na pisanie w takim stylu. Ty się narobisz a nikt nie wykorzysta bo to podstawy. Poza tym FAQ zawiera odpowiedzi na naprawdę nagminne pytania a art wypadałoby aby był dość długi i opisywał zagadnienie wyczerpująco, czyli jak dajesz timer to opisz jak on wygląda z poziomu kodu (czy jest to wątek, przerwanie zegarowe, itp.). Ale przede wszystkim napisz o czymś ciekawym, czego jeszcze nie ma w serwisie.

manfredek 2008-04-08 20:58

Lofix,    nie    proponuj    takiego    stylu    pisania!    Po    co    porównywać    do    true,    czemu    nie    używasz    array    [Boolean]    of String zamiast tych    if'ów,   czemu   nie   negujesz   stanu   aktywacji   Timera?  Raczej  tak  to  powinno  wyglądać  :

var  en:Boolean;
const  btn:array  [Boolean]  of  String=(('Włącz  timer'),  ('Wyłącz  timer'));
lbl:array  [Boolean]  of  String=(('Timer  wyłączony'),  ('Timer  włączony'));
begin
Timer1.Enabled:=not  Timer1.Enabled;
en:=Timer1.Enabled;
Label1.Caption:=lbl[en];
Button1.Caption:=btn[en];  
end;
Zaś    co    do    arta,    dać    go    tam    skąd    go    lukasz1235    wyniósł??

lofix 2008-04-08 19:39

Do  czego  ma  to  służyć?
Jakoś  nie  dopatrzyłem  się,  co  ten  "artykuł"  opisuje
Może  mi  ktoś  to  wytłumaczyć?

Poza tym można zrobić estetyczny jeden guzik do wł/wył timer`a

procedure TMainForm.BtnTimer(Sender: TObject);
begin
If Timer1.Enabled = true then
begin
Timer1.Enabled:=False;
Label1.Caption:= 'Timer wyłączony';
BtnTimer.Caption:= 'Włącz timer';
end else begin
Timer1.Enabled:=True;
Label1.Caption:= 'Timer włączony';
BtnTimer.Caption:= 'Wyłącz timer';
end;
end;

bordeux 2008-04-08 19:01

Maciusiak: zainstaluj sobie wreszcie ff... wreszcie ci bedzie błedy poprawiał!!! artykuł przez u otwarte..  http://so.pwn.pl/lista.php?co=artyku%B3

manfredek 2008-04-07 17:30

Czemu? Bo był tragicznie napisany. I nie do usunięcia, tylko dałem go Do poprawy.

Maciusiak 2008-04-07 17:21

http://4p[...]/Timer_dla_zielonych_by_maciusiak_(nie_kopiowac) nowy link do niego.
I dzięki za to ze ocaliłeś mój artykuł. Pozdro.

Maciusiak 2008-04-07 17:18

To moj artykół :-) thx ludzie za uratowanie. A wiecie czemu go chcieli wywalic?

manfredek 2008-04-07 16:09

No  dobra,  jak  nie  to  nie,  to  usuwaj  templatkę  i  przenoś  gdzie  chcesz.

Możesz sobie zaliczyć uratowanie artykułu, sztuk 1 ;P.

manfredek 2008-04-07 15:50

W   sumie   możesz,   ja   jeszcze   poprawię   błąd   jeden.   A,   ja   ten   szablon   dałem   i   arta   wyniosłem. Chociaż w sumie, może poczekajmy na kogoś wyżej postawionego, niech sam wyniesie do odpowiedniego działu i templatkę usunie?

lukasz1235 2008-04-07 15:19

Poprawiłem, ale nie wiem czy o to chodziło. Można już usunąć szablon "Do poprawy"?