home *** CD-ROM | disk | FTP | other *** search
/ The Best of the Best / _.img / w037 / wuzhelp.pas < prev    next >
Pascal/Delphi Source File  |  1992-08-16  |  2KB  |  106 lines

  1. Unit WUZHelp;
  2.  
  3.  
  4. {
  5.   Hilfsobjekt zum Erzeugen eines grafischen Balkens, der den Stand
  6.   des Entpackens eines komprimierten Files darstellt.
  7.  
  8.   Die wichtigste Methode ist hier PAINT. Diese Methode wird automatisch
  9.   auf die Windows Nachricht wm_Paint aufgerufen und stellt den Inhalt des
  10.   Dialogfensters neu dar.
  11. }
  12.  
  13. Interface
  14.  
  15. {$R WUZHELP.RES}
  16.  
  17. Uses
  18.   WObjects,
  19.   WinTypes,
  20.   WinProcs;
  21.  
  22. Type
  23.   PWorkingDlg = ^TWorkingDlg;
  24.   TWorkingDlg = Object(TDlgWindow)
  25.     ActualPercent : Integer;
  26.     Procedure   ClearMeter;
  27.     Procedure   DrawMeter;
  28.     Procedure   IncMeter;
  29.     Procedure   Paint(PaintDC: HDC; VAR PaintInfo: TPaintStruct); Virtual;
  30.     Procedure   SetWorkingFile(p: PChar);
  31.     Procedure   SetPercent(p: PChar);
  32.   End;
  33.  
  34. Const
  35.   MeterXOrg     = 41;
  36.   MeterYOrg     = 110;
  37.  
  38. Var
  39.   PctDone     : Integer;
  40.   OnePercent  : LongInt;
  41.  
  42.  
  43. IMPLEMENTATION
  44.  
  45.  
  46. { --------********** Methoden fⁿr TWorkingDlg **********---------------- }
  47.  
  48.  
  49. Procedure TWorkingDlg.ClearMeter;
  50. Var
  51.   R: TRect;
  52. Begin
  53.   { L÷schen der Balkenanzeige und Zurⁿcksetzen des internen ZΣhlers }
  54.   SetRect(R, MeterXOrg, MeterYOrg, MeterXOrg+200, MeterYOrg+14);
  55.   InvalidateRect(HWindow, @R, True);
  56.   UpdateWindow(HWindow);
  57.   ActualPercent := 0;
  58. End;
  59.  
  60. Procedure TWorkingDlg.DrawMeter;
  61. Var
  62.   DC: HDC;
  63.   R: TRect;
  64.   W: Integer;
  65. Begin
  66.   { Die Balkenanzeige zeichen. Die aktuellen Prozentwerte werden beachtet }
  67.   DC := GetDC(HWindow);
  68.   W := 2;
  69.   SetRect(R, MeterXOrg, MeterYOrg, MeterXOrg+(W*ActualPercent), MeterYOrg+14);
  70.   FillRect(DC, R, GetStockObject(Black_Brush));
  71.   ReleaseDC(HWindow, DC);
  72. End;
  73.  
  74.  
  75. Procedure TWorkingDlg.IncMeter;
  76. Begin
  77.   { Internen ZΣhler erh÷hen und Balkenanzeige erneuern }
  78.   If ActualPercent < 99
  79.   Then
  80.     Inc(ActualPercent);
  81.   DrawMeter;
  82. End;
  83.  
  84.  
  85. Procedure TWorkingDlg.Paint;
  86. Begin
  87.   { Reaktion auf die Windows Botschaft wm_Paint }
  88.   DrawMeter;
  89. End;
  90.  
  91.  
  92. Procedure TWorkingDlg.SetWorkingFile;
  93. Begin
  94.   { Dateinamen der aktuellen Datei ausgeben und Focus auf TWorkingDlg setzen }
  95.   SetActiveWindow(HWindow);
  96.   SetDlgItemText(HWindow, 105, p);
  97. End;
  98.  
  99. Procedure TWorkingDlg.SetPercent;
  100. Begin
  101.   { ZusΣtzliche Anzeige der Prozentangabe (10tel Schritte) }
  102.   SetDlgItemText(HWindow, 106, p);
  103. End;
  104.  
  105.  
  106. End.