|
: DriveComboBox를 바꾸면 자동으로 DirectoryListBox와 FileListBox의 프로퍼티가 바뀐다는 뜻인지요?
맞습니
DirectoryListBox에는 그것하고 연결되는 DriveComboBox를 선택하는 프로퍼티가 있습니다.
마찬가지로 FileListBox에는 DirectoryListBox를 선택하는 프로퍼티가 있고요.
함 찾아보세요.
상위 콤포넌트가 바뀌게 되면 자동으로 내용이 업데이트 될수 있도록 만들어져 있습니다.
음... 거꾸론가(?)
DirveComboBox에 DirectroyListBox 선택 프로퍼티가 있울것도 같은데요. ^^;
지금 컴에 씨빌더가 안깔려 있서 확인을 못합니다. ㅋㅋ
: 그리고, DirectoryListBox1->Drive = FileListBox1->Drive = DriveComboBox1->Drive; 는
: 그리고 위의 문장 자체가 틀린 문장이 아니지 안나요?
: 저것들 전부다 char 형인데.. 예전에 C 에서 a=b=c; 라는 명령 썼던것 같은데..
틀린겁니다!!
이건 확실히 알아두셔야 하는건데요.
씨 빌더에서 Property는 일반 변수라고 생각해서는 안됩니다.!!!
프로퍼티에 데이터 하나를 넣는 간단한 코드에도 실제로는 그 프로퍼티에 연결된 함수가 실행되도록
구조가 되어 있습니다. ( 책에서 VCL콤포넌트 만드는 예제를 함 보시면 이해가 빠를듯.. )
따라서 프로퍼티가 그 데이터를 저장하고 있는 메모리 자체라고 생각하시면 안됩니다.
함수에 의해 리턴된 값 뿐이니까요.
음.. 쫌 이해가 안되실것 같기도 하지만..
암튼.. 그래서 일반 변수는 a = b = c; 이런식으로 쓸수 있지만
프로퍼티는 위처럼 연결해서 쓸 수가 없습니다.
(개인적으로는 컴파일러를 쫌 고치면 될것도 같은데...어쨌든 지금은 안되져..^^)
DirectoryListBox1->Drive = DriveComboBox1->Drive;
FileListBox1->Drive = DriveComboBox1->Drive;
꼭 이렇게 써야합니다.
그럼..
|