Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[5749] [답변] BACK99/ 간단한 파스칼 문법좀 설명을..
pcni [ ] 820 읽음    1999-02-17 18:36

제가 왼쪽 오른쪽 하고 헷깔려 군요.

집에만 몇칠간 있다보니 정신이 혼미해서 인가...

다시 답변 올립니다.

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

등으로 나타낼 수 있는 겁니다.


                      유수~




+ -

관련 글 리스트
5749 [답변] BACK99/ 간단한 파스칼 문법좀 설명을.. pcni 820 1999/02/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.