home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 45 / cda45.iso / Share / Progra / ProDelphi76 / PROTMAI2.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-02-26  |  3.7 KB  |  166 lines

  1. unit protmai2;
  2. {$O-}  // Do not remove, Delphi might crash !!!
  3. {$R-}
  4. {$Q-}
  5. {$A+}
  6. interface
  7.  
  8. uses
  9.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  10.   ExtCtrls, StdCtrls, ProCal2;
  11.  
  12. type
  13.   TForm1 = class(TForm)
  14.     Button1: TButton;
  15.     Label1: TLabel;
  16.     Label4: TLabel;
  17.     Label5: TLabel;
  18.     Label6: TLabel;
  19.     Label7: TLabel;
  20.     f0: TLabel;
  21.     f0d: TLabel;
  22.     f1000: TLabel;
  23.     f10000: TLabel;
  24.     f1000d: TLabel;
  25.     f10000d: TLabel;
  26.     Bevel1: TBevel;
  27.     Label20: TLabel;
  28.     prom: TLabel;
  29.     promd: TLabel;
  30.     Label26: TLabel;
  31.     Bevel2: TBevel;
  32.     Bevel4: TBevel;
  33.     Bevel5: TBevel;
  34.     Bevel6: TBevel;
  35.     Bevel8: TBevel;
  36.     Bevel9: TBevel;
  37.     Bevel10: TBevel;
  38.     Bevel11: TBevel;
  39.     Label8: TLabel;
  40.     tmlf: TLabel;
  41.     tmlfd: TLabel;
  42.     Label9: TLabel;
  43.     Label12: TLabel;
  44.     Label13: TLabel;
  45.     Label15: TLabel;
  46.     Label17: TLabel;
  47.     ResLabel: TLabel;
  48.     Label25: TLabel;
  49.     Label2: TLabel;
  50.     Label18: TLabel;
  51.     Label19: TLabel;
  52.     Label21: TLabel;
  53.     Bevel3: TBevel;
  54.     Label3: TLabel;
  55.     prouse: TLabel;
  56.     proused: TLabel;
  57.     Label14: TLabel;
  58.     procedure StartItAll(Sender: TObject);
  59.   private
  60.     { Private-Deklarationen }
  61.     FUNCTION  MBox : TMyLargeInteger;
  62.     PROCEDURE UserMessage ( VAR Message ); Message WM_USER+5;
  63.   private
  64.     res     : Array[0..5] OF TMyLargeInteger;
  65.     resstr  : Array[0..5] OF String;
  66.     resstr2 : Array[0..5] OF String;
  67.  
  68.   public
  69.     { Public-Deklarationen }
  70.   end;
  71.  
  72. var
  73.   Form1: TForm1;
  74.  
  75. implementation
  76.  
  77. {$R *.DFM}
  78.  
  79. FUNCTION TForm1.MBox : TMyLargeInteger;
  80. BEGIN
  81.   PostMessage(application.mainform.handle, WM_USER+5, 1, 2);
  82.   MessageBox(0, 'Messagebox demo, waiting for click should not be measured',
  83.                 'Protest', MB_OK);
  84. END;
  85.  
  86. PROCEDURE TForm1.UserMessage ( VAR Message );
  87. VAR
  88.   StartTick : DWORD;
  89. BEGIN
  90.   StartTick := GetTickCount;
  91.   WHILE ABS(GetTickCount - StartTick) < 1000 DO
  92.   BEGIN
  93.   END;
  94. END;
  95.  
  96. PROCEDURE ConvertTime ( VAR wertstr : String; wert : Double; AsCycles : Boolean );
  97. VAR
  98.   einheit : String;
  99. BEGIN
  100.   IF AsCycles = TRUE THEN BEGIN
  101.     Str(wert:0:0, einheit);
  102.     wertstr := '';
  103.     WHILE Length(einheit) > 3 DO BEGIN
  104.       wertstr := ',' + Copy(einheit, Length(einheit)-2, 3) + wertstr;
  105.       einheit := Copy(einheit, 1, Length(einheit)-3);
  106.     END;
  107.     wertstr := einheit + wertstr;
  108.     exit;
  109.   END;
  110.   wertstr := '0.000╡S';
  111. END;
  112.  
  113. procedure TForm1.StartItAll(Sender: TObject);
  114. VAR
  115.   i, x     : Integer;
  116.   xd       : Real;
  117.   ergebnis : Integer;
  118. begin
  119.  
  120.   FOR i := 0 TO 5 DO
  121.     res[i].quadpart := 0;
  122.  
  123.   Ergebnis := 0;
  124.   FOR i := 1 TO 200 DO
  125.     res[3].lowpart := res[3].lowpart + TopFunction(Ergebnis).lowpart;
  126.  
  127.   Ergebnis := 0;
  128.   FOR i := 1 TO 200 DO
  129.     res[2].lowpart := res[2].lowpart + FunctionWith10000(Ergebnis).lowpart;
  130.  
  131.   Ergebnis := 0;
  132.   FOR i := 1 TO 200 DO
  133.     res[1].lowpart := res[1].lowpart + FunctionWith1000(Ergebnis).lowpart;
  134.  
  135.   FOR i := 1 TO 200 DO
  136.     Empty;
  137.  
  138.   res[4].lowpart := res[4].lowpart + MBox.lowpart;
  139.  
  140.   FOR i := 0 TO 5 DO BEGIN
  141.     x := res[i].lowpart;
  142.     IF x < 4 THEN
  143.       x := x DIV 200;
  144.     ConvertTime(resstr[i], x, TRUE);
  145.     xd := Round(x);
  146.     ConvertTime(resstr2[i], xd, FALSE);
  147.   END;
  148.  
  149.   f0.caption     := resstr[0];
  150.   f1000.caption  := resstr[1];
  151.   f10000.caption := resstr[2];
  152.   tmlf.caption   := resstr[3];
  153.   prom.caption   := resstr[4];
  154.   prouse.caption := resstr[5];
  155.  
  156.   f0d.caption      := resstr2[0];
  157.   f1000d.caption   := resstr2[1];
  158.   f10000d.caption  := resstr2[2];
  159.   tmlfd.caption    := resstr2[3];
  160.   promd.caption    := resstr2[4];
  161.   proused.caption  := resstr2[5];
  162.   ResLabel.Visible := TRUE;
  163. end;
  164.  
  165. end.
  166.