按鈕Button如何使其Caption時隱時現? |
答題得分者是:海星
|
zxy666666
中階會員 發表:108 回覆:150 積分:86 註冊:2005-01-14 發送簡訊給我 |
大家好!
我有一個按鈕,想做ON,OFF的功能.比如說:當是ON的時候,點擊它,其caption變為OFF,若為OFF時,點擊它則變為ON(預設為OFF.)
並且當是ON的時候,希望caption有時隱時現的效果以提示用戶.(請問此效果是否一定要用Timer元件做?又如何寫代碼呢?),當用戶再點擊時,則出現一提示信息,是否變為OFF ?若選擇是則變為OFF,否則不做任何動作. 我的代碼如下:
var Form1: TForm1; bTest : Boolean ; procedure TForm1.FormCreate(Sender: TObject); begin bTest := true ; end; procedure TForm1.Button1Click(Sender: TObject); begin bTest := not(bTest) ; if bTest then if messageDlg('是否OFF ? ',mtConfirmation,[mbYes,mBno],0) = mrNo then begin bTest := not(bTest) ; Abort ; end; if bTest then Button1.Caption := 'OFF' else Button1.Caption := 'ON' ; end;我現在的問題是: 1. 請大家幫忙看一下這樣寫是否正確,雖然測試是可以,但是總覺得這樣寫不太對勁 2. 請問caption時隱時現的功能要怎麼做呢?請指教,謝謝! |
海星
高階會員 發表:41 回覆:217 積分:106 註冊:2003-01-09 發送簡訊給我 |
就是要放一個 Timer 阿~~而且 Timer 的Enabled 預設值是 False;
procedure TForm1.Button1Click(Sender: TObject); begin if ( Button1.Caption = 'OFF' ) then begin Button1.Caption := 'ON'; Timer1.Enabled := True end else begin Button1.Caption := 'OFF'; Caption := '現在按鈕是OFF'; Timer1.Enabled := False; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if( Caption = '' ) then Caption := '現在按鈕是ON' else Caption := ''; end; end. |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
bTest ->改為直接使用Button1.Tag 省了一個變數
Const
On_Off : Array[0..1] of String = ('ON','OFF');
begin
Button1.Tag := ORD(Button1.Tag=0);
if Button1.Tag=1 then
if MessageDlg...... Button1.Caption := On_Off[Button1.Tag];
Timer1.Enabled := Button1.Tag=0; 在 OnTimer 事件中
添加
begin
Timer1.Tag := ORD(Timer1.Tag=0);
Button1.Visible := Timer1.Tag=1;
end; 寫的很亂!參考參考!閃爍的效果最好是 隱藏時間較短顯示時間較長一點。 Sorry! 搶題了 ...... 發表人 - wameng 於 2005/04/04 15:56:43
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
Var BL : Boolean ; procedure TForm1.Button1Click(Sender: TObject); begin If BL then begin if MessageDlg('Do you OFF??', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Button1.Caption:='OFF'; BL:= False; end; end else begin Button1.Caption:='ON'; BL:=True; end; end; procedure TForm1.FormCreate(Sender: TObject); begin BL:=True; end;發表人 - juneo 於 2005/04/04 16:26:03 |
zxy666666
中階會員 發表:108 回覆:150 積分:86 註冊:2005-01-14 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
zxy666666
中階會員 發表:108 回覆:150 積分:86 註冊:2005-01-14 發送簡訊給我 |
引言:謝謝juneo大大的熱心幫助.我稍改一下范例程式碼就可以了 < class="code"> procedure TForm1.FormCreate(Sender: TObject); begin BL:=False ; //預設為OFF end; TO: wameng大大:謝謝你耐心的教導!讓我學到了新的東西(對於我這個Delphi新手來說).< >> 再次謝謝各位大大!!!< >Var BL : Boolean ; procedure TForm1.Button1Click(Sender: TObject); begin If BL then begin if MessageDlg('Do you OFF??', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Button1.Caption:='OFF'; BL:= False; end; end else begin Button1.Caption:='ON'; BL:=True; end; end; procedure TForm1.FormCreate(Sender: TObject); begin BL:=True; end;發表人 - juneo 於 2005/04/04 16:26:03 |
zxy666666
中階會員 發表:108 回覆:150 積分:86 註冊:2005-01-14 發送簡訊給我 |
引言:謝謝juneo大大的熱心幫助.我稍改一下范例程式碼就可以了 < class="code"> procedure TForm1.FormCreate(Sender: TObject); begin BL:=False ; //預設為OFF end; TO: wameng大大:謝謝你耐心的教導!讓我學到了新的東西(對於我這個Delphi新手來說).< >> 再次謝謝各位大大!!!< >Var BL : Boolean ; procedure TForm1.Button1Click(Sender: TObject); begin If BL then begin if MessageDlg('Do you OFF??', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Button1.Caption:='OFF'; BL:= False; end; end else begin Button1.Caption:='ON'; BL:=True; end; end; procedure TForm1.FormCreate(Sender: TObject); begin BL:=True; end;發表人 - juneo 於 2005/04/04 16:26:03 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |