안녕하세여.
먼저 procedure 프로시저명(var msg : TMessage);
이것은 함수의 argument로 앞에 var이 붙은 것은 Call by referance를 의미합니다.
일반적으로 procedure 프로시저명(msg : TMessage);로 선언하게 되면,
procedure 프로시저명 내에서 msg에 어떤 변화가 일어나도 이함수로 돌아가면 msg는 호출하기전 상태 그대로로 되고요(Call By Value),
procedure 프로시저명(var msg: TMessage); 로 선언하게 되면,
procedure 내에서 msg의 어떤 변화가 있게 되면, 이 함수(?)를 호출한 곳의 값도 변화하게 되죠(Call by Reference)
그리고, procedure 프로시저명(Sender: TObject);
var
Msg : TMessage;
이런 식으로 선언한 것은 이 함수에서 Msg라는 변수를 쓰겠다는 뜻이고요.
다시질문염~~지성.
구럼..
procedure 프로시저명(var msg : TMessage);로 선언하는걸 잘 이해를
못하겠거덩염??
여의 msg넌 변수가 되는건가염? 이변수는 전역변수로 private에
선언얼 해주는걸 쓰는건가염?? 그리공 이 함수를 호출한 곳의 값도 변화된다고
하셨는뎅 구럼 전역변수의 값이 완전이 바뀌게 되는 건가염??
구리공 한가지 더 질물염..지성.
editbox나 spinedit의 value 값들은 프로그램상에서 한번 정해지면
프로그램이 끝나면 원래의 상태 값으로 돌아가 잖아염..
구럼 이런식으로 변수 선언얼 해주면 계속 값들을 밖아 줄수 있는간가염??
ㅠㅠ... 답변점.부탁드립니당...지성..
클래스에서 정의된 변수만 을 사용가능한것으로 알고있고
아래 2 는 프로시져안에서만 사용하는 일반적인 지역변수입니다.