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

如何設計開QRP檔,直接Preview畫面的程式

答題得分者是:TWY
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-11 17:11:16 IP:210.64.xxx.xxx 訂閱
各位大大~~
小弟公司因為會計人員報稅,常會用qrp檔preview出來,原本使用smarkQRP的程式,但是最近卻不能用~~也無法重新安裝
,後來想說自己來寫preview的程式,但是為了想讓user 使用更方便,有什麼方式可以讓我寫的程式,可以在點選檔案的時候就可以直接開啟那個程式呢?? 我現在用qrPreview的元件設計出來可以preview QRP檔,但是都要先開程式,然後再去開檔案,有點不是很方便,請各位大大提供寶貴的資訊~~謝謝
------
ivankuo
TWY
高階會員


發表:0
回覆:132
積分:151
註冊:2009-09-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-19 09:04:45 IP:59.120.xxx.xxx 訂閱

[code delphi]
procedure TfrmOthers_Registry.Button5Click(Sender: TObject);
procedure _RegisteApLinkToExtension(sExtension,
sTip,
Descripcion,
sLinkApExeName:string;
iParam: integer);
{Uses: Registry, ShlObj}
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(sExtension, True);
WriteString('', sTip);
CloseKey;
OpenKey(sTip, True);
WriteString('', Descripcion);
CloseKey;
OpenKey(sTip '\DefaultIcon', True);
WriteString('', sLinkApExeName ',' IntToStr(iParam));
CloseKey;
OpenKey(sTip '\Shell\Open', True);
WriteString('', '&Open');
CloseKey;
OpenKey(sTip '\Shell\Open\Command', True);
WriteString('', '"' sLinkApExeName '" "%1"');
CloseKey;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
finally
Reg.Free;
end;
end;//_RegisteApLinkToExtension();


procedure _RegisteApLinkToExtensionSubMenuCaption( sExtension,sLinkApExeName,sSubMenuCaption :string);
var
Reg : TRegistry;
sStr : string;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.OpenKeyReadOnly('\.' sExtension) then begin
sStr := Reg.ReadString('');
if sStr <> '' then
if Reg.OpenKey('\' sStr '\shell', False) then
Reg.Access := KEY_READ or KEY_WRITE;
if Reg.OpenKey('APTprocess', True) then begin
Reg.WriteString('', sSubMenuCaption);
Reg.Access := KEY_READ or KEY_WRITE;
if Reg.OpenKey('command', True) then
Reg.WriteString('','"' sLinkApExeName '" "%1"');
end;
end else raise Exception.create('Lo siento, la sExtension no es conocida por Windows');
finally
Reg.Free;
end;
end;//_RegisteApLinkToExtensionSubMenuCaption();

begin
//註冊某副檔名以指定程式開啟
//將 .TST 副檔名的檔案 在檔案種管中點選會以指定的 如 Application.ExeName 這支程式開啟
//ps:經實驗雖然 xx.tst 是文字檔 但在檔案總管中看到的卻跟 Application.ExeName 一樣的 Icon
// 按下右鍵也會出現連結選單到 Application.ExeName 喔!
_RegisteApLinkToExtension('.TST',
'Test',
'Descrip Here',
Application.ExeName,
0);
//SubMenu 選單 Caption
_RegisteApLinkToExtensionSubMenuCaption('TST',
Application.ExeName,
'用 xxx.exe 開啟'); //<-SubMenu 選單 Caption
end;

[/code]
編輯記錄
TWY 重新編輯於 2010-01-19 09:07:50, 註解 無‧
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-19 11:13:23 IP:210.64.xxx.xxx 訂閱
這個方式可行,但是如果在程式開啟的時候,如何知道是哪個檔案開啟的??
------
ivankuo
TWY
高階會員


發表:0
回覆:132
積分:151
註冊:2009-09-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-01-19 11:34:54 IP:59.120.xxx.xxx 訂閱
呼,好久沒用 QuickReport 了,剛實際整個 try 了一次, RPT 檔完整路徑檔名會帶入到 ParamStr(2)  這個參數,你可在任何地方取出。


===================引 用 ivankuo 文 章===================
這個方式可行,但是如果在程式開啟的時候,如何知道是哪個檔案開啟的??
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-01-19 12:21:31 IP:210.64.xxx.xxx 訂閱
感謝大大指點~~~問題解決~~不過我是在ParamStr(1) 取得file path ,
------
ivankuo
系統時間:2017-12-14 14:24:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!