제가 왼쪽 오른쪽 하고 헷깔려 군요.
집에만 몇칠간 있다보니 정신이 혼미해서 인가...
다시 답변 올립니다.
shl 은 Shift Left 라는 말입니다.
전산학을 약간 공부하셨다면 아시겠지만,
왼쪽으로의 한번의 시프트는 곱하기 2를 말하고,
오른쪽으로의 한번의 시프트는 나누기 2를 말합니다.
10은 2진수로 1010으로 나타낼수 있죠.
그것을 왼쪽으로 시프트 1 시키면
10100 이 됩니다. 즉 십진수로 20이 되는 겁니다.
시프트를 세번 시키면 2^3=8 로 곱하는 것이 됩니다.
testval = (deltay shl 3) div deltax;
는 deltay을 8로 곱하고 다시 deltax로 나누어 정수값을 얻는
것입니다.
그리고, 파스칼에서는 with라는 명령어가 있습니다.
이건 언제 쓰냐면
클래스가 있다면,
음, 예를 들면, MyClass라는 클래스가 멤버 변수로
A,B,C,D라는 4개의 integer를 가지고 있다면,
그것에 값을 넣기 위해선
MyClass.A := 5;
MyClass.B := 10;
MyClass.C := 15;
MyClass.D := 20;
의 형태로 MyClass가 계속 반복되어 사용됩니다.
이것을 파스칼에서는 with 라는 예약어로 간단히 만들 수 있죠.
with MyClass do
begin
A := 5;
B := 10; //즉, MyClass.B := 10과 동일한 형태..
C := 15;
D := 20;
end
로 간단히 나타 낼수 있는 겁니다.
따라서, 질문하신 with PaintBox1.Canvas do 는
do 다음에 오는 것이 PaintBox1.Canvas의 멤버변수이거나, 함수가 오겠죠.
일일이 PaintBox1.Canvas.Font, PaintBox1.Canvas.Brush.Color 등을 할
필요가 없이
with PaintBox1.Canvas do
beign
Font := ....
Brush.Color :=....
end
등으로 나타낼 수 있는 겁니다.
유수~
|