home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / delphi / nastroje / d23456 / PRODEL.ZIP / PROFONLC.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  2002-04-03  |  4.8 KB  |  222 lines

  1. //PROFILE-NO
  2. unit Profonlc;
  3. interface
  4.  
  5. uses
  6.   Windows,
  7.   QForms, QControls, QStdCtrls,
  8.   Classes,
  9.   SysUtils, QTypes, QExtCtrls, QComCtrls;
  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.     Panel1: TPanel;
  35.     CycBut: TCheckBox;
  36.     MinLab: TLabel;
  37.     FrequAnz: TTrackBar;
  38.     Label6: TLabel;
  39.     CycTimer: TTimer;
  40.     procedure StarteMessung(Sender: TObject);
  41.     procedure StoppeMessung(Sender: TObject);
  42.     procedure Anhaengen(Sender: TObject);
  43.     procedure Erzeugen(Sender: TObject);
  44.     procedure ResultatLoeschen(Sender: TObject);
  45.     procedure Zerstoeren(Sender: TObject);
  46.     procedure TickChange(Sender: TObject);
  47.     procedure ActDeact(Sender: TObject);
  48.     procedure CycAppend(Sender: TObject);
  49.   private
  50.     { Private-Deklarationen }
  51.     procedure ButtonOnOff;
  52.   public
  53.     { Public-Deklarationen }
  54.     IstAktiv : Boolean;
  55.   end;
  56.  
  57. var
  58.   OnlineProform: TOnlineProform;
  59.  
  60. {$R *.xfm}
  61.  
  62. IMPLEMENTATION
  63. USES
  64.   IniFiles,
  65.   Profint;
  66.  
  67. FUNCTION  GetMHZ95     : Integer; external 'PROFMEAS.DLL';
  68. FUNCTION  ProfIstAktiv : Boolean; external 'PROFMEAS.DLL';
  69. PROCEDURE ProfResultatLoeschen;   external 'PROFMEAS.DLL';
  70.  
  71.  
  72. VAR
  73.   winxpos : Integer;
  74.   winypos : Integer;
  75.   toppos  : Integer;
  76.  
  77. PROCEDURE ProfOnlineOperation;
  78. VAR
  79.   hs : String;
  80. BEGIN
  81.   Application.CreateForm(TOnlineProForm, OnlineProForm);
  82.   OnLineProForm.Caption := 'ProDelphi - online operation';
  83.   Str(GetMHz95,hs);
  84.   OnlineProForm.Edit1.text := 'CPU performs with ' + hs + ' MHz';
  85. END;
  86.  
  87. FUNCTION GetIniFile : String;
  88. BEGIN
  89.   Result := ExtractFilePath(ParamStr(0)) + 'profile.ini';
  90. END;
  91.  
  92. procedure TOnlineProform.StarteMessung(Sender: TObject);
  93. begin
  94.   ProfActivate;
  95.   ButtonOnOff;
  96. end;
  97.  
  98. procedure TOnlineProform.StoppeMessung(Sender: TObject);
  99. begin
  100.   ProfDeactivate;
  101.   ButtonOnOff;
  102. END;
  103.  
  104. procedure TOnlineProform.Anhaengen(Sender: TObject);
  105. VAR
  106.   txt : Array[0..255] OF Char;
  107. BEGIN
  108.   StrPLCopy(txt, OnlineProForm.Edit1.Text, 255);
  109.   ProfSetComment(txt);
  110.   ProfAppendResults(FALSE);
  111. END;
  112.  
  113. procedure TOnlineProform.Erzeugen(Sender: TObject);
  114. BEGIN
  115.   IF winxpos <> -1 THEN BEGIN
  116.     Left := winxpos;
  117.     Top  := Winypos;
  118.   END;
  119.   IF TopPos <> 0 THEN
  120.     FormStyle := fsStayOnTop;
  121.   ButtonOnOff;
  122. END;
  123.  
  124. procedure TOnlineProform.ButtonOnOff;
  125. BEGIN
  126.   IF ProfIstAktiv = TRUE THEN BEGIN
  127.     Button1.Enabled := FALSE;
  128.     Button2.Enabled := TRUE;
  129.     END
  130.   ELSE BEGIN
  131.     Button2.Enabled := FALSE;
  132.     Button1.Enabled := TRUE;
  133.   END;
  134. END;
  135.  
  136. procedure TOnlineProform.ResultatLoeschen(Sender: TObject);
  137. BEGIN
  138.   ProfResultatLoeschen;
  139. END;
  140.  
  141. PROCEDURE IntWritePrivateProfileString( CONST absch, key, wert, pf : String );
  142. VAR
  143.   Ini : TIniFile;
  144. BEGIN
  145.   Ini := TIniFile.Create( pf );
  146.   Ini.WriteString(absch, key, wert);
  147.   Ini.UpdateFile;
  148.   Ini.Free;
  149. END;
  150.  
  151. procedure TOnlineProform.Zerstoeren(Sender: TObject);
  152. VAR
  153.   xp, yp : String;
  154. begin
  155.   Str(top, yp);
  156.   Str(left, xp);
  157.   IntWritePrivateProfileString('PROFILER', 'SCREEN-X' ,xp, GetIniFile);
  158.   IntWritePrivateProfileString('PROFILER', 'SCREEN-Y' ,xp, GetIniFile);
  159. END;
  160.  
  161. PROCEDURE IntGetPrivateProfileString(CONST absch, key, VB : String;
  162.                                      VAR   Buffer : String;
  163.                                      CONST pf     : String );
  164. var
  165.   Ini : TIniFile;
  166. begin
  167.   Ini    := TIniFile.Create(pf);
  168.   buffer := Ini.ReadString(absch, key, vb);
  169.   Ini.Free;
  170. END;
  171.  
  172. PROCEDURE InitUnit;
  173. VAR
  174.   buff    : String;
  175.   anzeige : Integer;
  176. BEGIN
  177.   IntGetPrivateProfileString('PROFILER','SCREEN-X', '-1', buff, GetIniFile);
  178.   VAL(buff, winxpos, anzeige);
  179.   IF anzeige <> 0 THEN
  180.     Winxpos := -1;
  181.   IntGetPrivateProfileString('PROFILER','SCREEN-Y', '-1', buff, GetIniFile);
  182.   VAL(buff, winypos, anzeige);
  183.   IF anzeige <> 0 THEN
  184.     Winypos := -1;
  185.   IntGetPrivateProfileString('PROFILER', 'ONTOP', '0', buff, GetIniFile);
  186.   VAL(buff, toppos, anzeige);
  187. END;
  188.  
  189. procedure TOnlineProform.TickChange(Sender: TObject);
  190. VAR
  191.   hs : String;
  192. begin
  193.   CycTimer.Enabled := FALSE;
  194.   Str(FrequAnz.Position, hs);
  195.   MinLab.Caption := hs;
  196.   CycTimer.Interval := FrequAnz.Position * 60000;
  197.   IF CycBut.Checked = TRUE THEN
  198.     CycTimer.Enabled := TRUE;
  199. end;
  200.  
  201. procedure TOnlineProform.ActDeact(Sender: TObject);
  202. begin
  203.   IF CycBut.Checked = TRUE THEN BEGIN
  204.     CycTimer.Enabled := TRUE;
  205.     FrequAnz.Visible := FALSE;
  206.     END
  207.   ELSE BEGIN
  208.     CycTimer.Enabled := FALSE;
  209.     FrequAnz.Visible := TRUE;
  210.   END;
  211. end;
  212.  
  213. procedure TOnlineProform.CycAppend(Sender: TObject);
  214. BEGIN
  215.   Edit1.Text := DateTimeToStr(Now);
  216.   Anhaengen(Sender);
  217. end;
  218.  
  219. INITIALIZATION
  220.   InitUnit;
  221. END.
  222.