主界面放了一个RzGroupBar,添加了几个group,现在想实现当鼠标放在group的ITEM上里,显示动态效果。
结果是只有第一个Group的item效果正常,其它几个都不显示效果。
代码如下:procedure TFrmMain.GpbaseMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var i,index : integer;
begin
Index := TRzGroup(Sender).ItemAtPos(Point(X, Y));
if Index >= 0 then
begin
TRzGroup(Sender).Items[ Index ].Selected := true;
end;
if Index = -1 then
begin
for i:=0 to TRzGroup(Sender).Items.Count-1 do
begin
TRzGroup(Sender).Items[i].Selected := false;
end;
exit;
end;
end;
procedure TFrmMain.GpPactMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var i,index : integer;
begin
Index := TRzGroup(Sender).ItemAtPos(Point(X, Y));
if Index >= 0 then
begin
TRzGroup(Sender).Items[Index].Selected := true;
end;
if Index = -1 then
begin
for i:=0 to TRzGroup(Sender).Items.Count-1 do
begin
TRzGroup(Sender).Items[i].Selected := false;
end;
exit;
end;end;显示效果如下:
结果是只有第一个Group的item效果正常,其它几个都不显示效果。
代码如下:procedure TFrmMain.GpbaseMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var i,index : integer;
begin
Index := TRzGroup(Sender).ItemAtPos(Point(X, Y));
if Index >= 0 then
begin
TRzGroup(Sender).Items[ Index ].Selected := true;
end;
if Index = -1 then
begin
for i:=0 to TRzGroup(Sender).Items.Count-1 do
begin
TRzGroup(Sender).Items[i].Selected := false;
end;
exit;
end;
end;
procedure TFrmMain.GpPactMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var i,index : integer;
begin
Index := TRzGroup(Sender).ItemAtPos(Point(X, Y));
if Index >= 0 then
begin
TRzGroup(Sender).Items[Index].Selected := true;
end;
if Index = -1 then
begin
for i:=0 to TRzGroup(Sender).Items.Count-1 do
begin
TRzGroup(Sender).Items[i].Selected := false;
end;
exit;
end;end;显示效果如下:
解决方案 »
- delphi程序制作完成后 如何能拿到未安装delphi的机器运行
- 文件加载到剪切板
- 请问如何用delphi+xml制作菜单,在线等
- 在三层开发中怎样使用DCOMConnection1,ClientDataSet1进行事务处理
- 一个困惑的问题请大家帮忙?
- 请问一个窗体问题?也许很简单的,但是却不好控制
- 要买书了!请评价一下delphi5(6)从入门到精通
- ★★★还是关于那个特殊的for循环!你们说的不对!!这是答案,看看吧!!
- ADODataSet使用的问题
- 怎样才能获得数据库中表的列单,在不知道的情况下,就象Ttable的field在观察器中一样!谢先!
- 我想学习做个东西,视频聊天室的东西。但是总是没有思路啊!谁能帮哥们提点建议啊
- 报表打印
showmessage((Sender as TRzGroup).Items.Items[Index].Caption+'; parent:='+(Sender as TRzGroup).Caption+';selected:='+booltostr((Sender as TRzGroup).Items.Items[Index].Selected));
看了一下,发现第一个Group和第二个Group提示的消息是一致的。
先不管了!谢谢各位!
1.如果是按下時直接寫代碼;
2.如果移動時直接在MouseMove中寫代碼(獲取的是第幾個rzgroup的item)
但是我觉得这样的效果不太理想,我想利用item的selected属性来做鼠标滑过的效果。
程序定义的procedure如题,效果却是跟三楼的显示的图一样:第一组Group有selected:=true的效果,但是第二组及以后的没有效果。
我使用showmessage来显示mousemove事件传的坐标、caption和item的selected属性,结果都是正常的。实际情况是:当鼠标滑过第一组group产生选中效果,滑过第二组及第三组....的group时没有产生选中效果。