两个unit如何运行得到结果?(在线等,多谢!)
要在窗体上画一图形:以特定点为中心,画弧、圆、椭圆和矩形。
我照例题编写如果下代码,开始时RUN为恢色不能运行,现在能
运行无错,但也得不到正确结果,我该如何解决。
现附代码如下望多指点,先谢过各位。
Unit2.h代码:
//---------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------class point
{
protected:
int x,y;
public:
point(int x=320,int y=240);
};
//---------------------------------------------------------------------
class circles:virtual public point
{
int radius;
public:
circles(int x,int y,int radius);
void show(TCanvas* canvas);
};
//---------------------------------------------------------------------
class arcs:virtual public point
{
int radius;
public:
arcs(int x,int y, int radius);
void show(TCanvas* canvas);
};
//---------------------------------------------------------------------class ellipses:virtual public point
{
int xradius,yradius;
public:
ellipses(int x,int y,int xradius,int yradius);
void show (TCanvas* canvas);
};
//---------------------------------------------------------------------
class rectangles:virtual public point
{
int length;
public:
rectangles(int x,int y,int length);
void show(TCanvas* cnavas);
};
//---------------------------------------------------------------------
class mix:arcs,ellipses,rectangles,circles
{
public:
mix(int x,int y,int radius1,int radius2);
void show(TCanvas* canvas);
};
//---------------------------------------------------------------------
#endif
Unit2.cpp代码:
//---------------------------------------------------------------------#include <string.h>
#include <conio.h>
#include <vc1.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------point::point(int x,int y)
{
point::x=x;
point::y=y;
}
//---------------------------------------------------------------------circles::circles(int x,int y,int radius):poit(x,y)
{
circles::radius=radius;
}
//---------------------------------------------------------------------
void circles::show(TCanvas* canvas)
{
canvas->Ellipse(x-radius,y-radius,x+radius,y+radius);
}
//---------------------------------------------------------------------arcs::arcs(int x,int y,int radius):point(x,y)
{
arcs::radius=radius;
}
//---------------------------------------------------------------------void arcs::show(TCanvas* canvas)
{
canvas->Arc(x-radius,y-radius,x+radius,y+radius,
x+radius,y-radius,x-radius,y-radius);
}
//---------------------------------------------------------------------ellipses::ellipses(int x,int y,int xradius,int yradius):point(x,y)
{
ellipses::xradius=xradius;
ellipses::yradius=yradius;
}
//---------------------------------------------------------------------
void ellipses::show(TCanvas* canvas)
{
canvas->Ellipse(x-xradius,y-yradius,x+xradius,y+yradius);
}
//---------------------------------------------------------------------
rectangles::rectangles(int x,int y,int length):point(x,y)
{
rectangles::length=length;
}
//---------------------------------------------------------------------
void rectangles::show(TCanvas* canvas)
{
canvas->Rectangle(x-length/2,y-length/2,x+length/2,y+length/2);
}
//---------------------------------------------------------------------
mix::mix(int x,int y,int radius1,int radius2)
:arcs(x,y,radius2),ellipses(x,y,radius1,radius2+5),
rectangles(x,y,radius1*2+10),circles(x,y,radius1*2)
{
}
//---------------------------------------------------------------------
void mix::show(TCanvas* canvas)
{
ards::show(cnavas);
ellipses::show(canvas);
rectangles::show>canvas);
circles::show(canvas);
}
//---------------------------------------------------------------------
Form1r OnPaint事件响应函数:
#include "Unit2.h"
//---------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->Brush->Style=bsClear;
Canvas->Pen->Width=10;
mix object(220,240,100,70);
object.show (Canvas);
}
//---------------------------------------------------------------------