線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1375
推到 Plurk!
推到 Facebook!

要控制所有from的button的顯現或隱藏要如何寫呢

缺席
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 13:59:15 IP:61.219.xxx.xxx 未訂閱
若要在mainform或是共用的unit寫一個procedure來控制buttton的 顯現或隱藏請問要如何寫呢
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-22 14:36:18 IP:61.218.xxx.xxx 未訂閱
procedure IsShow(Sender:Tobject;ShowFlag:Boolean);
begin
    if Sender is Tbutton then
       (Sender as TButton).Visible:=ShowFlag;
end;    procedure TForm1.FormCreate(Sender: TObject);
begin
     IsShow(button1,false);
end;
發表人 - ddy 於 2003/04/22 14:37:39
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-22 16:10:10 IP:61.219.xxx.xxx 未訂閱
我可能說的不夠清楚我多個form上都有新增,刪除,修改,存檔等button 當我按下新增鈕時刪除,修改紐會隱藏等情形,我並不想在每個form上都寫一次 所以我想在主form上寫個procedure來達到這種效果
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-22 16:45:04 IP:211.74.xxx.xxx 未訂閱
procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  sbInsert.Enabled := (MasterDS.State in [dsBrowse]);
  sbEdit.Enabled := (MasterDS.State in [dsBrowse]);
  sbSave.Enabled := (MasterDS.State in [dsInsert, dsEdit]);
  sbDel.Enabled := (MasterDS.State in [dsBrowse]);
end;
TRY TYR SEE..
引言: 我可能說的不夠清楚我多個form上都有新增,刪除,修改,存檔等button 當我按下新增鈕時刪除,修改紐會隱藏等情形,我並不想在每個form上都寫一次 所以我想在主form上寫個procedure來達到這種效果
發表人 - chih 於 2003/04/22 16:45:59
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-22 16:59:48 IP:61.218.xxx.xxx 未訂閱
引言: 我可能說的不夠清楚我多個form上都有新增,刪除,修改,存檔等button 當我按下新增鈕時刪除,修改紐會隱藏等情形,我並不想在每個form上都寫一次 所以我想在主form上寫個procedure來達到這種效果
你不是『可能說的不夠清楚』,而是『肯定說的不清楚』 下次請注意!! < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-22 17:31:04 IP:61.155.xxx.xxx 未訂閱
procedure isvisible(button1,button2,button3,button4:tbutton;isshow1,isshowother:boolean); begin //按下的按钮 button1.Visible := isshow1; //其他的按钮 button2.Visible := isshowother; button3.Visible := isshowother; button4.Visible := isshowother; end; 风花雪月 e梦情缘
------
风花雪月 e梦情缘
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-22 20:20:28 IP:218.163.xxx.xxx 未訂閱
引言: 我可能說的不夠清楚我多個form上都有新增,刪除,修改,存檔等button 當我按下新增鈕時刪除,修改紐會隱藏等情形,我並不想在每個form上都寫一次 所以我想在主form上寫個procedure來達到這種效果
您在主form的var區宣告:
procedure ButtonDisplay(DataSet: TDataSet; btAppend, btDelete, btEdit, btPost, btCancel: TButton);
註:檢查主form的uses區是否有uses db, stdctrls;因為有使用TDataSet要uses db、使用Button物件要uses stdctrls    procedure ButtonDisplay(DataSet: TDataSet; xbtAppend, xbtDelete, xbtEdit, xbtPost, xbtCancel: TButton);
begin
  if DataSet.State in [dsInsert,dsEdit] then
  begin
    xbtAppend.Enabled := False;
    xbtDelete.Enabled := False;
    xbtEdit.Enabled := False;
    xbtPost.Enabled := True;
    xbtCancel.Enabled := True;
  end
  else
  begin
    xbtAppend.Enabled := True;
    xbtDelete.Enabled := True;
    xbtEdit.Enabled := True;
    xbtPost.Enabled := False;
    xbtCancel.Enabled := False;
  end;
end;    procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  ButtonDisplay(TDataSource(Sender).DataSet, btAppend, btDelete, btEdit, btPost, btCancel);
end;
註1:您只要在每個Form的TDataSource的onStateChange事件呼叫ButtonDisplay,傳入TDataSet及新增、刪除、修改、存檔、放棄存檔按鈕之Name,就不用在每個form上都寫一次。 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/04/22 20:21:31
------
~小弟淺見,參考看看~
系統時間:2024-04-29 20:21:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!