home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
OTHERUTI
/
TPASCAL3.ZIP
/
TVDEMOS.ZIP
/
GADGETS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-06-11
|
3KB
|
127 lines
{************************************************}
{ }
{ Turbo Pascal 6.0 }
{ Turbo Vision Demo }
{ Copyright (c) 1990 by Borland International }
{ }
{************************************************}
unit Gadgets;
{$F+,O+,S-,D-}
{ Useful gadgets: clock and heap available viewer }
interface
uses Dos, Objects, Views, App;
type
PHeapView = ^THeapView;
THeapView = object(TView)
OldMem : LongInt;
constructor Init(var Bounds: TRect);
procedure Draw; virtual;
procedure Update;
end;
PClockView = ^TClockView;
TClockView = object(TView)
Refresh: Byte;
LastTime: DateTime;
TimeStr: string[10];
constructor Init(var Bounds: TRect);
procedure Draw; virtual;
function FormatTimeStr(H, M, S: Word): String; virtual;
procedure Update; virtual;
end;
implementation
uses Drivers;
{------ Heap Window object ----------}
constructor THeapView.Init(var Bounds: TRect);
begin
TView.Init(Bounds);
OldMem := 0;
end;
procedure THeapView.Draw;
var
S: String;
B: TDrawBuffer;
C: Byte;
begin
OldMem := MemAvail;
Str(OldMem:Size.X, S);
C := GetColor(2);
MoveChar(B, ' ', C, Size.X);
MoveStr(B, S, C);
WriteLine(0, 0, Size.X, 1, B);
end;
procedure THeapView.Update;
begin
if (OldMem <> MemAvail) then DrawView;
end;
{-------- ClockView Object --------}
function LeadingZero(w: Word): String;
var s: String;
begin
Str(w:0, s);
LeadingZero := Copy('00', 1, 2 - Length(s)) + s;
end;
constructor TClockView.Init(var Bounds: TRect);
begin
TView.Init(Bounds);
FillChar(LastTime, SizeOf(LastTime), #$FF);
TimeStr := '';
Refresh := 1;
end;
procedure TClockView.Draw;
var
B: TDrawBuffer;
C: Byte;
begin
C := GetColor(2);
MoveChar(B, ' ', C, Size.X);
MoveStr(B, TimeStr, C);
WriteLine(0, 0, Size.X, 1, B);
end;
procedure TClockView.Update;
var
h,m,s,hund: word;
begin
GetTime(h,m,s,hund);
if Abs(s - LastTime.sec) >= Refresh then
begin
with LastTime do
begin
Hour := h;
Min := m;
Sec := s;
end;
TimeStr := FormatTimeStr(h, m, s);
DrawView;
end;
end;
function TClockView.FormatTimeStr(H, M, S: Word): String;
begin
FormatTimeStr := LeadingZero(h)+ ':'+ LeadingZero(m) +
':' + LeadingZero(s);
end;
end.