收录日期:2020/12/05 03:37:45 时间:2016/05/24 05:40:22 标签:基础类
我要实现继承TShape类,然后在其基础上加文字和一条横线.H代码为

rectangle.h
//---------------------------------------------------------------------------

#ifndef rectangleH
#define rectangleH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TMyRectangle: public TShape
{
private:
String Tital;
String Expor;
int x,y,weight,height;
public:
__fastcall TMyRectangle(TComponent* AOwner);
 void SetXY(int x,int y);
 void SetWord(String tital,String expor);
 void Draw(void);
};
#endif


.CPP代码为
rectangle.cpp

__fastcall TMyRectangle::TMyRectangle(TComponent* AOwner)
:TShape(Owner)
{
this->Left=0;
this->Top=0;
this->Width=50;
this->Pen->Color=RGB(23,255,255);
this->Pen->Width=3;
this->Brush->Color=clRed;
this->Brush->Style=4;
this->height=14;
this->Tital="";
this->Expor="";
}
void TMyRectangle::SetXY(int X,int Y)
{
 this->Left=X;
 this->Top=Y;
}
void TMyRectangle::SetWord(String tital,String expor)
{
 this->Tital=tital;
 this->Expor=expor;
 if (strlen(tital.c_str())>strlen(expor.c_str()))
 {
 this->Width=strlen(tital.c_str())*10;
 }
 else
 {
 this->Width=strlen(expor.c_str())*10;
 }
}
void TMyRectangle::Draw(void)
{
SetBkMode(Canvas->Handle, TRANSPARENT);
Canvas->Pen->Color=clBlack;
Canvas->Pen->Style=3;
Canvas->Pen->Width=2;
Canvas->Font->Color=clBlack;
Canvas->Font->Size=20;
Canvas->MoveTo(this->Left,this->Top+80);
//Canvas->Brush->Color=clBlack;
//Canvas->Ellipse(0,0,this->Width,this->height);
Canvas->LineTo(this->Left+this->Width,this->Top+80);
Canvas->TextOutA(this->Left+10,this->Top+10,this->Tital);
Canvas->TextOutA(this->Left+10,this->Top+90,this->Expor);

}

在程序中调用为

void __fastcall TForm1::FormClick(TObject *Sender)
{
if (TorF)
{
TPoint pt;
GetCursorPos(&pt);
MyRectangle->SetXY(pt.x,pt.y);
MyRectangle->Parent=this;
MyRectangle->SetWord("F0001","采购管理");
MyRectangle->Draw();

}
}
//-------------
对像以在上边定义程序不出错为什么MyRectangle->Draw();好像不起做用,什么也画不上去,是不是思路有问题请大侠们指教本人在线等

ssh找不到ApplicationContext.xml配置文件 倾家荡产。。。 ssh找不到ApplicationContext.xml配置文件 倾家荡产。。。 求助:ASP.NET网站部署到IIS后,使用Form类型身份验证登陆无法读写文件,高手请进! 诚意邀请熟悉Javascript及框架/jquery/prototype/AJAX的大侠合作 关于OS请大家给我出个招 关于gridview链接 一个看着简单,但很难说清楚的问题 关于信息采集 关于ASp.Net的字体问题?请高手指点一二! 我想问一下,在java一般的开发中,内部类用的多么? 关于fopen函数及文件指针的问题 VC环境下如何使用什么函数遍历目录下文件 怎么在数据库中实现分页????求助!~ CopyFile函数的问题 sql语句问题?!请帮忙! 电脑在运行情况下,不定时发出声音? 想找C++的工作,给个意建做个什么样的软件 当做面试的作品 (来者有分) vb.net中,创建一个ICodeCompiler对象,为什么会出错 vb.net中,创建一个ICodeCompiler对象,为什么会出错 关于blog的Trackback Ping-URL 发送的问题。 关于listview 删除所选项,急! 求一SQL语句? 诚意邀请熟悉jquer / prototype / AJAX的大侠合作 初学PB,C0195:statement requires \';\'的问题 求助:weblogic9.2,在myeclipse5.5上deploy Enterprise Application Project失败!! flash到图片转化问题 求一方法解决SQL 行列转换 我想在恢复数据库LDCmm时将LDCmm换个名字xpp,如何实现?如:RESTORE DATABASE LDCmm FROM DISK =\'H:\\open\\LDCbak\' PXA270关于CF host口的驱动