home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
w037
/
wuzhelp.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-08-16
|
2KB
|
106 lines
Unit WUZHelp;
{
Hilfsobjekt zum Erzeugen eines grafischen Balkens, der den Stand
des Entpackens eines komprimierten Files darstellt.
Die wichtigste Methode ist hier PAINT. Diese Methode wird automatisch
auf die Windows Nachricht wm_Paint aufgerufen und stellt den Inhalt des
Dialogfensters neu dar.
}
Interface
{$R WUZHELP.RES}
Uses
WObjects,
WinTypes,
WinProcs;
Type
PWorkingDlg = ^TWorkingDlg;
TWorkingDlg = Object(TDlgWindow)
ActualPercent : Integer;
Procedure ClearMeter;
Procedure DrawMeter;
Procedure IncMeter;
Procedure Paint(PaintDC: HDC; VAR PaintInfo: TPaintStruct); Virtual;
Procedure SetWorkingFile(p: PChar);
Procedure SetPercent(p: PChar);
End;
Const
MeterXOrg = 41;
MeterYOrg = 110;
Var
PctDone : Integer;
OnePercent : LongInt;
IMPLEMENTATION
{ --------********** Methoden fⁿr TWorkingDlg **********---------------- }
Procedure TWorkingDlg.ClearMeter;
Var
R: TRect;
Begin
{ L÷schen der Balkenanzeige und Zurⁿcksetzen des internen ZΣhlers }
SetRect(R, MeterXOrg, MeterYOrg, MeterXOrg+200, MeterYOrg+14);
InvalidateRect(HWindow, @R, True);
UpdateWindow(HWindow);
ActualPercent := 0;
End;
Procedure TWorkingDlg.DrawMeter;
Var
DC: HDC;
R: TRect;
W: Integer;
Begin
{ Die Balkenanzeige zeichen. Die aktuellen Prozentwerte werden beachtet }
DC := GetDC(HWindow);
W := 2;
SetRect(R, MeterXOrg, MeterYOrg, MeterXOrg+(W*ActualPercent), MeterYOrg+14);
FillRect(DC, R, GetStockObject(Black_Brush));
ReleaseDC(HWindow, DC);
End;
Procedure TWorkingDlg.IncMeter;
Begin
{ Internen ZΣhler erh÷hen und Balkenanzeige erneuern }
If ActualPercent < 99
Then
Inc(ActualPercent);
DrawMeter;
End;
Procedure TWorkingDlg.Paint;
Begin
{ Reaktion auf die Windows Botschaft wm_Paint }
DrawMeter;
End;
Procedure TWorkingDlg.SetWorkingFile;
Begin
{ Dateinamen der aktuellen Datei ausgeben und Focus auf TWorkingDlg setzen }
SetActiveWindow(HWindow);
SetDlgItemText(HWindow, 105, p);
End;
Procedure TWorkingDlg.SetPercent;
Begin
{ ZusΣtzliche Anzeige der Prozentangabe (10tel Schritte) }
SetDlgItemText(HWindow, 106, p);
End;
End.