全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1453
推到 Plurk!
推到 Facebook!

自定元件如何存取TApplication

 
yu168
一般會員


發表:29
回覆:27
積分:16
註冊:2002-06-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-07 08:24:21 IP:59.124.xxx.xxx 未訂閱
小第想寫一個元件來簡化程式的公用參數儲存與取用, 但是這個元件在第 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-07 08:35:04 IP:203.73.xxx.xxx 訂閱
Application須使用到Forms這個unit
所以您的
uses
IniFiles, SysUtils, Windows, System, ExtCtrls, Controls, Variants, Graphics,Forms;

這樣就可以了
系統時間:2024-04-27 23:27:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!