问两个关于ListView的列宽和状态的问题 1.ListView中如何固定一列的宽度,使其不能用鼠标拖动改变列宽?设maxwidth好象不行.2.每行前有个checkbox,如何才能知道哪行的checkbox的checked发生了改变? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、有个苯办法, 把column的MaxWidth、MinWidth和Width设成一样的值试试.2、if ListView1.Items.Item[0].Checked then begin //... end; 1.把column的MaxWidth、MinWidth和Width设成一样的值还是能拉开,只不过拉了会缩回去,我想要不能拉开的有没有办法?2.可能是我表述的不清楚.比如ListView中有几行数据,每行前面的checkbox有的已打勾有的没打勾,怎样才能知道打勾情况发生了改变?change事件对其他列也响应,我想要个只对打勾情况改变响应的东东. 问题2:下面的代码都有BUG,就是如果用Space来Check Box,那么,不会有效果!请在ListView的OnMouseUp中设置:procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Item: TListItem; HitTest: THitTests; begin Item := ListView1.GetItemAt(x, y); HitTest := ListView1.GetHitTestInfoAt(x, y); if (Item <> nil) and (HitTest = [htOnStateIcon]) then begin // Example // // if Item.Checked = False then // begin // if (Item.Index = 0) or (ListView1.Items.Item[Item.Index - 1].Checked = True) then // Item.Checked := True else Item.Checked := False; // end else // begin // if (Item.Index = ListView1.Items.Count - 1) or (ListView1.Items.Item[Item.Index + 1].Checked = False) then Item.Checked := False else // Item.Checked := True; // end; end; end; *********************************也可以用下面的代码,放在OnChange事件中:var Item : TListItem; Pos : TPoint;begin if Item.Checked then ............end; 怎样可以禁止键盘连续输入,实现按一个键,执行一次操作? 找DELPHI老师啊, 100分求一段delphi程序 注册表操作的问题,问了好多人,还是没有答案,知道的近来看看 有關賦值的問題 如何开方呀? 又一小问题,UP有分,谢谢帮助. 怎么把图片放到剪贴板中去! 使用了XP_form 控件以后,MENU控件却跑到最上面了谁知道怎么解决? 用TNMPOP3接收的中文邮件是乱码,怎么正确显示? 请教:谁有支持位图和图标的按钮 以及金属质感的素材 内存流如何转化成字符串?
begin
//...
end;
2.可能是我表述的不清楚.比如ListView中有几行数据,每行前面的checkbox有的已打勾有的没打勾,怎样才能知道打勾情况发生了改变?change事件对其他列也响应,我想要个只对打勾情况改变响应的东东.
下面的代码都有BUG,就是如果用Space来Check Box,那么,不会有效果!
请在ListView的OnMouseUp中设置:
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
HitTest: THitTests;
begin
Item := ListView1.GetItemAt(x, y); HitTest := ListView1.GetHitTestInfoAt(x, y); if (Item <> nil) and (HitTest = [htOnStateIcon]) then
begin
// Example
//
// if Item.Checked = False then
// begin
// if (Item.Index = 0) or (ListView1.Items.Item[Item.Index - 1].Checked = True) then
// Item.Checked := True else Item.Checked := False;
// end else
// begin
// if (Item.Index = ListView1.Items.Count - 1) or (ListView1.Items.Item[Item.Index + 1].Checked = False) then Item.Checked := False else
// Item.Checked := True;
// end;
end;
end;
*********************************
也可以用下面的代码,放在OnChange事件中:
var
Item : TListItem;
Pos : TPoint;
begin
if Item.Checked then
............
end;