📄 ch13.htm
字号:
// 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 <vcl\vcl.h>
#include <vcl\clipbrd.hpp>
#include <vcl\registry.hpp>
#pragma
hdrstop
#include "Main.h"
#include "DMod1.h"
#include "AboutBox1.h"
#include "FileDlg1.h"
#include "Category1.h"
#pragma resource "*.dfm"
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<TComponent *>(Sender)->Tag)
{
case stFirst:
DMod->AddressTable->IndexName = "FNameIndex";
break;
case stLast:
DMod->AddressTable->IndexName = "LNameIndex";
break;
case stCompany:
DMod->AddressTable->IndexName = "CompanyIndex";
break;
}
}
void __fastcall TForm1::Copy1Click(TObject *Sender)
{
if (dynamic_cast<TDBEdit*>(ActiveControl))
(dynamic_cast<TDBEdit*>(ActiveControl))->CopyToClipboard();
if (dynamic_cast<TDBMemo*>(ActiveControl))
dynamic_cast<TDBMemo*>(ActiveControl)->CopyToClipboard();
if (dynamic_cast<TDBComboBox*>(ActiveControl))
Clipboard()->AsText = dynamic_cast<TDBComboBox*>(ActiveControl)->Text;
}
void __fastcall TForm1::CommandClick(TObject *Sender)
{
switch (dynamic_cast<TComponent*>(Sender)->Tag)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -