home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / nastroje / d23456 / PRODEL.ZIP / PROFONLI.PAS < prev    next >
Pascal/Delphi Source File  |  2001-05-05  |  4KB  |  169 lines

  1. //PROFILE-NO
  2. unit Profonli;
  3. interface
  4.  
  5. uses
  6.   Windows,
  7.   Forms, Controls, StdCtrls,
  8.   Classes,
  9.   SysUtils;
  10. {$H-}
  11. {$V-}
  12. {$O-}
  13. {$D-}
  14. {$B-}
  15. {$Q-}
  16. {$I-}               
  17. {$R-}       
  18. {$A+}
  19. {$W+}
  20. {$J+}
  21. {$T+}
  22. {$X+}
  23.  
  24. PROCEDURE ProfOnlineOperation;
  25.  
  26. TYPE
  27.   TOnlineProform = class(TForm)
  28.     Button1: TButton;
  29.     Button2: TButton;
  30.     Button3: TButton;
  31.     Edit1: TEdit;
  32.     GroupBox1: TGroupBox;
  33.     Button4: TButton;
  34.     procedure StarteMessung(Sender: TObject);
  35.     procedure StoppeMessung(Sender: TObject);
  36.     procedure Anhaengen(Sender: TObject);
  37.     procedure Erzeugen(Sender: TObject);
  38.     procedure ResultatLoeschen(Sender: TObject);
  39.     procedure Zerstoeren(Sender: TObject);
  40.   private
  41.     { Private-Deklarationen }
  42.     procedure ButtonOnOff;
  43.   public
  44.     { Public-Deklarationen }
  45.     IstAktiv : Boolean;
  46.   end;
  47.  
  48. var
  49.   OnlineProform: TOnlineProform;
  50.  
  51. {$R *.dfm}
  52.  
  53. IMPLEMENTATION
  54. USES
  55.   Profint;
  56.  
  57. FUNCTION  GetMHZ85     : Integer; external 'PROFMEAS.DLL';
  58. FUNCTION  ProfIstAktiv : Boolean; external 'PROFMEAS.DLL';
  59. PROCEDURE ProfResultatLoeschen;   external 'PROFMEAS.DLL';
  60. FUNCTION  GetPDVersion : PChar;   external 'PROFMEAS.DLL';
  61.  
  62.  
  63. VAR
  64.   winxpos : Integer;
  65.   winypos : Integer;
  66.   toppos  : Integer;
  67.  
  68. PROCEDURE ProfOnlineOperation;
  69. VAR
  70.   hs : String;
  71. BEGIN
  72.   Application.CreateForm(TOnlineProForm, OnlineProForm);
  73.   OnLineProForm.Caption := 'ProDelphi - online operation';
  74.   Str(GetMHz85,hs);
  75.   OnlineProForm.Edit1.text := 'CPU performs with ' + hs + ' MHz';
  76. END;
  77.  
  78. FUNCTION GetIniFile : String;
  79. BEGIN
  80.   Result := ExtractFilePath(ParamStr(0)) + 'profile.ini';
  81. END;
  82.  
  83. procedure TOnlineProform.StarteMessung(Sender: TObject);
  84. begin
  85.   ProfActivate;
  86.   ButtonOnOff;
  87. end;
  88.  
  89. procedure TOnlineProform.StoppeMessung(Sender: TObject);
  90. begin
  91.   ProfDeactivate;
  92.   ButtonOnOff;
  93. end;
  94.  
  95. procedure TOnlineProform.Anhaengen(Sender: TObject);
  96. VAR
  97.   txt : Array[0..255] OF Char;
  98. begin
  99.   StrPLCopy(txt, OnlineProForm.Edit1.Text, 255);
  100.   ProfSetComment(txt);
  101.   ProfAppendResults(FALSE);
  102. end;
  103.  
  104. procedure TOnlineProform.Erzeugen(Sender: TObject);
  105. begin
  106.   IF winxpos <> -1 THEN BEGIN
  107.     Left := winxpos;
  108.     Top  := Winypos;
  109.   END;
  110.   IF TopPos <> 0 THEN
  111.     SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0,
  112.                  SWP_NOSIZE OR SWP_NOMOVE OR SWP_SHOWWINDOW);
  113.   ButtonOnOff;
  114. end;
  115.  
  116. procedure TOnlineProform.ButtonOnOff;
  117. begin
  118.   IF ProfIstAktiv = TRUE THEN BEGIN
  119.     Button1.Enabled := FALSE;
  120.     Button2.Enabled := TRUE;
  121.     END
  122.   ELSE BEGIN
  123.     Button2.Enabled := FALSE;
  124.     Button1.Enabled := TRUE;
  125.   END;
  126. end;
  127.  
  128. procedure TOnlineProform.ResultatLoeschen(Sender: TObject);
  129. BEGIN
  130.   ProfResultatLoeschen;
  131. end;
  132.  
  133. procedure TOnlineProform.Zerstoeren(Sender: TObject);
  134. VAR
  135.   rect   : TRect;
  136.   xp, yp : Array[0..24] OF Char;
  137.   namec  : Array[0..255] OF Char;
  138. begin
  139.   StrPCopy(namec, GetIniFile);
  140.   GetWindowRect(handle, rect);
  141.   Str(rect.top, yp);
  142.   Str(rect.left, xp);
  143.   WritePrivateProfileString('PROFILER','SCREEN-X',xp,namec);
  144.   WritePrivateProfileString('PROFILER','SCREEN-Y',yp,namec);
  145. END;
  146.  
  147. PROCEDURE InitUnit;
  148. VAR
  149.   namec   : Array[0..255] OF Char;
  150.   tmpbuff : Array[0..255] OF Char;
  151.   anzeige : Integer;
  152. BEGIN
  153.   StrPCopy(namec, GetIniFile);
  154.   GetPrivateProfileString('PROFILER','SCREEN-X','-1',tmpbuff,SizeOf(tmpbuff)-1,namec);
  155.   VAL(tmpbuff, winxpos, anzeige);
  156.   IF anzeige <> 0 THEN
  157.     Winxpos := -1;
  158.   GetPrivateProfileString('PROFILER','SCREEN-Y','-1',tmpbuff,SizeOf(tmpbuff)-1,namec);
  159.   VAL(tmpbuff, winypos, anzeige);
  160.   IF anzeige <> 0 THEN
  161.     Winypos := -1;
  162.   GetPrivateProfileString('PROFILER','ONTOP','0',tmpbuff,SizeOf(tmpbuff)-1,namec);
  163.   VAL(tmpbuff, toppos, anzeige);
  164. END;
  165.  
  166. INITIALIZATION
  167.   InitUnit;
  168. END.
  169.