線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1419
推到 Plurk!
推到 Facebook!

dbgrid新增時, 開窗挑選檔案名, 回欄位, 及自動呼叫看圖程式

答題得分者是:careychen
ttring
一般會員


發表:11
回覆:23
積分:16
註冊:2008-11-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-11 13:34:33 IP:60.248.xxx.xxx 訂閱
各位大大, 上次的問題, 非常感謝大家的回應

目前有其他專案在寫, 會用到grid 的運作
(運作起來感覺蠻特別的, 和VB.net 不太一樣)

我目前拉了一個dbgrid

可以讓user自行輸入, 但有個欄位是記錄圖檔的路徑
我目前是拉了一個button , 呼叫openDialog1
但有個問題是dbgrid 新增一筆時, (前面還是 * 號時)
去點button 會回復到上一筆 , 變成取回檔案名時, 蓋掉的反而是上一筆資料

procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if FileExists(OpenDialog1.FileName) then //當檔案實際存在時
begin
pit_query.Edit;
pit_query.FieldByName('pic03').AsString :=OpenDialog1.FileName;
end;
end;
end;

在想是不是用熱鍵去呼叫 opendialog1 或者有其他方式克服

另外請教一下, 如果想讓user 點一下檔案路徑,
自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做??
ttring
一般會員


發表:11
回覆:23
積分:16
註冊:2008-11-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-11 15:28:12 IP:60.248.xxx.xxx 訂閱
剛測了一下, 用熱鍵呼叫果然是可行的, 
麻煩請教, 是否可以自動開啟所點選的grid記錄的檔案名

dbgrid
col3 (記錄檔案名) col4(備註)
a.file
b.file


===================引 用 ttring 文 章===================
各位大大, 上次的問題, 非常感謝大家的回應

目前有其他專案在寫, 會用到grid 的運作
(運作起來感覺蠻特別的, 和VB.net 不太一樣)

我目前拉了一個dbgrid

可以讓user自行輸入, 但有個欄位是記錄圖檔的路徑
我目前是拉了一個button , 呼叫openDialog1
但有個問題是dbgrid 新增一筆時, (前面還是 * 號時)
去點button 會回復到上一筆 , 變成取回檔案名時, 蓋掉的反而是上一筆資料

procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if FileExists(OpenDialog1.FileName) then //當檔案實際存在時
begin
pit_query.Edit;
pit_query.FieldByName('pic03').AsString :=OpenDialog1.FileName;
end;
end;
end;

在想是不是用熱鍵去呼叫 opendialog1 或者有其他方式克服

另外請教一下, 如果想讓user 點一下檔案路徑,
自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做??
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-15 18:23:34 IP:60.248.xxx.xxx 訂閱
HI, 在您的第一個問題,請把 DBGrid 的屬性 Options -> dgCancelOnExit 設為 false ,這樣就不會去按 Button 時自動回到上一筆了,但您原本的程式建議改成如下的寫法

[code delphi]
// 第一個問題
procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if Not (pit_query.State in [dsInsert, dsEdit]) then
pit_query.Edit;
pit_query.FieldByName('pic03名稱').AsString := OpenDialog1.FileName;
end;
end;

// 回答第二個問題,怎麼自動開啟那個檔案
procedure TfrmCode.DBGrid1CellClick(Column: TColumn);
begin
ShellExecute(Handle, 'Open', pchar(Column.Field.Text), nil, nil, SW_SHOWNORMAL);
end;
[/code]


===================引 用 ttring 文 章===================
剛測了一下, 用熱鍵呼叫果然是可行的,
麻煩請教, 是否可以自動開啟所點選的grid記錄的檔案名

dbgrid
col3 (記錄檔案名) col4(備註)
a.file
b.file


===================引 用 ttring 文 章===================
各位大大, 上次的問題, 非常感謝大家的回應

目前有其他專案在寫, 會用到grid 的運作
(運作起來感覺蠻特別的, 和VB.net 不太一樣)

我目前拉了一個dbgrid

可以讓user自行輸入, 但有個欄位是記錄圖檔的路徑
我目前是拉了一個button , 呼叫openDialog1
但有個問題是dbgrid 新增一筆時, (前面還是 * 號時)
去點button 會回復到上一筆 , 變成取回檔案名時, 蓋掉的反而是上一筆資料

procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if FileExists(OpenDialog1.FileName) then //當檔案實際存在時
begin
pit_query.Edit;
pit_query.FieldByName('pic03').AsString :=OpenDialog1.FileName;
end;
end;
end;

在想是不是用熱鍵去呼叫 opendialog1 或者有其他方式克服

另外請教一下, 如果想讓user 點一下檔案路徑,
自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做??
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-12-15 18:24:59, 註解 無‧
careychen 重新編輯於 2008-12-15 18:25:42, 註解 無‧
ttring
一般會員


發表:11
回覆:23
積分:16
註冊:2008-11-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-16 16:55:44 IP:60.248.xxx.xxx 訂閱
十分感謝你的回覆, 又學到了, 謝謝 ^__________________^


=================================
HI, 在您的第一個問題,請把 DBGrid 的屬性 Options -> dgCancelOnExit 設為 false ,這樣就不會去按 Button 時自動回到上一筆了,但您原本的程式建議改成如下的寫法

[code delphi]
// 第一個問題
procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if Not (pit_query.State in [dsInsert, dsEdit]) then
pit_query.Edit;
pit_query.FieldByName('pic03名稱').AsString := OpenDialog1.FileName;
end;
end;

// 回答第二個問題,怎麼自動開啟那個檔案
procedure TfrmCode.DBGrid1CellClick(Column: TColumn);
begin
ShellExecute(Handle, 'Open', pchar(Column.Field.Text), nil, nil, SW_SHOWNORMAL);
end;
[/code]


===================引 用 ttring 文 章===================
剛測了一下, 用熱鍵呼叫果然是可行的,
麻煩請教, 是否可以自動開啟所點選的grid記錄的檔案名

dbgrid
col3 (記錄檔案名) col4(備註)
a.file
b.file


===================引 用 ttring 文 章===================
各位大大, 上次的問題, 非常感謝大家的回應

目前有其他專案在寫, 會用到grid 的運作
(運作起來感覺蠻特別的, 和VB.net 不太一樣)

我目前拉了一個dbgrid

可以讓user自行輸入, 但有個欄位是記錄圖檔的路徑
我目前是拉了一個button , 呼叫openDialog1
但有個問題是dbgrid 新增一筆時, (前面還是 * 號時)
去點button 會回復到上一筆 , 變成取回檔案名時, 蓋掉的反而是上一筆資料

procedure TfrmCode.bt3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if FileExists(OpenDialog1.FileName) then //當檔案實際存在時
begin
pit_query.Edit;
pit_query.FieldByName('pic03').AsString :=OpenDialog1.FileName;
end;
end;
end;

在想是不是用熱鍵去呼叫 opendialog1 或者有其他方式克服

另外請教一下, 如果想讓user 點一下檔案路徑,
自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做??
系統時間:2024-05-16 0:30:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!