Q&A

  • 미리 눌린 버튼을 무시 하는 법좀 가르쳐주세요
버튼을 클릭하면 프로그램이 계산을 합니다.

이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ



계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

하는 방법이 없을까요?



답변 기다리겠습니다.



5  COMMENTS
  • Profile
    바보감자 2001.03.23 19:35
    장정욱 wrote:

    > 버튼을 클릭하면 프로그램이 계산을 합니다.

    > 이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ

    >

    > 계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

    > 무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

    > 하는 방법이 없을까요?

    >

    > 답변 기다리겠습니다.

    >

    ^^ 안녕하세여 바보감자입니다

    버튼 택(철권택 하고싶넹..ㅜㅜ...)을 이용하세여~~ ^^

    잘 보세여



    if button1.tag = 1 then

    begin

    label2.caption := '지금 실행중입니다';

    exit;

    end;

    button1.tag := 1;

    inc(i);

    Label1.Caption:=inttostr(i);

    Label1.Update;

    Sleep(2000);

    application.ProcessMessages;

    button1.tag := 0;



    그럼 즐코 하세여 좋은 답변이 되었는지 멀겠네여 ^^

    아니면 밑에 분처럼 버튼이 false 면 걍 exit 시켜 주셔도 됩니다 ^^





  • Profile
    감초 2001.03.23 10:27
    가장 손쉬운 방법은 global variable하나를 지정해서 계산 시작할때 false로 해주고 만약 그 값이 false일때는 버튼을 눌러도 그냥 exit하게 하면 됩니다.

    물론 계산이 끝나면 다시 true로 해 주면 되겠지요.





    장정욱 wrote:

    > 버튼을 클릭하면 프로그램이 계산을 합니다.

    > 이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ

    >

    > 계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

    > 무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

    > 하는 방법이 없을까요?

    >

    > 답변 기다리겠습니다.

    >

  • Profile
    바사기몬 2001.03.23 00:20
    장정욱 wrote:

    > 버튼을 클릭하면 프로그램이 계산을 합니다.

    > 이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ

    >

    > 계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

    > 무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

    > 하는 방법이 없을까요?

    >

    > 답변 기다리겠습니다.

    >



    일반적인 방법은 enabled := False를 시키는 것입니다..



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Button1.Enabled := False;

    //..해당처리...

    Button1.Enabled := True;

    end;





  • Profile
    장정욱 2001.03.23 01:35
    답변 감사합니다. 하지만 그런방법으로 해도 해결이 안됩니다.

    Enabled가 소용이 없네요 (아래 프로그램 참조)



    버튼이 Enabled False 상태에서도 누르면 눌린게 기억되서 다음에 또 저절로 눌립니다.

    해결방법이 없을까요?



    [추가합니다] 방금 Visable=False로도 해봤는데요, 심하네요... 버튼이 사라져서

    안보이는 자리를 찍어도 미리 기억했다가 버튼이 나타나면서 저절로 눌려지네요...

    이거 내 컴퓨터만 잘못된거 아닌가요 혹시? 음...





    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;

    i : Integer;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Button1.Enabled:=False;

    inc(i);

    Label1.Caption:=inttostr(i);

    Label1.Update;

    Sleep(2000);

    Button1.Enabled:=True;

    end;



    end.







    바사기몬 wrote:

    > 장정욱 wrote:

    > > 버튼을 클릭하면 프로그램이 계산을 합니다.

    > > 이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ

    > >

    > > 계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

    > > 무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

    > > 하는 방법이 없을까요?

    > >

    > > 답변 기다리겠습니다.

    > >

    >

    > 일반적인 방법은 enabled := False를 시키는 것입니다..

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > Button1.Enabled := False;

    > //..해당처리...

    > Button1.Enabled := True;

    > end;

    >

    >

  • Profile
    바사기몬 2001.03.23 03:36
    이러케 하시면 되는데요...

    글쎄요...

    얘기하시는 처리는 일반적이지 않아서.. 좀 그러네요..

    하지만 얘기하신 대로 되기는 하는것 같습니다..



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Button1.Enabled:=False;

    inc(i);

    Label1.Caption:=inttostr(i);

    Label1.Update;

    Sleep(2000);

    application.ProcessMessages;

    Button1.Enabled:=True;

    end;







    장정욱 wrote:

    > 답변 감사합니다. 하지만 그런방법으로 해도 해결이 안됩니다.

    > Enabled가 소용이 없네요 (아래 프로그램 참조)

    >

    > 버튼이 Enabled False 상태에서도 누르면 눌린게 기억되서 다음에 또 저절로 눌립니다.

    > 해결방법이 없을까요?

    >

    > [추가합니다] 방금 Visable=False로도 해봤는데요, 심하네요... 버튼이 사라져서

    > 안보이는 자리를 찍어도 미리 기억했다가 버튼이 나타나면서 저절로 눌려지네요...

    > 이거 내 컴퓨터만 잘못된거 아닌가요 혹시? 음...

    >

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Button1: TButton;

    > Label1: TLabel;

    > procedure Button1Click(Sender: TObject);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    > i : Integer;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > Button1.Enabled:=False;

    > inc(i);

    > Label1.Caption:=inttostr(i);

    > Label1.Update;

    > Sleep(2000);

    > Button1.Enabled:=True;

    > end;

    >

    > end.

    >

    >

    >

    > 바사기몬 wrote:

    > > 장정욱 wrote:

    > > > 버튼을 클릭하면 프로그램이 계산을 합니다.

    > > > 이때 계산 도중 버튼을 또 누르면 계산이 끝나자 마자 또다시 계산을 하네요 ㅠ.ㅠ

    > > >

    > > > 계산할때는 버튼이 사라지게 해도 되지만, 미적인걸 고려할때, 버튼이 사라지면

    > > > 무척 곤란하거든요. 미리 눌린 버튼을 무시하고 다시 버튼이 눌려지길 기다리게

    > > > 하는 방법이 없을까요?

    > > >

    > > > 답변 기다리겠습니다.

    > > >

    > >

    > > 일반적인 방법은 enabled := False를 시키는 것입니다..

    > >

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > begin

    > > Button1.Enabled := False;

    > > //..해당처리...

    > > Button1.Enabled := True;

    > > end;

    > >

    > >