Q&A

  • sleep 함수에서 순서가요.....
버튼을 누르면 caption 을 보였줬다가 2-5초후 다시
캡션을 없애려 합니다.
컴파일해보면 전혀 caption 이 안나옵니다.

procedure TForm1.Button1Click(Sender: TObject);
begin
  speedbutton1.Caption := '1';
  speedbutton2.Caption := '1';
  speedbutton3.Caption := '1';
  sleep(3500);
  speedbutton1.Caption := '';
  speedbutton2.Caption := '';
  speedbutton3.Caption := '';
end;




또 아래의 경우엔 왜 화면에 똑같이 나오지 이해를 할수없습니다.
sleep이 위에있나 아래에 있나 똑같은데...왜그런지 좀 알려주세요.

procedure TForm1.Button1Click(Sender: TObject);
begin
  speedbutton1.Caption := '1';
  speedbutton2.Caption := '1';
  speedbutton3.Caption := '1';
  sleep(3500);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  sleep(3500);
  speedbutton1.Caption := '2';
  speedbutton2.Caption := '2';
  speedbutton3.Caption := '2';
end;
3  COMMENTS
  • Profile
    박서규 2002.08.23 11:45

    이렇게 해보세여,,,

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      speedbutton1.Caption := '1';
      speedbutton2.Caption := '1';
      speedbutton3.Caption := '1';
      Application.ProcessMessages;  //얘가 하는일은 화면처리같은경우
      //해당 Application의  Message queue에 쌓여있는 일을 하고 그 다음
      //으로 넘어가게 하는거라서 원하시는 결과를 얻을 수 있을겁니다.
      //하지만 남발해서 좋을건 없습니다...
      sleep(3500);
      speedbutton1.Caption := '';
      speedbutton2.Caption := '';
      speedbutton3.Caption := '';
    end;

  • Profile
    Runo 2002.08.23 17:24
    "Application.ProcessMessages"도 가능하지만
    "update"도 가능할거 같습니다.

      speedbutton1.Caption := '1';
      speedbutton2.Caption := '1';
      speedbutton3.Caption := '1';
      update;
      sleep(3500);
      speedbutton1.Caption := '';
      speedbutton2.Caption := '';
      speedbutton3.Caption := '';


  • Profile
    오두환 2002.08.23 19:45
    답변감사드립니다.