以下代码主要是
virtual CMaterial* Copy();
CMaterial(CMaterial *pMaterial);
virtual ~CMaterial();
virtual ~CTypeset();
virtual ~CTypeset(); list<CMaterial*> m_MaterialList;virtual void Add(CMaterial *pMaterial); virtual void SetStatus(list<CMaterial*> *pList, BOOL bUsed);
virtual double Typeset(double dStatrX,double dStatrY,double dStatrHei,double dStatrWid,
list<CMaterial*> *pList);这几个涵数我不知道怎么翻译?
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma warning(disable:4786)
#pragma warning(disable:4251)
#include <list>
#include <string>
using namespace std;#ifdef TYPESETLIB_EXPORTS
#define TYPESETLIB_API __declspec(dllexport)
#else
#define TYPESETLIB_API __declspec(dllimport)
#endif
TYPESETLIB_API void TestTypeset(HDC dc);class TYPESETLIB_API CMaterial
{
public:
virtual CMaterial* Copy();
virtual void SetUsed(BOOL bUsed);
virtual void Rotated();
virtual void SetSize(double dWidth,double dHeight);
virtual double GetArea(){ return m_dHeight*m_dWidth; }
CMaterial();
CMaterial(CMaterial *pMaterial);
CMaterial(double dWidth,double dHeight);
virtual ~CMaterial();
double m_dHeight,m_dWidth;
double m_dX,m_dY;
BOOL m_bUsed;
BOOL m_bSeletcted;
BOOL m_bRotated;
int m_iIndex;
};
class TYPESETLIB_API CTypeset
{
public:
virtual double Go();
virtual void Add(CMaterial *pMaterial);
CTypeset();
virtual ~CTypeset();
list<CMaterial*> m_MaterialList;
CMaterial m_Desktop;
protected:
virtual void SetStatus(list<CMaterial*> *pList, BOOL bUsed);
virtual double Typeset(double dStatrX,double dStatrY,double dStatrHei,double dStatrWid,
list<CMaterial*> *pList);
virtual void Sort();
virtual void Clear();
int m_iCurIndex;
};
#endif // !defined(AFX_TYPESET_H__46213FAE_D2D6_42A6
virtual CMaterial* Copy();
CMaterial(CMaterial *pMaterial);
virtual ~CMaterial();
virtual ~CTypeset();
virtual ~CTypeset(); list<CMaterial*> m_MaterialList;virtual void Add(CMaterial *pMaterial); virtual void SetStatus(list<CMaterial*> *pList, BOOL bUsed);
virtual double Typeset(double dStatrX,double dStatrY,double dStatrHei,double dStatrWid,
list<CMaterial*> *pList);这几个涵数我不知道怎么翻译?
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma warning(disable:4786)
#pragma warning(disable:4251)
#include <list>
#include <string>
using namespace std;#ifdef TYPESETLIB_EXPORTS
#define TYPESETLIB_API __declspec(dllexport)
#else
#define TYPESETLIB_API __declspec(dllimport)
#endif
TYPESETLIB_API void TestTypeset(HDC dc);class TYPESETLIB_API CMaterial
{
public:
virtual CMaterial* Copy();
virtual void SetUsed(BOOL bUsed);
virtual void Rotated();
virtual void SetSize(double dWidth,double dHeight);
virtual double GetArea(){ return m_dHeight*m_dWidth; }
CMaterial();
CMaterial(CMaterial *pMaterial);
CMaterial(double dWidth,double dHeight);
virtual ~CMaterial();
double m_dHeight,m_dWidth;
double m_dX,m_dY;
BOOL m_bUsed;
BOOL m_bSeletcted;
BOOL m_bRotated;
int m_iIndex;
};
class TYPESETLIB_API CTypeset
{
public:
virtual double Go();
virtual void Add(CMaterial *pMaterial);
CTypeset();
virtual ~CTypeset();
list<CMaterial*> m_MaterialList;
CMaterial m_Desktop;
protected:
virtual void SetStatus(list<CMaterial*> *pList, BOOL bUsed);
virtual double Typeset(double dStatrX,double dStatrY,double dStatrHei,double dStatrWid,
list<CMaterial*> *pList);
virtual void Sort();
virtual void Clear();
int m_iCurIndex;
};
#endif // !defined(AFX_TYPESET_H__46213FAE_D2D6_42A6
大致是这样的。那么
virtual CMaterial* Copy();//这个是普通的虚函数
function Copy:^CMaterial;virtual;
CMaterial(CMaterial *pMaterial);//这个是构造函数,但是要注意Pascal好像不支持多重构造函数(就是说要用不同的名字的构造函数,可以参考TCustomForm的代码)
Constructor Create(var pMaterial:CMaterial);或Constructor CreateNew(var pMaterial); virtual ~CMaterial(); //这些都是析构函数
virtual ~CTypeset(); //这些都是析构函数
virtual ~CTypeset(); //这些都是析构函数
destructor Destroy();override;
list<CMaterial*> m_MaterialList;
TList m_MaterialList;
//这个改的多了,TList是保存TObject的,要想保存自己的东西得处理一下,没办法,模版类是C++独有的virtual void Add(CMaterial *pMaterial);
function Add(var Material:CMaterial):^CMaterial;virtual;virtual void SetStatus(list<CMaterial*> *pList, BOOL bUsed);
procedure SetStatus(var List:TList;bUsed:boolean);virtual;virtual double Typeset(double dStatrX,double dStatrY,double dStatrHei,double dStatrWid,
list<CMaterial*> *pList);
fuction Typeset(dStatrX,dStatrY,dStatrHei,dStatrWid:double;var List:TList):double;这里面把函数参数表里面的指针都用引用调用代替了,其实就是类似C++ 的引用(CMaterial &p),在函数体里面用变量名就可以了。如果觉得不合适,改成指针也一样。推荐你别改了,实际没意义,改动太大