제가 'circle'이라는 TShade를 timer를 이용하여 일정 시간마다 폼 위의 원(circle)을 움직이는 프로그램을 만들었거든요..
원래는 circle 위에서 마우스 버튼을 누를 때마다 원이 조금씩 움직이게 하는
프로그램이었어요.
TShade(Name:circle) 의 event프로시저
-> procedure TForm1.circleMouseDown(Sender: TObject; Button: MouseButton; Shift: TShiftState; X, Y: Integer);
begin
// 원이 움직이는 (되는!) 코드
end;
알고리즘에는 전혀 문제가 없습니다. 근데..
timer에 위의 MouseDown 이벤트가 연결되어 실행되도록 하려면 어케해야져?
알려 주셈...ㅠ_ㅠ 책도 다 허접만 있어서리..
p.s : 요컨데.. 이걸 몰라서 위 프로시저(mousedown) 랑 똑같은 코드를
타이머에 삽입하면 되기는 해요(폼 생성과 동시에 원이 스스로 움직임 ->
정지시키고(;타이머.enable:= false)서는 원을 클릭하면 한 프레임(?)씩만 움직임)
그치만 너무 무식하게 같은 코드가 두번이나 쓰이는게 싫어서요.
그냥 일정 클록마다 원 위에서 마우스를 누르는 프로시저가 실행되게 하고 싶은데..
방법을 모르겠더라구여.
circleMouseDown(sender); 뭐 이케 쳐도 'Not enough actual parameter'
나오고여.
ㅠ_ㅠ 흑흑....도와주세여~
> 제가 'circle'이라는 TShade를 timer를 이용하여 일정 시간마다 폼 위의 원(circle)을 움직이는 프로그램을 만들었거든요..
>
> 원래는 circle 위에서 마우스 버튼을 누를 때마다 원이 조금씩 움직이게 하는
> 프로그램이었어요.
>
> TShade(Name:circle) 의 event프로시저
>
> -> procedure TForm1.circleMouseDown(Sender: TObject; Button: MouseButton; Shift: TShiftState; X, Y: Integer);
> begin
> // 원이 움직이는 (되는!) 코드
> end;
>
> 알고리즘에는 전혀 문제가 없습니다. 근데..
> timer에 위의 MouseDown 이벤트가 연결되어 실행되도록 하려면 어케해야져?
> 알려 주셈...ㅠ_ㅠ 책도 다 허접만 있어서리..
>
> p.s : 요컨데.. 이걸 몰라서 위 프로시저(mousedown) 랑 똑같은 코드를
> 타이머에 삽입하면 되기는 해요(폼 생성과 동시에 원이 스스로 움직임 ->
> 정지시키고(;타이머.enable:= false)서는 원을 클릭하면 한 프레임(?)씩만 움직임)
>
> 그치만 너무 무식하게 같은 코드가 두번이나 쓰이는게 싫어서요.
> 그냥 일정 클록마다 원 위에서 마우스를 누르는 프로시저가 실행되게 하고 싶은데..
> 방법을 모르겠더라구여.
>
> circleMouseDown(sender); 뭐 이케 쳐도 'Not enough actual parameter'
> 나오고여.
> ㅠ_ㅠ 흑흑....도와주세여~
//TMouseButton = (mbLeft, mbRight, mbMiddle);
//type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
예)
circleMouseDown(Sender, mbLeft, [ssRight], 100, 100);