TDbGrid |
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 因為TTable/TQuery放在DM為了程式上結構要求,不想將程式寫在DM上 所以有其他方是可達相同效果??如果用 //程式動態指定事件 dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll; //FunAfterScroll為自給定易的procedure procedure TForm1.FunAfterScroll(DataSet: TDataSet); begin // ... end; 這樣咧?不用寫在DM中 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
引言:那此事件應在dbgrid1觸發(上下筆) dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll;引言: 因為TTable/TQuery放在DM為了程式上結構要求,不想將程式寫在DM上 所以有其他方是可達相同效果??如果用 //程式動態指定事件 dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll; //FunAfterScroll為自給定易的procedure procedure TForm1.FunAfterScroll(DataSet: TDataSet); begin // ... end; 這樣咧?不用寫在DM中 ~~~Delphi K.Top討論區站長~~~ |
peipei36
一般會員 發表:8 回覆:51 積分:16 註冊:2002-03-13 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 執行時期丟給同一Unit的DBGrid1就已經造成記憶體存取錯誤..不知為什麼?! DBGrid1.DataSource.DataSet := Table1;這是因為DBGrid1的Datasource物件尚未建立, 您需先在設計階段就先拉好Datasource1在將dbgrid1.datasource指向datasource1 之後才可使用 DBGrid1.DataSource.DataSet := Table1; 我寫了一個範例程式,見下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=3861 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
引言:我試了站長寫的範例,因為範例中是按了Button才觸發事件,我為了要在FromCreate就有其事件,因此就將 datamodule2.table1.open; datasource1.dataset:=datamodule2.Table1; dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll; 寫在FormShow中,則Table1可達到,但我按了Button2後 Table2卻失效,Why?引言: 執行時期丟給同一Unit的DBGrid1就已經造成記憶體存取錯誤..不知為什麼?! DBGrid1.DataSource.DataSet := Table1;這是因為DBGrid1的Datasource物件尚未建立, 您需先在設計階段就先拉好Datasource1在將dbgrid1.datasource指向datasource1 之後才可使用 DBGrid1.DataSource.DataSet := Table1; 我寫了一個範例程式,見下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=3861 ~~~Delphi K.Top討論區站長~~~ |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 我試了站長寫的範例,因為範例中是按了Button才觸發事件,我為了要在FromCreate就有其事件,因此就將 datamodule2.table1.open; datasource1.dataset:=datamodule2.Table1; dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll; 寫在FormShow中,則Table1可達到,但我按了Button2後 Table2卻失效,Why?I know why? 您可能誤會了 dbgrid1.DataSource.DataSet.AfterScroll:=FunAfterScroll; 這行指令的用義,其實這行指令與下面這兩行是一樣的: datasource1.dataset:=datamodule2.Table1; datamodule2.Table1.AfterScroll:=FunAfterScroll; 所以,datasource1.dataset指的就是Table1 若您按了Button2 要加上: datasource1.dataset:=datamodule2.Table2; datamodule2.Table2.AfterScroll:=FunAfterScroll; 不知您明白嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |