home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Best of German Only 1
/
romside_best_of_german_only_1.iso
/
wissen
/
dos
/
wgraph
/
entpack.exe
/
WGBSP!.EXE
/
GCLOCK.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-12-12
|
2KB
|
102 lines
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S-,V-}
UNIT GClock;
INTERFACE
USES GDecl,
GViews,
GDlg,
GDrivers,
Dos,
Graph;
type PDigitalUhr=^TDigitalUhr;
TDigitalUhr=object(TWindow)
procedure SetPalette; virtual;
procedure InitBackground; virtual;
procedure HandleEvent; virtual;
end;
PUhrBgrd=^TUhrBgrd;
TUhrBgrd=object(TBackground)
Stunde : word;
Minute : word;
Sekunde : word;
procedure Draw;virtual;
end;
IMPLEMENTATION
{Implementation TDigitalUhr}
procedure TDigitalUhr.SetPalette;
begin
Palette:=Pal[palRed];
end;
procedure TDigitalUhr.InitBackground;
var R:TRect;
begin
R:=Frame^.Area;
Bgrd:=new(PUhrBgrd, Init(R));
List^.InsertItem(Bgrd);
end;
procedure TDigitalUhr.HandleEvent;
var Std,Min,Sek,HSek,
StdOld,MinOld,SekOld : word;
LfdPtr:PGroup;
procedure WriteTime(Nr,x,y:integer;Zeit1,Zeit2:word);
var zz:string[2];
begin
Mouse.HideMouse;
str(Zeit1:2,zz);
SetColor(Blue);
OutTextXY(x,y,zz);
str(Zeit2:2,zz);
SetColor(LightCyan);
OutTextXY(x,y,zz);
if Nr<3 then OutTextXY(x+38,y,':');
Mouse.ShowMouse;
end;
begin
TWindow.HandleEvent;
SetTextStyle(TriplexFont,HorizDir,4);
GetTime(Std,Min,Sek,HSek);
LfdPtr:=List^.GetItems(3);
with PUhrBgrd(LfdPtr)^ do
begin
StdOld:=Stunde;
MinOld:=Minute;
SekOld:=Sekunde;
end;
if StdOld<>Std then WriteTime(1,Origin.x+30,Origin.y+40,StdOld,Std);
if MinOld<>Min then WriteTime(2,Origin.x+80,Origin.y+40,MinOld,Min);
if SekOld<>Sek then WriteTime(3,Origin.x+130,Origin.y+40,SekOld,Sek);
with PUhrBgrd(LfdPtr)^ do
begin
Stunde:=Std;
Minute:=Min;
Sekunde:=Sek;
end;
SetTextStyle(DefaultFont,HorizDir,0);
end;
{Implementation TUhrBgrd}
procedure TUhrBgrd.Draw;
begin
Stunde:=0; Minute:=0; Sekunde:=0;
with Border do
begin
SetFillStyle(SolidFill,Blue);
Bar(A.x,A.y,B.x,B.y);
end;
end;
END.