C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9878] Re:[질문] 빌더에서 클래스
에보니.^0^ [mortalpain] 830 읽음    2001-08-14 11:40
안녕하세요 에보니에요.

말은 필요 없고 직접 보여 드리져. 저의 경우 업무 로직은 전부 클래스화 시킴니다.

다음 클래스는 제가 만든 간단한 클래스중의 하나인데...(식탁 클래스임) 함 보세요

클래스 헤더 화일입니다.

#ifndef TableH
#define TableH

#include <Classes.hpp>
#include <StdCtrls.hpp>

enum TableMode
{
        ADDMENU,
        POPMENU,
        READ,
        MERGE,
        SEPARATE,
        MOVE,
        CHECKOUT,
        RESERVE
};

#include <DB.hpp>
#include <DBTables.hpp>

class Table
{
private:
        TQuery *Data;                   // Database Connect, Access.

        void __fastcall Configure();    // Configure all property.

public:
        __fastcall Table();      // Constructor.
        __fastcall ~Table();     // Destructor.

        // Proprty of this class.

        int Index;               // Current Index.
        int Target;              // Target Index.
        int Number;              // Entire Numbers of Table.
        int Total;               // Total Money of Table.
        int Master;              // Number of Master Table.

        TableMode Mode;          // Current table Mode.

        String InBox;            // Current table Input.
        String Code;             // Code purified by InBox.
        String CurrentMenu;      // Current Menu.
        String State;            // Current Table State.
        String AppPath;          // Path of Application

        TStringList *Mois;       // Menu list of Current Table.
        TStringList *Info;       // State list of Current Table.

        // Method of this class.

        void __fastcall Activate();           // Activate Target Table.
        void __fastcall Initialize();         // Initialize Target Table.
        void __fastcall CheckOut();           // Check out Current Table.

        void __fastcall Save();               // Save Target Table.
        void __fastcall Load();               // Load Target Table.

        void __fastcall Merge();              // Merge Current Table With Target Table.
        void __fastcall Separate();           // Separate Target Table from Current Table.
        void __fastcall Transfer();           // Transfer Current Table to Target Table.
        void __fastcall Reserve();            // Reserve Target Table.

        void __fastcall ReleaseMergeChild();  // Release Merging child table.
        void __fastcall TransferMergeChild(); // Transfer Merging child table.

        void __fastcall AddMenu(String MenuName, int Volume);
        void __fastcall PopMenu(String MenuName, int Volume);
        void __fastcall PopMenuInMaster(String Menu, int Volume);
        void __fastcall MenuClear();          // Clear Menu List.

        bool __fastcall ExistMenu(String MenuCode); // Check whether Item is in DB.
        bool __fastcall GetMenuName(String Code);   // Get Menu Name from Code.

        int  __fastcall GetMenuPrice(String MenuName); // Get Menu Price from Menu Name.

        bool __fastcall CheckCode();    // Check Input.
        bool __fastcall IdentifyCode(); // Identify Code and Mode.
};

#endif

cpp 소스에서는 생성자와 파괴자만 보여 드릴께여.

#include "Table.h"

__fastcall Table::Table()
{
   Index  = 1;
   Target = 1;
   Master = 0;
   Total  = 0;

   AppPath = ExtractFileDir(Application->ExeName);

   Mois = new TStringList();
   Info = new TStringList();

   Data = new TQuery(Application);

   Data->DatabaseName = AppPath + "\\Data\\";
}

__fastcall Table::~Table()
{
   delete Mois, Info, Data;
}

이하 헤더에서 선언한 멤버함수들의 임플리멘테이션~

............................................

그리고 실제 폼에서

TMainForm *MainForm;

__fastcall TMainForm::TMainForm(TComponent* Owner)
        : TForm(Owner)
{
   table = new Table();

   table->Mode = ADDMENU;
}

이렇게 하면 폼이 파괴될때 자동으로 파괴자가 호출이 됩니다.


생성자와 파괴자 부분에서 님이 필요하신 답변이 있는듯 하군요.

그럼 즐 프 하세용~ *^0^*

+ -

관련 글 리스트
9867 [질문] 빌더에서 클래스 지영배 765 2001/08/14
9979     Re:[질문] 빌더에서 클래스 김민호 803 2001/08/17
9878     Re:[질문] 빌더에서 클래스 에보니.^0^ 830 2001/08/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.