在使用DBGrid.SelectIndex 的 OnColExit 時 |
答題得分者是:P.D.
|
Charlies Chang
一般會員 發表:3 回覆:9 積分:7 註冊:2003-05-09 發送簡訊給我 |
有一個有趣的狀況:
在DBGird 中指定一個事件 DBGrid1ColExit [code delphi] procedure TForm1.DBGrid1ColExit(Sender: TObject); begin if DBGrid1.SelectedIndex=XXXX then DBGrid1.SelectedIndex:=0; DBGrid1.setFocus; end; [/code] 如果 XXXX 等於 0 時, 這個式子將不會生效.(怎麼跑都會跑到[1]) 那麼我們就不能去: 檢查 [0] 的值,在檢查不過後,強行讓它保持在[0]的位置. 請有此經驗的先進指點一下,Thanks 編輯記錄
Charlies Chang 重新編輯於 2008-10-03 23:57:50, 註解 無‧
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
Charlies Chang
一般會員 發表:3 回覆:9 積分:7 註冊:2003-05-09 發送簡訊給我 |
謝謝回覆
我重新試了一個 Clean 的 樣本,還是會這樣. ADODataset1 當然有開啟. 請看一下. 我在 Delphi2007 做的. [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; DBGrid1: TDBGrid; ADOConnection1: TADOConnection; ADODataSet1: TADODataSet; DataSource1: TDataSource; procedure FormCreate(Sender: TObject); procedure DBGrid1ColExit(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DBGrid1ColExit(Sender: TObject); begin if (DBGrid1.SelectedIndex=0) and (DBgrid1.SelectedField.AsString='1') then //<-這一行判斷後,條件符合,但没有把 Focus 攔在 cloumn[0]. DBGrid1.SelectedIndex:=0; DBgrid1.SetFocus; end; procedure TForm1.FormCreate(Sender: TObject); begin DBGrid1.Align:=alClient; end; end. [/code] Thanks |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
Charlies Chang
一般會員 發表:3 回覆:9 積分:7 註冊:2003-05-09 發送簡訊給我 |
還是謝謝您
換個方法就可以了. [code delphi] if (DBGrid1.SelectedIndex=0) and (DBgrid1.SelectedField.AsString='1') then ABORT; //<-改成這樣後可行. [/code]
編輯記錄
Charlies Chang 重新編輯於 2008-10-05 13:06:10, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |