본문 바로가기
프로그래밍/PC

Turbo Vision #1

by 사악신 2012. 11. 12.

Turbo Vision 1.0 (아마도...)에 대한 개인적인 감상 or 기록입니다. 공부하길 원한다면 도움말을 살펴보거나, http://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/pascal/PasHTM3/pas/pasles03.html 의 글을 참고하기 바랍니다.


터보 비전 객체의 계층도는 다음과 같다.



최고 조상님은 TObject 가 되시겠고, 모든 Visible 객체는 TView 를 상속받는다. 보통 TView 를 인스턴스화하여 사용하지는 않는다.(상속용) 멤버 변수와 메소드는 다음과 같다.






각각에 대한 상세 설명은 도움말을 참고하면 되겠고... 프로그램의 기준이 될 놈들은 TGroup 을 상속받은 것 중 TProgram, TApplication 이 되시겠다. TGroup 은 Composite 패턴을 사용하는 것으로 추측된다.(TV C++ 소스가 존재하나 살펴보기 귀찮음...) 추측 근거는 다음의 문구...



내부적으로 리스트를 사용하여 자신을 포함한 TView 를 상속받은 놈들을 관리한다. 즉, 리스트의 요소로 TView 를 사용한다는 소리... 또 다른 증거~ 리스트에 추가하는 Insert 의 파라미터가 TView 의 포인터형 되시겠다.



GoF 의 Design Patterns 책이 1994년에 출판됐으니~ 1990 년 TP 6.0 에 이 놈이 포함되어 나를 괴롭힌 건 어찌보면 당연한 일이었다. 덕분에 OOP 에 대한 거부감이 싹을 틔우기 시작했고... 이것은 다시 윈도우즈로 시스템 환경이 변경되면서 자연스레 프로그래밍과 멀어지는 계기가 되었다. 이후 델파이가 등장하고 한참이 지나서야 다시 프로그래밍을 할 수 있었다. 뭐, 역사는 반복되어 지금은 한창 모바일로 시스템 환경이 변화하고 있는 듯 하다.(어떡하지? ㅋㅋ)


보통의 튜토리얼에서는 TApplication 부터 설명이 시작된다. 하지만, 나의 관심사는 TProgram~ 왜냐구? 그건 TP 의 에디터가 이놈을 상속받으니까~ 20년도 지난 마당에 TV 를 까보는 이유도 다 TP 때문인 것이다. 어디보자...



모든 Turbo Vision 어플리케이션의 기본적인 템플릿이란다. 우측 상단의 APP.TPU 를 보라. 그렇다. 소스가 제공안되고 유닛만 제공된다. 이 후, Turbo Vision 이 오픈 소스가 되었지만 C++ 소스만 풀렸고 파스칼은 안풀렸다. 제길... ㅠㅠ 각설하고 좀 더 살펴볼까?



TApplication 과의 차이는 생성자와 소멸자 정도인 듯...



즉, 생성자와 호출자에서 사용하는 메소드들을 수동으로 구현하여야한다는 얘기... 그리고 TDeskTop, TStatusLine, TMenuBar 를 Insert 해서 사용하라는 듯 하다.(뭐, 이름만으로 설명 끝이네...)


끝으로 메소드들~



초간단... ^^




반응형

댓글