如何設定DBGrid上面某一個欄位是ReadOnly或是可修改 |
尚未結案
|
dino
一般會員 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
請教各位前輩 :
我用多個DBGrid來維護多個Table
共用一個Query, 所以SQL指令是動態產生的
就無法使用Query元件的Fields Editor跟DBGrid的Columns Editor
去設定每一個欄位的ReadOnly是true或是false
每一個Table都只有一個欄位可以修改, 所以在DBGrid的屬性ReadOnly
設為True之後, 希望對其中一個欄位設定為可修改
我就不知道要怎麼做了, 試過了DBGrid1.Fields[].ReadOnly
或是DBGrid1.Columns.Items[].ReadOnly等等的方法都不行針對某個
欄位做改變,希望各位賜教...謝謝
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi dino , 既然你已將 DBGrid.ReadOnly := True; 即使你在對 DBGrid1.Columns.Items[].ReadOnly := False; 也是沒有用的 建議你將 DBGrid 的 ReadOnly 設為 False,但是在 Query 的 AfterOpen 事件將所由欄位設為 ReadOnly,再針對特定欄位開放修改
procedure TForm1.Query1AfterOpen(DataSet: TDataSet); var i : Integer; begin for i := 0 to Dataset.FieldCount - 1 do // 將所有欄位設為 ReadOnly DataSet.FieldList.Fields[i].ReadOnly := True; DataSet.FieldList.Fields[2].ReadOnly := False; // 允許第二欄可修改 end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
dino
一般會員 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi dino, 在該 DBGrid 的 OnDrawColumnCell 事件上去設定顏色,並進行繪製,範例程式如下:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if ((State = [gdSelected,gdFocused]) or (State = [gdSelected]) or (State = [gdFocused])) then begin TDBGrid(Sender).Canvas.Brush.Color := clHighlight; TDBGrid(Sender).Canvas.Brush.Style := bsSolid; TDBGrid(Sender).Canvas.Font.Color := clHighlightText; TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State); end else begin if (not Column.Field.ReadOnly) then begin TDBGrid(Sender).Canvas.Brush.Color := clBlue; TDBGrid(Sender).Canvas.Brush.Style := bsSolid; TDBGrid(Sender).Canvas.Font.Color := clHighlightText; TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State); end; end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
zch2002115
一般會員 發表:24 回覆:15 積分:7 註冊:2004-11-23 發送簡訊給我 |
|
dino
一般會員 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
|
dino
一般會員 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
|
dino
一般會員 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |