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

點擊dbgrid內某一Row(key column),開啟另一支程式

答題得分者是:eaglewolf
wenglien
一般會員


發表:4
回覆:7
積分:2
註冊:2006-09-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-05 17:05:24 IP:121.13.xxx.xxx 訂閱
請教各位大大,想利用dbgrid清單內某一筆ROW,點擊(主key為編號)後以此為參數開啟另一隻程式的完整資訊,不知該如何撰寫?

附加檔案:46652754d58cb_dbgrid.doc
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-05 17:51:03 IP:211.75.xxx.xxx 訂閱
1. OnCellClick 取得編號
2. 使用ShellExecute傳遞參數給另一隻程式
3. 藉由傳入的編號 至資料庫取得相關資料
不過 為何要 用另一隻程式 ? 而不是用另一個Form?
===================引 用 wenglien 文 章===================
請教各位大大,想利用dbgrid清單內某一筆ROW,點擊(主key為編號)後以此為參數開啟另一隻程式的完整資訊,不知該如何撰寫?

------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-06-05 20:36:09, 註解 無‧
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-05 18:10:37 IP:61.30.xxx.xxx 訂閱
偷吃步~
一.點擊開啟程式前,先紀錄點擊的KEY值到同目錄的TXT檔裡面並著名程式TITLE
二.被呼叫的程式可以用ShellExec或WINEXEC來呼叫
三.在程式的開頭先去開啟固定的TXT檔內容,若是TITLE名稱等於自己程式名稱則抓取參數
四.若非自己的TITLE則於0.5秒後再去TXT檔裡面找一次,重覆6次=3秒若都沒有則自己關閉
------
======================
昏睡~
不昏睡~
不由昏睡~
wenglien
一般會員


發表:4
回覆:7
積分:2
註冊:2006-09-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-06 08:24:43 IP:59.37.xxx.xxx 訂閱
請教eaglewolf兄,另一隻程式如何接收此參數,放在SQL語句內當成where條件之ㄧ
因我把程式分開撰寫,但若用form則會比較好處理嗎?細節又是如何?煩請指導謝謝!!!!
===================引 用 eaglewolf 文 章===================
1. OnCellClick 取得編號
2. 使用ShellExecute傳遞參數給另一隻程式
3. 藉由傳入的編號 至資料庫取得相關資料
不過 為何要 用另一隻程式 ? 而不是用另一個Form?
===================引 用 wenglien 文 章===================
請教各位大大,想利用dbgrid清單內某一筆ROW,點擊(主key為編號)後以此為參數開啟另一隻程式的完整資訊,不知該如何撰寫?

eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-06 09:21:43 IP:211.75.xxx.xxx 訂閱
<textarea class="delphi" rows="10" cols="60" name="code">由ParamCount 可取得參數個數; 由ParamStr(i) 可取得參數值; (ParamStr(0)為程式路徑名稱) 若使用Form參考如下: uses Unit2; procedure TForm1.Button1Click(Sender: TObject); var Form2:TForm2; begin Form2:=TForm2.Create(Application); Form2.ShowModal; Form2.Free; end; //Form2內容 type TForm2 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } m_Key :string ; public { Public declarations } constructor Create(Owner:TComponent); overload; constructor Create(Owner:TComponent;Key:String); overload; end; var Form2: TForm2; implementation {$R *.dfm} constructor TForm2.Create(Owner: TComponent; Key: String); begin inherited Create(Owner); m_Key := Key; end; constructor TForm2.Create(Owner: TComponent); begin inherited Create(Owner); m_Key := ''; end; procedure TForm2.FormCreate(Sender: TObject); begin self.Caption := m_Key; end; </textarea>

===================引 用 wenglien 文 章===================
請教eaglewolf兄,另一隻程式如何接收此參數,放在SQL語句內當成where條件之ㄧ
因我把程式分開撰寫,但若用form則會比較好處理嗎?細節又是如何?煩請指導謝謝!!!!
===================引 用 eaglewolf 文 章===================
1. OnCellClick 取得編號
2. 使用ShellExecute傳遞參數給另一隻程式
3. 藉由傳入的編號 至資料庫取得相關資料
不過 為何要 用另一隻程式 ? 而不是用另一個Form?
===================引 用 wenglien 文 章===================
請教各位大大,想利用dbgrid清單內某一筆ROW,點擊(主key為編號)後以此為參數開啟另一隻程式的完整資訊,不知該如何撰寫?

------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-06-06 09:29:26, 註解 無‧
wenglien
一般會員


發表:4
回覆:7
積分:2
註冊:2006-09-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-06 10:31:27 IP:59.124.xxx.xxx 訂閱
參數傳遞如下
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
s:String;
begin
s:=order_m.fieldbyname('sno').AsString;
ShellExecute(Handle,'open',pchar('\\Lenovoserver\MIS\電腦部\ERP\20070601\rep.exe'),pchar(s),nil,SW_SHOWNORMAL);
end;

就是不知道
另一隻程式如何接收??

eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-06 10:55:20 IP:211.75.xxx.xxx 訂閱
參考如下: <textarea class="delphi" rows="10" cols="60" name="code">case ParamCount of 1: strKey := ParamStr(1); else begin ShowMessage('Incorrect count of Parameters!'#10#13'Program will terminate now!'); Application.Terminate; end; end; strSQL := 'Select * From Table_Name Where ID = ' QuotedStr(strKey); </textarea> ===================引 用 wenglien 文 章===================
參數傳遞如下
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
s:String;
begin
s:=order_m.fieldbyname('sno').AsString;
ShellExecute(Handle,'open',pchar('\\Lenovoserver\MIS\電腦部\ERP\20070601\rep.exe'),pchar(s),nil,SW_SHOWNORMAL);
end;

就是不知道
另一隻程式如何接收??

------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-06-06 10:56:16, 註解 無‧
eaglewolf 重新編輯於 2007-06-06 11:07:21, 註解 無‧
eaglewolf 重新編輯於 2007-06-06 11:07:53, 註解 無‧
wenglien
一般會員


發表:4
回覆:7
積分:2
註冊:2006-09-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-06 11:18:45 IP:59.37.xxx.xxx 訂閱
請教大大
是寫在另一隻程式的form active event內嗎?
wenglien
一般會員


發表:4
回覆:7
積分:2
註冊:2006-09-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-06-06 13:49:34 IP:59.124.xxx.xxx 訂閱
thanks eaglewolf
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-06-06 15:13:28 IP:211.75.xxx.xxx 訂閱
一般而言
寫在FormCreate較適當

------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

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