Q&A

  • 그림 좌우이동이요~
System의 Ontimer 콤포넌트를 사용하여
Button1 클릭시 Image1컴포넌트가 폼위에서
좌측폼끝에 닿으면 오른쪽으로 이동하다가
오른쪽폼끝에 닿으면 왼쪽으로 이동하는 프로그램
코딩좀 가르쳐 주세요
한쪽이동은 되는데...튕겨져 나오는게 안돼네요
for문을 써야될지...if 문으로 써야될지...
코딩 자세히좀 부탁드립니다.
1  COMMENTS
  • Profile
    최석기 2002.05.08 08:56
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;

    type
      //이동 방향 타입
      TDirect = (mvLeft, mvRight);
      TForm1 = class(TForm)
        Timer1: TTimer;
        Image1: TImage;
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
        Direct: TDirect default mvRight;
      public
        { Public declarations }
      end;

    //한번에 이동할 크기
    const
      MoveSize = 10;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      if Direct = mvRight then begin
      //우측 이동시
        if Image1.Left + Image1.Width >= self.Width then begin
        //오른쪽 끝에 다왔을 경우.
          Direct := mvLeft;
        end
        else begin
          Image1.Left := Image1.Left + MoveSize;
        end;
      end
      else begin
        //좌측 이동시
        if Image1.Left <= 0 then begin
        //왼쪽 끝에 다왔을 경우
          Direct := mvRight;
        end
        else begin
          Image1.Left := Image1.Left - MoveSize;
        end;
      end;
    end;

    end.