⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch13.htm

📁 好书《C++ Builder高级编程技术》
💻 HTM
📖 第 1 页 / 共 5 页
字号:

// Project: Address2

// Copyright (c) 1997 by Charlie Calvert

//--------------------------------------------------------------------------

#ifndef MainH

#define MainH


//--------------------------------------------------------------------------

#include <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\ExtCtrls.hpp>


#include <vcl\Buttons.hpp>

#include <vcl\DBCtrls.hpp>

#include <vcl\Mask.hpp>

#include <vcl\DBTables.hpp>

#include <vcl\DB.hpp>

#include <vcl\Menus.hpp>

#include <vcl\Dialogs.hpp>

#include 
<vcl\Report.hpp>

#include <vcl\ComCtrls.hpp>

#include <vcl\DBGrids.hpp>

#include <vcl\Grids.hpp>

#define READ_ONLY_STRING " [Read Only Mode]"

#define EDIT_MODE_STRING " [Edit Mode]"

enum 
TSearchSortType {stFirst, stLast, stCompany};

enum TColorType {ccForm, ccEdit, ccEditText, ccLabel, ccPanel};

enum TChangeType {tcColor, tcFontColor};

enum TCommandType {ctClose, ctInsert, ctPrior,

                  ctEdit, ctNext, ctCancel,

                  
ctPrint, ctFirst, ctLast,

                  ctPrintPhone, ctPrintAddress,

                  ctPrintAll, ctDelete};

class TForm1 : public TForm

{

__published:    // IDE-managed Components

  TPanel *Panel2;

  TButton *InsertBtn;

  TButton 
*EditBtn;

  TButton *CancelBtn;

  TMainMenu *MainMenu1;

  TMenuItem *File1;

  TMenuItem *PrintAddresses1;

  TMenuItem *PrintPhoneOnly1;

  TMenuItem *PrintEverything1;

  TMenuItem *Print1;

  TMenuItem *N1;

  TMenuItem *Exit1;

  TMenuItem 
*Edit1;

  TMenuItem *Copy1;

  TMenuItem *Cut1;

  TMenuItem *Paste1;

  TMenuItem *Options1;

  TMenuItem *Search1;

  TMenuItem *Filter1;

  TMenuItem *Category1;

  TMenuItem *Sorts1;

  TMenuItem *FirstName1;

  TMenuItem *LastName1;

  TMenuItem 
*Company1;

  TMenuItem *Colors1;

  TMenuItem *FormColor1;

  TMenuItem *EditColor1;

  TMenuItem *EditText1;

  TMenuItem *Labels1;

  TMenuItem *Panels1;

  TMenuItem *Marks1;

  TMenuItem *MarkAll1;

  TMenuItem *ClearAllMarks1;

  TMenuItem 
*PrintMarkedtoFile1;

  TMenuItem *Help1;

  TMenuItem *About1;

  TColorDialog *ColorDialog1;

  TDBNavigator *DBNavigator1;

  TStatusBar *StatusBar1;

  TBevel *Bevel1;

  TPanel *Panel1;

  TLabel *Label2;

  TLabel *Label3;

  TLabel *Address1;

  
TLabel *Address2;

  TLabel *City;

  TLabel *State;

  TLabel *Zip;

  TLabel *Company;

  TLabel *HPhone;

  TLabel *WPhone;

  TLabel *Fax;

  TLabel *Comment;

  TLabel *EMail1;

  TLabel *Category;

  TLabel *EMail2;

  TSpeedButton 
*SpeedButton1;

  TDBEdit *LNameEdit;

  TDBEdit *FNameEdit;

  TDBEdit *Address1Edit;

  TDBEdit *Address2Edit;

  TDBEdit *CityEdit;

  TDBEdit *StateEdit;

  TDBEdit *ZipEdit;

  TDBEdit *CompanyEdit;

  TDBEdit *HomePhoneEdit;

  TDBEdit 
*WorkPhoneEdit;

  TDBEdit *FaxEdit;

  TDBEdit *EMail1Edit;

  TDBEdit *EMail2Edit;

  TDBMemo *CommentMemo;

  TDBLookupComboBox *CategoryCombo;

  TButton *DeleteBtn;

  TDBGrid *DBGrid1;

  TMenuItem *FNameSearch;

  TMenuItem *LNameSearch;

  
TMenuItem *CompanySearch;

  TMenuItem *N3;

  TMenuItem *System1;

  TMenuItem *Defaults1;

  TMenuItem *Blues1;

  TMenuItem *N4;

  TMenuItem *SaveCustom1;

  TMenuItem *ReadCustom1;

  TMenuItem *N2;

  TMenuItem *ShowOnlyMarked1;

  void 
__fastcall Copy1Click(TObject *Sender);

  void __fastcall CommandClick(TObject *Sender);

  void __fastcall AddressSourceStateChange(TObject *Sender);

  void __fastcall FormShow(TObject *Sender);

  void __fastcall About1Click(TObject *Sender);

  
void __fastcall CommandSortClick(TObject *Sender);

  void __fastcall CommandSearchClick(TObject *Sender);

  void __fastcall CommandColorClick(TObject *Sender);

  void __fastcall System1Click(TObject *Sender);

  void __fastcall 
Defaults1Click(TObject *Sender);

  void __fastcall Blues1Click(TObject *Sender);

  void __fastcall SaveCustom1Click(TObject *Sender);

  void __fastcall ReadCustom1Click(TObject *Sender);

  void __fastcall Filter1Click(TObject *Sender);

  void 
__fastcall AddressSourceDataChange(TObject *Sender, TField *Field);

  void __fastcall Category1Click(TObject *Sender);

  void __fastcall MarkAll1Click(TObject *Sender);

  void __fastcall ClearAllMarks1Click(TObject *Sender);

  void __fastcall 
SpeedButton1Click(TObject *Sender);

  void __fastcall FormDestroy(TObject *Sender);

  void __fastcall ShowOnlyMarked1Click(TObject *Sender);

private:        // User declarations

  AnsiString FCaptionString;

  void DoSort(TObject *Sender);

  void 
HandleEditMode();

  void SetReadOnly(BOOL NewState);

  void PrintData(TCommandType Command);

  void SetEdits(TColor Color);

  void SetEditText(TColor Color);

  void SetLabels(TColor Color);

  void SetPanels(TColor Color);

  TColor 
GetColor(TObject *Sender);

public:         // User declarations

  virtual __fastcall TForm1(TComponent* Owner);

};

//--------------------------------------------------------------------------

extern TForm1 *Form1;


//--------------------------------------------------------------------------

#endif

</FONT></PRE>
<P><A NAME="Heading17"></A><FONT COLOR="#000077"><B>Listing 13.2. The main form for
the Address2 program.</B></FONT></P>
<PRE><FONT 
COLOR="#0066FF">///////////////////////////////////////

// File: Main.cpp

// Project: Address2

// Copyright (c) 1997 by Charlie Calvert

#include &lt;vcl\vcl.h&gt;

#include &lt;vcl\clipbrd.hpp&gt;

#include &lt;vcl\registry.hpp&gt;

#pragma 
hdrstop

#include &quot;Main.h&quot;

#include &quot;DMod1.h&quot;

#include &quot;AboutBox1.h&quot;

#include &quot;FileDlg1.h&quot;

#include &quot;Category1.h&quot;

#pragma resource &quot;*.dfm&quot;

TForm1 *Form1;

__fastcall 
TForm1::TForm1(TComponent* Owner)

  : TForm(Owner)

{

  FCaptionString = Caption;

  ReadCustom1Click(NULL);

}

void __fastcall TForm1::FormDestroy(TObject *Sender)

{

  SaveCustom1Click(NULL);

}

void TForm1::DoSort(TObject *Sender)

{

  switch 
(dynamic_cast&lt;TComponent *&gt;(Sender)-&gt;Tag)

  {

    case stFirst:

      DMod-&gt;AddressTable-&gt;IndexName = &quot;FNameIndex&quot;;

      break;

    case stLast:

      DMod-&gt;AddressTable-&gt;IndexName = &quot;LNameIndex&quot;;

      
break;

    case stCompany:

      DMod-&gt;AddressTable-&gt;IndexName = &quot;CompanyIndex&quot;;

      break;

  }

}

void __fastcall TForm1::Copy1Click(TObject *Sender)

{

  if (dynamic_cast&lt;TDBEdit*&gt;(ActiveControl))

    
(dynamic_cast&lt;TDBEdit*&gt;(ActiveControl))-&gt;CopyToClipboard();

  if (dynamic_cast&lt;TDBMemo*&gt;(ActiveControl))

    dynamic_cast&lt;TDBMemo*&gt;(ActiveControl)-&gt;CopyToClipboard();

  if (dynamic_cast&lt;TDBComboBox*&gt;(ActiveControl))

    
Clipboard()-&gt;AsText = dynamic_cast&lt;TDBComboBox*&gt;(ActiveControl)-&gt;Text;

}

void __fastcall TForm1::CommandClick(TObject *Sender)

{

  switch (dynamic_cast&lt;TComponent*&gt;(Sender)-&gt;Tag)

  {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -