home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Macmaailma Vuosikerta 1994 to 1996
/
TK1996_3CD.ISO
/
pc
/
k_portti
/
tk0895
/
ajastlom.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-08-02
|
7KB
|
269 lines
unit Ajastlom;
{ Freeware, programmed by Antti Wiio }
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Spin, ExtCtrls, Mask;
type
TAjastinlomake = class(TForm)
ajastin: TTimer;
edTosiaika: TEdit;
Label1: TLabel;
halyAikaLbl: TLabel;
Shape1: TShape;
halyKloLbl: TLabel;
halyKloMMBtn: TSpinButton;
halyKloSSBtn: TSpinButton;
halyKloTTBtn: TSpinButton;
aikaMMBtn: TSpinButton;
AikaSSBtn: TSpinButton;
aikaTTBtn: TSpinButton;
kaynnistaBtn: TButton;
keskeytaBtn: TButton;
Panel1: TPanel;
suljeBtn: TButton;
aanimerkkiajastin: TTimer;
kuittausBtn: TButton;
Label2: TLabel;
Label3: TLabel;
edAikaHalytykseen: TEdit;
edHalytysKellonaika: TEdit;
procedure ajastinTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure aikaTTBtnDownClick(Sender: TObject);
procedure aikaTTBtnUpClick(Sender: TObject);
procedure aikaMMBtnDownClick(Sender: TObject);
procedure aikaMMBtnUpClick(Sender: TObject);
procedure AikaSSBtnDownClick(Sender: TObject);
procedure AikaSSBtnUpClick(Sender: TObject);
procedure halyKloTTBtnDownClick(Sender: TObject);
procedure halyKloMMBtnDownClick(Sender: TObject);
procedure halyKloTTBtnUpClick(Sender: TObject);
procedure halyKloMMBtnUpClick(Sender: TObject);
procedure halyKloSSBtnDownClick(Sender: TObject);
procedure halyKloSSBtnUpClick(Sender: TObject);
procedure suljeBtnClick(Sender: TObject);
procedure kaynnistaBtnClick(Sender: TObject);
procedure keskeytaBtnClick(Sender: TObject);
procedure kuittausBtnClick(Sender: TObject);
procedure aanimerkkiajastinTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Ajastinlomake: TAjastinlomake;
implementation
{$R *.DFM}
const sound = word(-1);
type
ajanyksikko = ( sekunti, minuutti, tunti );
muutossuunta = ( eteen, taakse );
tilatieto = ( asetus, ajastus, halytys );
var tila: tilatieto;
tosiAika, halytysKellonAika, aikaHalytykseen: TDateTime;
procedure naytaKellonajat; { Asetetaan kellonajat lomakkeella }
begin
with ajastinlomake do begin
edTosiaika.text := timeToStr( tosiaika );
edAikaHalytykseen.text := timeToStr( aikaHalytykseen );
edHalytysKellonaika.text := timeToStr( halytysKellonAika );
end;
end;
procedure muutaAika( Var aika: TdateTime; yksikko: ajanyksikko;
suunta: muutosSuunta; maara:integer );
var etumerkki: integer;
begin
if suunta = eteen then etumerkki := 1 else etumerkki := -1;
case yksikko of
sekunti : aika := aika + strToTime('00.00.01') * maara * etumerkki;
minuutti: aika := aika + strToTime('00.01.00') * maara * etumerkki;
tunti : aika := aika + strToTime('01.00.00') * maara * etumerkki;
end;
end;
procedure paivitaHalytysKellonAika;
var aika: TDatetime;
begin
halytysKellonAika := tosiaika + aikaHalytykseen;
naytaKellonajat;
end;
procedure paivitaAikaHalytykseen;
begin
aikaHalytykseen := halytysKellonaika - tosiaika;
naytaKellonajat;
end;
procedure asetaAikapainikkeet( aukiko: boolean );
{ Avataan tai suljetaan ajanasetuspainikkeet }
begin
with ajastinlomake do
begin
halyKloTTBtn.enabled := aukiko;
halyKloMMBtn.enabled := aukiko;
halyKloSSBtn.enabled := aukiko;
aikaTTBtn.enabled := aukiko;
aikaMMBtn.enabled := aukiko;
aikaSSBtn.enabled := aukiko;
end;
end;
procedure TAjastinlomake.ajastinTimer(Sender: TObject);
begin
tosiAika := now;
if halytysKellonaika < tosiaika
then halytysKellonAika := tosiaika;
paivitaAikaHalytykseen;
if tila = halytys then exit;
if (tila = ajastus) and
(edHalytysKellonAika.text = edTosiAika.text) then
begin
aanimerkkiajastin.enabled := true;
kuittausBtn.enabled := true;
keskeytaBtn.enabled := false;
tila := halytys;
messageBeep( sound );
end;
end;
procedure TAjastinlomake.FormCreate(Sender: TObject);
begin
tosiaika := now;
aikaHalytykseen := strToTime( '00.00.00' );
paivitaHalytysKellonaika;
keskeytaBtn.enabled := false;
kuittausBtn.enabled := false;
end;
procedure TAjastinlomake.aikaTTBtnDownClick(Sender: TObject);
begin
if aikaHalytykseen < strToTime( '01.00.00' ) then exit;
muutaAika( aikahalytykseen, tunti, taakse, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.aikaTTBtnUpClick(Sender: TObject);
begin
muutaAika( aikahalytykseen, tunti, eteen, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.aikaMMBtnDownClick(Sender: TObject);
begin
if aikaHalytykseen < strToTime( '00.01.00' ) then exit;
muutaAika( aikahalytykseen, minuutti, taakse, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.aikaMMBtnUpClick(Sender: TObject);
begin
muutaAika( aikahalytykseen, minuutti, eteen, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.AikaSSBtnDownClick(Sender: TObject);
begin
if aikaHalytykseen < strToTime( '00.00.01' ) then exit;
muutaAika( aikahalytykseen, sekunti, taakse, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.AikaSSBtnUpClick(Sender: TObject);
begin
muutaAika( aikahalytykseen, sekunti, eteen, 1 );
paivitaHalytysKellonaika;
end;
procedure TAjastinlomake.halyKloTTBtnDownClick(Sender: TObject);
begin
if halytysKellonaika < tosiaika + strToTime( '01.00.00' ) then exit;
muutaAika( halytysKellonaika, tunti, taakse, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.halyKloTTBtnUpClick(Sender: TObject);
begin
muutaAika( halytysKellonaika, tunti, eteen, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.halyKloMMBtnDownClick(Sender: TObject);
begin
if halytysKellonaika < tosiaika + strToTime( '00.01.00' ) then exit;
muutaAika( halytysKellonaika, minuutti, taakse, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.halyKloMMBtnUpClick(Sender: TObject);
begin
muutaAika( halytysKellonaika, minuutti, eteen, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.halyKloSSBtnDownClick(Sender: TObject);
begin
if halytysKellonaika < tosiaika + strToTime( '00.00.01' ) then exit;
muutaAika( halytysKellonaika,sekunti, taakse, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.halyKloSSBtnUpClick(Sender: TObject);
begin
muutaAika( halytysKellonaika, sekunti, eteen, 1 );
paivitaAikaHalytykseen;
end;
procedure TAjastinlomake.suljeBtnClick(Sender: TObject);
begin
close;
end;
procedure TAjastinlomake.kaynnistaBtnClick(Sender: TObject);
begin
tila := ajastus;
kaynnistaBtn.enabled := false;
keskeytaBtn. enabled := true;
end;
procedure TAjastinlomake.keskeytaBtnClick(Sender: TObject);
begin
tila := asetus;
kaynnistaBtn.enabled := true;
keskeytaBtn. enabled := false;
end;
procedure TAjastinlomake.kuittausBtnClick(Sender: TObject);
begin
tila := asetus;
kaynnistaBtn.enabled := true;
keskeytaBtn. enabled := false;
kuittausBtn. enabled := false;
aanimerkkiAjastin.enabled := false;
end;
procedure TAjastinlomake.aanimerkkiajastinTimer(Sender: TObject);
begin
messageBeep( sound );
end;
end.