Q&A

  • 증가시키는걸 눈에 보일수있게.. 하려면..?? ^^
음..다름이 아니라...



버튼을 누르면 1부터 10000까지 증가하는 과정을 볼려구 하는데여...



이렇게 했는데여... ^^;;



procedure TForm1.Button2Click(Sender: TObject);

var

cnt : integer;



begin

cnt := 1;



with cnt < 10000 do

begin

label1.caption := cnt;



cnt := cnt + 1;

end;



end;



쿠쿠쿠쿠.. 이렇게 했는데.. 끝에 값 9999이거만 찍혀여... ^^;;



왜그럴까여... 궁금해랑.... ㅠ.ㅠ

3  COMMENTS
  • Profile
    최용일 2001.02.22 02:51
    안녕하세요. 최용일입니다.



    윈도우에서 화면에 그리는 메세지는 우선순위가 가장 낮습니다. 빠른 속도를 위하여..



    그렇기 때문에 여러번의 페인트 메세지가 동시에 들어오면 화면에 그리는 거를 윈도우가



    막아버립니다. 때문에 맨 나중에 들어오는 메세지만 처리가 되는거죠...



    그럴땐 강제적으로 다시 그려주도록 해주시면 됩니다.



    해보시면 아시겠지만 속도에서 많은 차이가 나고, 또한 깜빡거릴겁니다...



    그리고 아래 while문(with가 아니라 while이겠죠?)보다는 for문을 사용하시는게 더 좋을거 같군요...



    procedure TForm1.Button2Click(Sender: TObject);

    var

    Cnt : integer;

    begin

    Cnt := 1;

    while Cnt < 10000 do

    begin

    Label1.Caption := IntToStr(Cnt);

    Label1.Refresh; // 강제적으로 다시 그리기...

    // = Application.ProcessMessages;

    // = Label1.Repaint;

    Cnt := Cnt + 1;

    end;

    end;



    for문을 이용...



    procedure TForm1.Button2Click(Sender: TObject);

    var

    Cnt : integer;

    begin

    for Cnt := 1 to 9999 do

    begin

    Label1.Caption := IntToStr(Cnt);

    Label1.Refresh; // 강제적으로 다시 그리기...

    // = Application.ProcessMessages;

    // = Label1.Repaint;

    end;

    end;



    ^^ 항상 즐코하세요...



    김양미 wrote:

    > 음..다름이 아니라...

    >

    > 버튼을 누르면 1부터 10000까지 증가하는 과정을 볼려구 하는데여...

    >

    > 이렇게 했는데여... ^^;;

    >

    > procedure TForm1.Button2Click(Sender: TObject);

    > var

    > cnt : integer;

    >

    > begin

    > cnt := 1;

    >

    > with cnt < 10000 do

    > begin

    > label1.caption := cnt;

    >

    > cnt := cnt + 1;

    > end;

    >

    > end;

    >

    > 쿠쿠쿠쿠.. 이렇게 했는데.. 끝에 값 9999이거만 찍혀여... ^^;;

    >

    > 왜그럴까여... 궁금해랑.... ㅠ.ㅠ

  • Profile
    ^-_-^ 2001.02.22 02:40
    yo`



    > label1.caption := cnt;



    요 코드 앞이나 뒤에 다음코드를 넣어보시고 해보시길...



    Label1.Refresh;



    그럼...휘리릭`



    bLue bLood



    김양미 wrote:

    > 음..다름이 아니라...

    >

    > 버튼을 누르면 1부터 10000까지 증가하는 과정을 볼려구 하는데여...

    >

    > 이렇게 했는데여... ^^;;

    >

    > procedure TForm1.Button2Click(Sender: TObject);

    > var

    > cnt : integer;

    >

    > begin

    > cnt := 1;

    >

    > with cnt < 10000 do

    > begin

    > label1.caption := cnt;

    >

    > cnt := cnt + 1;

    > end;

    >

    > end;

    >

    > 쿠쿠쿠쿠.. 이렇게 했는데.. 끝에 값 9999이거만 찍혀여... ^^;;

    >

    > 왜그럴까여... 궁금해랑.... ㅠ.ㅠ

  • Profile
    김양미 2001.02.22 03:13
    ^^;;