안녕하세요?
다른 사람이 짠 프로그램을 보다가 문득 궁금한점이 생겨서 이렇게 글 남깁니다.
private에
a : bool
요렇게 a라는 변수의 변수타입이 정의 되어있습니다.
그런데.. TForm.FormActivate되면서.. if문이 한줄 들어가있는데요..
if not a then BtnTest.Click <-요겁니다..
제가 궁금한건..
위에서 a := 0; 요렇게 선언을 해줘야 저 구문이 제대로 먹힐거 같은데요..
별다른 선언이 없어두 동작을 잘 하네요..
bool라는 글자위에 마우스를 올리면..
type Windows.BOOL:LongBool이라고 나옵니다..
오브젝트 파스칼에 의하면 LongBool은 0(False) 또는 0이 아닌값(True)을 갖는 다구 되어있는데요..
그렇담.. 정확히 0을 선언한게 아니기 때문에 a값은 True가 되어야 하는게 아닌가요?
a가 True값을 가지면 BtnTest.Click문이 작동을 안할텐데..
그래서 프로그램에서 실제로 어떻게 돌아가는지 확인해 보고자
if문 앞에 showMessage(BoolToStr(a))를 해보면.. 0이 나옵니다..
bool, boolean으로 검색해봐도.. 명쾌한 답을 얻을수 없었기에 이렇게 질문을 던집니다.
고수 여러분 도와주세요~
객체를 생성하면 모든 값들은 0으로 초기화 됩니다. 때문에 특별히 초기화를 안해주셔도 0이 들어가 있습니다.
^^ 항상 즐코하세요...