哪位大侠指点 thank (150分)

  • 主题发起人 主题发起人 foofighter
  • 开始时间 开始时间
F

foofighter

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D] [black]哪位有经验的侠客知道如何在popmenu里面实现[red]七种武器[/red]
(那七个dbchart)之间的change each other[/black]
 
能说明白点吗?老兄!
 
I服了U!
会说我们都听不懂的话。 [:D]
 
[^]我觉得挺通俗易懂啊?
比如说窗体上一个饼图,现在右键弹出菜单可让它变成另几种类型的图
(柱图、线图什么的)

 
问古龙吧
 
建立所有的7个菜单项,然后在popupmenu的onpopup事件写,动态隐藏一个菜单项.
 
我在onclick里面写
我觉得应该有一个什么series。changeto[bar、line……] 之类的方法
可没找到
 
最简单的方法:
1、放多个DBChart控件,大小宽度颜色相同,每一个显示一个图形。
2、放一个PopupMenu控件,建立每一个DBChart对应的MenuItem。
3、在每一个MenuItem的OnClick事件中将对应的DBChart提到最前面显示。例如
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
DBChart1.BringToFront;
end;
这样就可以实现多个DBChart之间的转换。
这个方法虽然很笨,但是很简单,使用起来不易出错,应该没有什么问题。[:)]
 
westboy2000挺实成
问题是我在一个窗体上有好几个dbchart
每个再变成另外六个
这样要放很多
肯定欠妥
 
westboy2000,古董似的办法。
我还是同意BRAVE的方法。
 
brave说的是菜单怎么设计
我问的是菜单里的事件怎么写[^]
 
我专门找了一下,好像它不是属性,而是不同的类.如TBarSeries,TLineSeries.
所以,恐怕只有动态生成,不要指望用改变属性来实现.
例:
var MySeries:TBarSeries;
begin
MySeries:=TBarSeries.Create(self);
MySeries.ParentChart:=Chart1;//分配给指定的组件.
end;

也可以这样:
var MyClass:TChartSeriesClass;
begin
MyClass:=TBarSeries;
Chart1.AddSeries(MyClass.Create(Self));
end;
若你想要动态改变,就只有动态删除和生成不同的类型.不知别人有没有更好的方法.
 
如果你觉得一个窗体上放很多个dbchart不好的话,那么可以用下面的方法。
在一个dbchart里面建立多个Series,每一个Series显示不同的图形,当弹出菜单选择了以后,
选中的那个 Series.Active := True;
其他的 Series.Active := False;
这样就可以实现动态更换图形了,当然,也可以在菜单选中后设置Series的其他属性,这就看你的需要了。
这个总可以实现你的要求了吧,可以试一试,我们以前就是这样写的。
 
zhangkan朋友说的动态创建应该算是挺主流的方法
问题在于dbchart属性繁杂 动态建的话那些属性都够改了(因为我对各每个图的要求较特殊)
westboy朋友说的看上去麻烦点 但还可靠
正好dbchart上有一个clone按钮 可以比较方便的把属性复制下来迅速转成别的图
当然还要手工在里面调节一些属性(比如把柱图默认的方型改成圆形什么)
你们积分已加[^] 查收
 

Similar threads

回复
0
查看
804
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部