dbgrid新增時, 開窗挑選檔案名, 回欄位, 及自動呼叫看圖程式 |
答題得分者是:careychen
|
ttring
一般會員 ![]() ![]() 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
各位大大, 上次的問題, 非常感謝大家的回應
目前有其他專案在寫, 會用到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 發送簡訊給我 |
剛測了一下, 用熱鍵呼叫果然是可行的,
麻煩請教, 是否可以自動開啟所點選的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 發送簡訊給我 |
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 點一下檔案路徑, 自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做??
------
價值的展現,來自於你用哪一個角度來看待它!! |
ttring
一般會員 ![]() ![]() 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
十分感謝你的回覆, 又學到了, 謝謝 ^__________________^
================================= 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 點一下檔案路徑, 自動呼叫系統預設看圖程式開圖檔的話, 要怎麼做?? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |