自定元件如何存取TApplication |
|
yu168
一般會員 ![]() ![]() 發表:29 回覆:27 積分:16 註冊:2002-06-28 發送簡訊給我 |
小第想寫一個元件來簡化程式的公用參數儲存與取用, 但是這個元件在第 42與61行的 Application.ExeName 有'Undeclared identifier' 錯誤請各位指導一下,程式碼如下 <textarea class="delphi" rows="10" cols="60" name="code">unit Unit2;
interface
uses
IniFiles, SysUtils, Windows, System, ExtCtrls, Controls, Variants, Graphics;
type
TParam = class(TObject)
public
WorkPath : String;
IniFile : TMeminiFile;
QuotaesChar : Char;
ConnStr : String;
SQLStr : String;
AutoRefresh : Boolean;
procedure SaveToFile();
procedure LoadFromFile();
procedure DefaultValues();
end;
implementation
var
SysParam :TParam;
function ExtractQuotasStr( Str: String; QStr: char): String;
var
pStr : PChar;
tmpStr : String;
begin
pStr := PChar(Str);
tmpStr := AnsiExtractQuotedStr(pStr, QStr);
if (tmpStr='') then Result := Str else Result := tmpstr;
pStr := nil;
end;
procedure TParam.LoadFromFile();
begin
SysParam.QuotaesChar := Chr(SysParam.IniFile.ReadInteger('','Char', ord('"')));
SysParam.WorkPath := ExtractQuotasStr(SysParam.IniFile.ReadString('Program', 'WorkPath', ExtractFilePath(Application.ExeName)), SysParam.QuotaesChar);
SysParam.AutoRefresh := SysParam.IniFile.ReadBool ('Program', 'AutoRefresh', SysParam.AutoRefresh);
SysParam.ConnStr := ExtractQuotasStr(SysParam.IniFile.ReadString('DB','ConnStr', ''), SysParam.QuotaesChar);
SysParam.SQLStr := ExtractQuotasStr(SysParam.IniFile.ReadString('DB','SQLStr', ''), SysParam.QuotaesChar);
end;
procedure TParam.SaveToFile();
begin
SysParam.IniFile.WriteInteger ('Quotation','Char', Ord(SysParam.QuotaesChar));
SysParam.IniFile.WriteString ('Program', 'WorkPath', AnsiQuotedStr(SysParam.WorkPath, SysParam.QuotaesChar));
SysParam.IniFile.WriteBool ('Program', 'AutoRefresh', SysParam.AutoRefresh);
SysParam.IniFile.WriteString ('DB','ConnStr', AnsiQuotedStr(SysParam.ConnStr, SysParam.QuotaesChar));
SysParam.IniFile.WriteString ('DB','SQLStr', AnsiQuotedStr(SysParam.SQLStr, SysParam.QuotaesChar));
SysParam.IniFile.UpdateFile;
end;
procedure TParam.DefaultValues();
begin
SysParam.QuotaesChar := Chr(ord('"'));
SysParam.WorkPath := ExtractFilePath(Application.ExeName);
SysParam.AutoRefresh := True;
SysParam.ConnStr := 'Provider=MSDAORA.1;Password=admin; User ID=admin;Data Source=OnlineDB;Persist Security Info=True';
SysParam.SQLStr := 'SELECT * FROM DB_LOG WHERE TIME>= :StartTime And TIME< :EndTime ORDER BY TIME DESC';
end;
end.</textarea>
|
mypigbaby
高階會員 ![]() ![]() ![]() 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |