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

  1. //PROFILE-NO
  2. unit Profonlc;
  3. interface
  4.  
  5. uses
  6.   Windows,
  7.   QForms, QControls, QStdCtrls,
  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 *.xfm}
  52.  
  53. IMPLEMENTATION
  54. USES
  55.   IniFiles,
  56.   Profint;
  57.  
  58. FUNCTION  GetMHZ85     : Integer; external 'PROFMEAS.DLL';
  59. FUNCTION  ProfIstAktiv : Boolean; external 'PROFMEAS.DLL';
  60. PROCEDURE ProfResultatLoeschen;   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.     FormStyle := fsStayOnTop;
  112.   ButtonOnOff;
  113. end;
  114.  
  115. procedure TOnlineProform.ButtonOnOff;
  116. begin
  117.   IF ProfIstAktiv = TRUE THEN BEGIN
  118.     Button1.Enabled := FALSE;
  119.     Button2.Enabled := TRUE;
  120.     END
  121.   ELSE BEGIN
  122.     Button2.Enabled := FALSE;
  123.     Button1.Enabled := TRUE;
  124.   END;
  125. end;
  126.  
  127. procedure TOnlineProform.ResultatLoeschen(Sender: TObject);
  128. BEGIN
  129.   ProfResultatLoeschen;
  130. end;
  131.  
  132. PROCEDURE IntWritePrivateProfileString( CONST absch, key, wert, pf : String );
  133. VAR
  134.   Ini : TIniFile;
  135. BEGIN
  136.   Ini := TIniFile.Create( pf );
  137.   Ini.WriteString(absch, key, wert);
  138.   Ini.UpdateFile;
  139.   Ini.Free;
  140. END;
  141.  
  142. procedure TOnlineProform.Zerstoeren(Sender: TObject);
  143. VAR
  144.   xp, yp : String;
  145. begin
  146.   Str(top, yp);
  147.   Str(left, xp);
  148.   IntWritePrivateProfileString('PROFILER', 'SCREEN-X' ,xp, GetIniFile);
  149.   IntWritePrivateProfileString('PROFILER', 'SCREEN-Y' ,xp, GetIniFile);
  150. END;
  151.  
  152. PROCEDURE IntGetPrivateProfileString(CONST absch, key, VB : String;
  153.                                      VAR   Buffer : String;
  154.                                      CONST pf     : String );
  155. var
  156.   Ini : TIniFile;
  157. begin
  158.   Ini    := TIniFile.Create(pf);
  159.   buffer := Ini.ReadString(absch, key, vb);
  160.   Ini.Free;
  161. END;
  162.  
  163. PROCEDURE InitUnit;
  164. VAR
  165.   buff    : String;
  166.   anzeige : Integer;
  167. BEGIN
  168.   IntGetPrivateProfileString('PROFILER','SCREEN-X', '-1', buff, GetIniFile);
  169.   VAL(buff, winxpos, anzeige);
  170.   IF anzeige <> 0 THEN
  171.     Winxpos := -1;
  172.   IntGetPrivateProfileString('PROFILER','SCREEN-Y', '-1', buff, GetIniFile);
  173.   VAL(buff, winypos, anzeige);
  174.   IF anzeige <> 0 THEN
  175.     Winypos := -1;
  176.   IntGetPrivateProfileString('PROFILER', 'ONTOP', '0', buff, GetIniFile);
  177.   VAL(buff, toppos, anzeige);
  178. END;
  179.  
  180. INITIALIZATION
  181.   InitUnit;
  182. END.
  183.