수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694996
  • Today | 741
  • Yesterday | 606

Programming/C++2006/01/08 08:19

프로그램 개요와 고객 그룹 관리 - 2

그룹 관리 메뉴
이번에는 두 번째 메뉴인 [그룹 관리] 메뉴를 살펴보자. [그룹 관리]를 구현한 클래스는 TManageGroup 클래스이며 HBox에서 상속받았다. 전체 레이아웃을 보면 두 개의 VBox 안에 TCustomerTable과 버튼, TTreeControl과 버튼, 콤보 박스로 되어있다. 두 개의 복잡한 레이아웃은 클래스로 만들어서 TCustomerTable 자체의 레이아웃은 단순해졌다.
<화면 3>에서 보듯이 왼쪽은 고객의 정보를 보여주는 테이블이다. 간단하게 RecordGrid를 사용해도 되겠지만 개발자나 사용자의 요구는 다양하기 때문에 완전히 새롭게 테이블로 구성했다. 그리고 오른쪽은 트리 컨트롤로 컬에서 기본적으로 제공하는 것은 아니고, 간단한 작업을 통해 직접 만든 것이다. 물론 새로 만드는 것이 다른 언어처럼 어렵다면 컬에서 제공하는 것을 썼겠지만 기쁘게도 컬로는 매우 쉽게 구현할 수 있다.
<화면 3>의 동작 방식은 왼쪽에서 사용자를 드래그해서 오른쪽의 트리 컨트롤의 폴더에 드롭하면 그대로 추가된다. 그리고 오른쪽의 트리 컨트롤에서는 새로운 하위 그룹을 만들거나 삭제, 이름 변경 등을 할 수 있도록 팝업 메뉴가 지원된다. DHTML과 자바스크립트만 가지고는 결코 쉽지 않을 작업이지만, 소스를 보면 쉽게 구현되었음을 알 수 있을 것이다.






TCustomerTable
왼쪽 테이블을 구성하는 TCustomerTable 클래스는 TBaseTable 테이블에서 상속받았다. 테이블의 컬럼은 TTableColumn 클래스이며 테이블의 각 셀은 TTableCell 클래스이다. 가장 핵심인 TBaseTable은 ScrollBox에서 상속받았다. <그림 4>와 같이 ScrollBox 안에 VBox를 이용해서 header와 body 테이블을 따로 구성했다. 자세한 내용은 소스를 참조하기 바란다.
이제 실제 테이블을 구성한 TCustomerTable 클래스를 살펴보도록 하자. 이 클래스는 TBaseTable에서 상속받았기 때문에 수정 없이 그냥 사용한다면 전달된 RecordSet의 모든 필드를 다 표시한다. 그래서 RecordSet 중에서 특정 필드만 보여주기 위해 {get-colums} 메쏘드를 오버라이딩(overriding)했다. 그리고 {get-body-table-cell} 메쏘드를 오버라이딩하여 각 셀(TTableCell)의 모양을 원하는 형태로 정의했다. 상세한 메쏘드의 구현은 소스를 보면 쉽게 이해할 수 있을 것이다.


"C++" 카테고리의 다른 글
  • 읽어 볼 만한 C++ Book Series (0)2006/07/08
  • 프로그램 개요와 고객 그룹 관리 - 3 (0)2006/01/08
  • 프로그램 개요와 고객 그룹 관리 - 2 (0)2006/01/08
  • 프로그램 개요와 고객 그룹 관리 - 1 (0)2006/01/08
  • C++ 컴파일과 링크 구조를 통한 링키지의 이해 - 3 (0)2005/09/10
2006/01/08 08:19 2006/01/08 08:19
Posted by webdizen
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/1636

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 1542 1543 1544 1545 1546 1547 1548 1549 1550 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • 프로그래머의 조건
  • Game
  • 동물자연과학대학
  • Iterator
  • Templates
  • 트레이
  • Project
  • SQL Server
  • 순환운동
  • 비전
  • Oracle
  • XML
  • 발렌타인 마스터즈
  • 학군단
  • OTL
  • ucd-snmp
  • 뉴욕타임즈
  • WORLDCOMP
  • 로그 분석
  • 형식화된 입출력

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 경청... 너무나 중요한데.......
    webdizen 14:59
  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Polarux - Linuxing
      • Rodman®
      • 까만 나비
      • 나를 가꾸는 시간.
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.