模擬Dbnavigator按鍵問題 |
答題得分者是:懷舊的人
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
|
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
引言: 1. 其實 Dbnavigator 已經很好用了 2. 如果一定要用自己的 Button 時,我建議妳從 TDataSource 的 OnStateChange 事件下手 例如: procedure TForm1.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton2.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton3.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton4.Enabled := TDataSource(Sender).State in [dsBrowse]; ....... end;發表人 - 懷舊的人 於 2003/02/11 18:50:55 |
alice100001
一般會員 發表:21 回覆:49 積分:19 註冊:2002-09-14 發送簡訊給我 |
|
cyl
中階會員 發表:163 回覆:171 積分:66 註冊:2002-07-11 發送簡訊給我 |
引言:這各方法我還有一點小小疑問,請問如果button很多的話, 程式碼不就很長,請問可否改寫成更簡潔一點引言: 1. 其實 Dbnavigator 已經很好用了 2. 如果一定要用自己的 Button 時,我建議妳從 TDataSource 的 OnStateChange 事件下手 例如: procedure TForm1.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton2.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton3.Enabled := TDataSource(Sender).State in [dsInsert,dsEdit]; SpeedButton4.Enabled := TDataSource(Sender).State in [dsBrowse]; ....... end;發表人 - 懷舊的人 於 2003/02/11 18:50:55 |
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
這各方法我還有一點小小疑問,請問如果button很多的話,
程式碼不就很長,請問可否改寫成更簡潔一點
1. 因為妳每個 TSpeedButton 有不同的作用,例如新增,修改,查詢,確認,取消...等
2. 因為 DataSource 改變時會影響那幾個妳要先知道,然後就可以將同受影響的SpeedButton.Tag 設為不同的值,不過跟據經驗這些 Button 大約 10 個內就過夠了,所以一一控制就可以了
3. 妳可以考慮 用繼承 的方式來設計
4. 多利用 Tag 這屬性 非常好用,由其妳真的用心來設計時就會有感受了 加油 ,祝福妳
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |