본문 바로가기

Window Programming/VB

VB Property Let / Set

property let은 property set과 같은 기능을 합니다.

let은 개체 형식이 아닌 변수가 인수로 쓰일 때 사용되고

set은 개체 형식이 인수로 사용될 때 쓰입니다.

그건 비베에서 개체변수를 설정할 때는 set을 쓰는 걸 봐도 알 수 있죠.

예를 들어 다음과 같이 form 개체 변수를 선언하고...

 dim frm as form    ' 이 변수에 form1을 설정할 때는...
set frm = form1
   
참고로 비베에서 개체 변수가 아닌 것은 num = 122와 같이 쓰지만
let num = 122와 같이 쓸 수도 있습니다.(이게 정석.)

다음은 property set 프로시저를 이용하는 예로써 form1이
form2를 로드시킨 뒤, form1이 언로드됩니다.
그러나 form2가 언로드되면 자동으로 form1이 다시 로드되게 합니다.


1. 새로운 프로젝트를 시작하고 form1에 command1을 추가하고 다음의 코드를 붙여넣습니다.

option explicit
private sub command1_click()
''내가 form2를 호출했음을 알려서 ''form2가 언로드될 때 나를 로드하게 함.
set form2.calledform = me
form2.show
unload me
end sub

2. form2를 추가하고 다음의 코드를 붙여넣습니다.

option explicit
private mcalledform as form
private sub form_unload(cancel as integer)
''만약 나를 호출한 폼이 있다면 그 폼을 로드함.

if not mcalledform is nothing then
mcalledform.show
set mcalledform = nothing
end if
end sub
''다른 데서 나의 mcalledform 변수에 값을 설정하게 함.
property set calledform(frm as form)
set mcalledform = frm
end property
''다른 데서 나의 mcalledform 변수의 값을 가져오게 함.
property get calledform() as form
set calledform = mcalledform
end property