又没有会BCB的高手?(0分)

  • 主题发起人 主题发起人 laolor
  • 开始时间 开始时间
L

laolor

Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个类,
class Graph{
public:
TImage *Image1;
.....
}在mdi自窗口中调用
void __fastcall TMDIChild::FormCreate(TObject *Sender)
{
Graph *ThisGraph=new Graph;
Image1=ThisGraph->Image1;
size=5;
int i;
Image1->Canvas->Brush->Color=clBlack;//该行运行期间出错.
.....
}出错的那一行是在我新建一个mdi子窗口时出错的
错误窗口说:'Access violation at address 400732BC in molude 'VCL40.BPL'.Read of address FFFFFFFF'.
然后我在Graph类中为Image1分配内存,就可编译.但是下面的划线语句却执行不到.
据说要自己重新定义Image类,具体应该怎样实现呢?
没有别的组件,可以这样赋值之后就能画图的呢?
 
ThisGraph->Image1的parent指定了吗?
 
不是回答过了吗?
Graph *ThisGraph=new Graph;
后面要在加一句:
ThisGraph->Image1 = new TImage(this);
然后:
Image1=ThisGraph->Image1;
否则Image1==NULL,没法用。
 
对阿,先为Image1分配内存,但是赋值之后,后面划线语句总是没有显示?
 
不要用Image,用paintBox试试看。
 
光为image分配内存没用. 得为image中的bitmap分配内存(指定bitmap的width和height)
才能显示画的内容
 
DreamTiger,我用了MDI,它的模版自动生成一个ImageList,怎么对付他?
 
ImageList是用来存储图标的,不是蛮好用的吗?有什么问题吗?
 
不行啊,编译后显示改行出错:(在forms.hpp文件中)
/* TCustomForm.Create */ inline __fastcall virtual TForm
(Classes::TComponent* AOwner) : TCustomForm(AOwner) { }
 
这应该跟ImageList没有关系吧。
 
是跟ImageList没有关系,我是说,改成paintbox后就有哪个错误了
光为image分配内存没用. 得为image中的bitmap分配内存(指定bitmap的width和height)
才能显示画的内容
Image没有bitmap啊
 
image.picture.bitmap.width := xxxx;
image.picture.bitmap.height := xxxx;
image.picture.bitmap.canvas.lineto(......);
.....
 
不行啊,picture也显示不了阿
惨咯,大虾,改成paintbox后那个错误怎么解决
 
你把你的程序寄给我,我帮你看看:sqh@dna.sibc.ac.cn
 
时间太久,强制结束。 wjiachun
 
时间太久,强制结束。 wjiachun
 
后退
顶部