但是我加在哪里都市错误的
求高手指点;
8 个解决方案
#1
file->new 选择unit 再写自己的类,比较好
#2
将类的头文件包含进去就行了!
然后在程序中申明实体
然后在程序中申明实体
#3
三个地方都可以
1、自己定义一个:打开一个新的Unit,有就会有Unit*.cpp Unit*.h,在这里面定义,之后,在你要使用的地方实例化。
2、在已存在的Unit上定义。例如你有一个Form,就在他们的.h里定义,在.cpp里写实现的代码。然后实例化,即可使用
3、在一个类里面定义,这是嵌套类的定义方式。你还是先弄清楚我前面说的吧。
1、自己定义一个:打开一个新的Unit,有就会有Unit*.cpp Unit*.h,在这里面定义,之后,在你要使用的地方实例化。
2、在已存在的Unit上定义。例如你有一个Form,就在他们的.h里定义,在.cpp里写实现的代码。然后实例化,即可使用
3、在一个类里面定义,这是嵌套类的定义方式。你还是先弄清楚我前面说的吧。
#4
将头文件和.cpp文件包含工程及可。
#5
// .hpp
class TForm1:public......
{
};
class Tyourclass:pub......
{
};
class TForm1:public......
{
};
class Tyourclass:pub......
{
};
#6
#ifndef GridPrintH
#define GridPrintH
#include <DBGrids.hpp> //包含的相关头文件
#include <Db.hpp>
#include <Printers.hpp>
#include <QuickRpt.hpp>
#include <Qrctrls.hpp>
typedef struct tagFieldType{ //表示表格某一列信息的结构
AnsiString sTitle; //字段标题名称
int iWidth; //表格单元的宽度
TQRLabel *pLabel; //字段标题控件
TQRDBText *pDBText; //显示的数据控件
TQRShape *pShapeTitle, *pShapeData; //字段标题和数据的表格分隔条
} NEWFIELDTYPE;
class TGridPrint{
public:
TGridPrint(TQuickRep *pSrcQuickRep,TDBGrid * pSrcDBGrid,TQRBand *SrcTitleBand1,
TQRBand *SrcColumnHeaderBand1,TQRBand * SrcDetailBand1); //构造函数
~TGridPrint(); //析构函数
void DoPreview(); //报表的打印预览
void SetPrntTitle(AnsiString sTitle); //手工设置表格的总标题
void SetColumnsWidth(int *ColumnsWidth); //手工设置表格各列宽度
void SetHeadRectHeight(int iHeight); //手工设置字段标题行的高度
void SetDetailRectHeight(int iHeight); //手工设置数据行的高度
private:
void AutoAdjustColumnsWidth(); //程序自动调整各列宽度
TDBGrid * pDBGrid; //将要显示的DBGrid
TDataSet * pDataSet; //DBGrid对应数据集
TQuickRep * pQuickRep; //报表控件
TQRBand * TitleBand1; //报表的总标题栏
TQRBand * ColumnHeaderBand1; //报表的字段标题栏
TQRBand * DetailBand1; //报表的数据栏
TQRLabel * pTitleLabel; //总标题控件
TQRShape * pHeadRect, * pDetailRect; //整个字段标题栏、数据栏的表格矩形控件
int iHeadRectHeight, iDetailRectHeight; //对应表格矩形框的高度,它们宽度相同
int _iTotalWidth; //整个表格的总宽度
int _iIntClearance; //表格内部数据列到左表格的距离
int _iFieldCount; //将要打印的字段数目
NEWFIELDTYPE _arrayFieldType[40]; //支持到40个字段的打印
};//上面就是我自已定义的一个GridPrint的类!
//你先生成一个unit文件,然后在要使用地方包含这个头文件!就可以!
#define GridPrintH
#include <DBGrids.hpp> //包含的相关头文件
#include <Db.hpp>
#include <Printers.hpp>
#include <QuickRpt.hpp>
#include <Qrctrls.hpp>
typedef struct tagFieldType{ //表示表格某一列信息的结构
AnsiString sTitle; //字段标题名称
int iWidth; //表格单元的宽度
TQRLabel *pLabel; //字段标题控件
TQRDBText *pDBText; //显示的数据控件
TQRShape *pShapeTitle, *pShapeData; //字段标题和数据的表格分隔条
} NEWFIELDTYPE;
class TGridPrint{
public:
TGridPrint(TQuickRep *pSrcQuickRep,TDBGrid * pSrcDBGrid,TQRBand *SrcTitleBand1,
TQRBand *SrcColumnHeaderBand1,TQRBand * SrcDetailBand1); //构造函数
~TGridPrint(); //析构函数
void DoPreview(); //报表的打印预览
void SetPrntTitle(AnsiString sTitle); //手工设置表格的总标题
void SetColumnsWidth(int *ColumnsWidth); //手工设置表格各列宽度
void SetHeadRectHeight(int iHeight); //手工设置字段标题行的高度
void SetDetailRectHeight(int iHeight); //手工设置数据行的高度
private:
void AutoAdjustColumnsWidth(); //程序自动调整各列宽度
TDBGrid * pDBGrid; //将要显示的DBGrid
TDataSet * pDataSet; //DBGrid对应数据集
TQuickRep * pQuickRep; //报表控件
TQRBand * TitleBand1; //报表的总标题栏
TQRBand * ColumnHeaderBand1; //报表的字段标题栏
TQRBand * DetailBand1; //报表的数据栏
TQRLabel * pTitleLabel; //总标题控件
TQRShape * pHeadRect, * pDetailRect; //整个字段标题栏、数据栏的表格矩形控件
int iHeadRectHeight, iDetailRectHeight; //对应表格矩形框的高度,它们宽度相同
int _iTotalWidth; //整个表格的总宽度
int _iIntClearance; //表格内部数据列到左表格的距离
int _iFieldCount; //将要打印的字段数目
NEWFIELDTYPE _arrayFieldType[40]; //支持到40个字段的打印
};//上面就是我自已定义的一个GridPrint的类!
//你先生成一个unit文件,然后在要使用地方包含这个头文件!就可以!
#7
简单的就地解决(就是在From的h里写了),复杂的建议另写在unit里
#8
谢谢各位兄台:
#1
file->new 选择unit 再写自己的类,比较好
#2
将类的头文件包含进去就行了!
然后在程序中申明实体
然后在程序中申明实体
#3
三个地方都可以
1、自己定义一个:打开一个新的Unit,有就会有Unit*.cpp Unit*.h,在这里面定义,之后,在你要使用的地方实例化。
2、在已存在的Unit上定义。例如你有一个Form,就在他们的.h里定义,在.cpp里写实现的代码。然后实例化,即可使用
3、在一个类里面定义,这是嵌套类的定义方式。你还是先弄清楚我前面说的吧。
1、自己定义一个:打开一个新的Unit,有就会有Unit*.cpp Unit*.h,在这里面定义,之后,在你要使用的地方实例化。
2、在已存在的Unit上定义。例如你有一个Form,就在他们的.h里定义,在.cpp里写实现的代码。然后实例化,即可使用
3、在一个类里面定义,这是嵌套类的定义方式。你还是先弄清楚我前面说的吧。
#4
将头文件和.cpp文件包含工程及可。
#5
// .hpp
class TForm1:public......
{
};
class Tyourclass:pub......
{
};
class TForm1:public......
{
};
class Tyourclass:pub......
{
};
#6
#ifndef GridPrintH
#define GridPrintH
#include <DBGrids.hpp> //包含的相关头文件
#include <Db.hpp>
#include <Printers.hpp>
#include <QuickRpt.hpp>
#include <Qrctrls.hpp>
typedef struct tagFieldType{ //表示表格某一列信息的结构
AnsiString sTitle; //字段标题名称
int iWidth; //表格单元的宽度
TQRLabel *pLabel; //字段标题控件
TQRDBText *pDBText; //显示的数据控件
TQRShape *pShapeTitle, *pShapeData; //字段标题和数据的表格分隔条
} NEWFIELDTYPE;
class TGridPrint{
public:
TGridPrint(TQuickRep *pSrcQuickRep,TDBGrid * pSrcDBGrid,TQRBand *SrcTitleBand1,
TQRBand *SrcColumnHeaderBand1,TQRBand * SrcDetailBand1); //构造函数
~TGridPrint(); //析构函数
void DoPreview(); //报表的打印预览
void SetPrntTitle(AnsiString sTitle); //手工设置表格的总标题
void SetColumnsWidth(int *ColumnsWidth); //手工设置表格各列宽度
void SetHeadRectHeight(int iHeight); //手工设置字段标题行的高度
void SetDetailRectHeight(int iHeight); //手工设置数据行的高度
private:
void AutoAdjustColumnsWidth(); //程序自动调整各列宽度
TDBGrid * pDBGrid; //将要显示的DBGrid
TDataSet * pDataSet; //DBGrid对应数据集
TQuickRep * pQuickRep; //报表控件
TQRBand * TitleBand1; //报表的总标题栏
TQRBand * ColumnHeaderBand1; //报表的字段标题栏
TQRBand * DetailBand1; //报表的数据栏
TQRLabel * pTitleLabel; //总标题控件
TQRShape * pHeadRect, * pDetailRect; //整个字段标题栏、数据栏的表格矩形控件
int iHeadRectHeight, iDetailRectHeight; //对应表格矩形框的高度,它们宽度相同
int _iTotalWidth; //整个表格的总宽度
int _iIntClearance; //表格内部数据列到左表格的距离
int _iFieldCount; //将要打印的字段数目
NEWFIELDTYPE _arrayFieldType[40]; //支持到40个字段的打印
};//上面就是我自已定义的一个GridPrint的类!
//你先生成一个unit文件,然后在要使用地方包含这个头文件!就可以!
#define GridPrintH
#include <DBGrids.hpp> //包含的相关头文件
#include <Db.hpp>
#include <Printers.hpp>
#include <QuickRpt.hpp>
#include <Qrctrls.hpp>
typedef struct tagFieldType{ //表示表格某一列信息的结构
AnsiString sTitle; //字段标题名称
int iWidth; //表格单元的宽度
TQRLabel *pLabel; //字段标题控件
TQRDBText *pDBText; //显示的数据控件
TQRShape *pShapeTitle, *pShapeData; //字段标题和数据的表格分隔条
} NEWFIELDTYPE;
class TGridPrint{
public:
TGridPrint(TQuickRep *pSrcQuickRep,TDBGrid * pSrcDBGrid,TQRBand *SrcTitleBand1,
TQRBand *SrcColumnHeaderBand1,TQRBand * SrcDetailBand1); //构造函数
~TGridPrint(); //析构函数
void DoPreview(); //报表的打印预览
void SetPrntTitle(AnsiString sTitle); //手工设置表格的总标题
void SetColumnsWidth(int *ColumnsWidth); //手工设置表格各列宽度
void SetHeadRectHeight(int iHeight); //手工设置字段标题行的高度
void SetDetailRectHeight(int iHeight); //手工设置数据行的高度
private:
void AutoAdjustColumnsWidth(); //程序自动调整各列宽度
TDBGrid * pDBGrid; //将要显示的DBGrid
TDataSet * pDataSet; //DBGrid对应数据集
TQuickRep * pQuickRep; //报表控件
TQRBand * TitleBand1; //报表的总标题栏
TQRBand * ColumnHeaderBand1; //报表的字段标题栏
TQRBand * DetailBand1; //报表的数据栏
TQRLabel * pTitleLabel; //总标题控件
TQRShape * pHeadRect, * pDetailRect; //整个字段标题栏、数据栏的表格矩形控件
int iHeadRectHeight, iDetailRectHeight; //对应表格矩形框的高度,它们宽度相同
int _iTotalWidth; //整个表格的总宽度
int _iIntClearance; //表格内部数据列到左表格的距离
int _iFieldCount; //将要打印的字段数目
NEWFIELDTYPE _arrayFieldType[40]; //支持到40个字段的打印
};//上面就是我自已定义的一个GridPrint的类!
//你先生成一个unit文件,然后在要使用地方包含这个头文件!就可以!
#7
简单的就地解决(就是在From的h里写了),复杂的建议另写在unit里
#8
谢谢各位兄台: