home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 July / Chip_2000-07_cd.bin / sharewar / prodelph / PROTMAI2.PAS < prev    next >
Pascal/Delphi Source File  |  2000-05-01  |  4KB  |  165 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.   I : Integer;
  89. BEGIN
  90.   i := 0;
  91.   WHILE i < 100000 DO 
  92.     INC(i);
  93. END;
  94.  
  95. PROCEDURE ConvertTime ( VAR wertstr : String; wert : Double; AsCycles : Boolean );
  96. VAR
  97.   einheit : String;
  98. BEGIN
  99.   IF AsCycles = TRUE THEN BEGIN
  100.     Str(wert:0:0, einheit);
  101.     wertstr := '';
  102.     WHILE Length(einheit) > 3 DO BEGIN
  103.       wertstr := ',' + Copy(einheit, Length(einheit)-2, 3) + wertstr;
  104.       einheit := Copy(einheit, 1, Length(einheit)-3);
  105.     END;
  106.     wertstr := einheit + wertstr;
  107.     exit;
  108.   END;
  109.   wertstr := '0.000╡S';
  110. END;
  111.  
  112. procedure TForm1.StartItAll(Sender: TObject);
  113. VAR
  114.   i, x     : Integer;
  115.   xd       : Real;
  116.   ergebnis : Integer;
  117. begin
  118.  
  119.   FOR i := 0 TO 5 DO
  120.     res[i].quadpart := 0;
  121.  
  122.   Ergebnis := 0;
  123.   FOR i := 1 TO 200 DO
  124.     res[3].lowpart := res[3].lowpart + TopFunction(Ergebnis).lowpart;
  125.  
  126.   Ergebnis := 0;
  127.   FOR i := 1 TO 200 DO
  128.     res[2].lowpart := res[2].lowpart + FunctionWith10000(Ergebnis).lowpart;
  129.  
  130.   Ergebnis := 0;
  131.   FOR i := 1 TO 200 DO
  132.     res[1].lowpart := res[1].lowpart + FunctionWith1000(Ergebnis).lowpart;
  133.  
  134.   FOR i := 1 TO 200 DO
  135.     Empty;
  136.  
  137.   res[4].lowpart := res[4].lowpart + MBox.lowpart;
  138.  
  139.   FOR i := 0 TO 5 DO BEGIN
  140.     x := res[i].lowpart;
  141.     IF x < 4 THEN
  142.       x := x DIV 200;
  143.     ConvertTime(resstr[i], x, TRUE);
  144.     xd := Round(x);
  145.     ConvertTime(resstr2[i], xd, FALSE);
  146.   END;
  147.  
  148.   f0.caption     := resstr[0];
  149.   f1000.caption  := resstr[1];
  150.   f10000.caption := resstr[2];
  151.   tmlf.caption   := resstr[3];
  152.   prom.caption   := resstr[4];
  153.   prouse.caption := resstr[5];
  154.  
  155.   f0d.caption      := resstr2[0];
  156.   f1000d.caption   := resstr2[1];
  157.   f10000d.caption  := resstr2[2];
  158.   tmlfd.caption    := resstr2[3];
  159.   promd.caption    := resstr2[4];
  160.   proused.caption  := resstr2[5];
  161.   ResLabel.Visible := TRUE;
  162. end;
  163.  
  164. end.
  165.