主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.04.01;
下载:[xml.tar.bz2];

向下

内置复选框TStringGrid的问题! 找到类似的分支


kolobok   (2002-03-21 12:33) [0]

也许有人会帮助我? 我有这样的问题:
我希望第三列中的TStringGrid组件包含CheckBox的
为了启用/禁用该行中描述的操作。
该问题具体包括以下内容:
//以编程方式创建一个TCheckBox
cbOne:= TCheckBox.Create(StringGrid1);
//声明CheckBox的父项“ a
cbOne.Parent:= StringGrid1;
//他出现在左上角。
//如果现在单击它,则不会有任何反应
//如果声明父Form1或Button1-没问题
//试图更改已在OnClick处理程序中检查,得到了无限循环
//显然,以编程方式进行的状态更改会引发Click-> OnClick事件以及更多...
//我被欺骗了,开始处理StringGrid1的OnMouseDown事件
//在此处理程序中,使用鼠标坐标和
//检查条件(是否存在CheckBox的单元格)
//然后:
cbOne.Checked:=不是cbOne.Checked;
//仅当您击中一个单元格时才有效。 您进入CheckBox-没有反应。

当然,您可以适应,但您希望一切正常进行!
还有一件事:有没有人有一个很好的例子说明如何在按钮,开关,开关等组件中构建类似的控件。
如果您发送kolobok11@hotbox.ru soap我将不胜感激



Song   (2002-03-21 12:49) [1]

也许他启用了消极功能? 或者强迫自己强迫..



kolobok   (2002-03-21 13:04) [2]

启用是可以的。 我是说声明表单或按钮只是父母,一切正常。

关于歌曲。



Song   (2002-03-21 13:10) [3]

等等,我自己动手



kolobok   (2002-03-21 13:19) [4]

试试宋 我在论坛上看到您在这件事上很熟练,您当然可以提供帮助。 预先感谢。

kolobok11@hotbox.ru



MBo   (2002-03-21 13:21) [5]

procedure TForm1.FormCreate(Sender:TObject);
var cb:TCheckBox;
我:整数;
开始
对于i:= 1到SG1.RowCount-1开始
cb:= TCheckBox.Create(self);
cb.Parent:= self;
cb.width:= 12;
cb.tag:= i;
cb.Caption:=“”;
cb.color:= SG1.Color;
cb.Visible:=(i in [SG1.TopRow..SG1.TopRow + SG1.VisibleRowCount-1]);
cb.onClick:= CheckBox1Click;
SG1.Cols [3] .Objects [i]:= cb;
结束;
结束;

procedure TForm1.CheckBox1Click(Sender:TObject);
开始
如果TCheckBox(发件人)。然后检查
Sg1.Cells [3,TCheckBox(Sender).Tag]:=“Ku-Ku”
其他
Sg1.Cells [3,TCheckBox(Sender).Tag]:=“Shhh ......”;
结束;

过程TForm1.SG1DrawCell(发送者:TObject; ACol,ARow:Integer;
Rect:TRect; 州:TGridDrawState);
开始
if(ACol = 3)和(ARow> 0)然后开始
TCheckBox(SG1.Cols [3] .Objects [ARow])。Top:= SG1.top + Rect.Top + 5;
TCheckBox(SG1.Cols [3] .Objects [ARow])。左:= SG1.left + Rect.right-12;
结束;
结束;

procedure TForm1.SG1TopLeftChanged(Sender:TObject);
var i:整数;
开始
for i:= 1 to SG1.RowCount-1 do
TCheckBox(SG1.Cols [3] .Objects [i])。可见:=
(SG1.LeftCol <= 3)和(i in [SG1.TopRow..SG1.TopRow + SG1.VisibleRowCount-1]);
结束;



Song   (2002-03-21 13:26) [6]

它不起作用,因为输入焦点没有传输到TCheckBox。 TStringGrid-组件本身是复合的,限制与此相关。 如果仅父级应该在Form1或Self上执行此操作(在这种情况下将是相同的)。 并自行将坐标分配给复选框。



Song   (2002-03-21 13:27) [7]

哦,哦:))我看起来MBo,您已经帮了忙。 :))一如既往地提示。 :o



kolobok   (2002-03-21 14:26) [8]

感谢您的MVO决定,但由于我目前无法确定,因此请您简要说明正在发生的事情。

问候,Kolobok。



MBo   (2002-03-21 14:41) [9]

创建CheckBox时,将为父级分配一个表单,由于该表单随后出现,因此将其绘制在顶部。 在其他情况下,您可以执行BringToFront。
创建的CheckBox将输入到该列的“对象”列表中(可以在单独的对象中输入,但该对象已经存在)(TStrings类型的颜色),标记-行号。 OnClick已共享。

有了图形,可见性和确定的点击是否清晰或说明?



kolobok   (2002-03-21 14:58) [10]

MVO,更好地简要说明。 我的意思是-我没有
你知道,MASTAK! 我会考虑几天,然后确定它,科学将对我有利。 关于您在帮助程序中的问题,我会提及-如果我完成了它。

此致,kolobok。



MBo   (2002-03-21 15:13) [11]

单击-强制发送方键入TCheckBox(通常,如果事件可以由其他类型的对象触发,则需要检查发送方是否为TCheckBox)以使用Checkbox属性

绘图-如果需要该列,则从单元格坐标(在网格中)中找到复选框的位置。 添加坐标。 网格,因为复选框的位置指定为rel。 父母是表格。

可见性-如果该单元格可见,则选中复选框。
对于一列,如果它们可以很宽并且只有2不固定,则可以(对于子列)进行处理(对于子序列)。 被放置。

您具体问不清楚什么。



kolobok   (2002-03-21 15:35) [12]

谢谢你!
现在,我当然可以在您的帮助下找到答案。
你不知道存在吗 Delphi 6.0 RUS 或不?

kolobok。



MBo   (2002-03-21 15:49) [13]

没有D俄国人。 有剩下的俄罗斯化
debug-window手表翻译为手表



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.04.01;
下载:[xml.tar.bz2];

楼上





内存:0.59 MB
时间:0.059 c
1-103年
德莱昂
2002-03-21 12:29
2002.04.01
如何在Design-Time中循环浏览所有形式的项目?


1-160年
Yuri btr
2002-03-22 13:05
2002.04.01
剪贴板


1-93年
AHD
2002-03-19 11:31
2002.04.01
的Dimetra


6-260年
KaPaT
2002-01-20 01:39
2002.04.01
很简单的问题!


1-234年
库尔特
2002-03-20 19:00
2002.04.01
人们帮助PLIZ! 如何让BorderStyle窗口有一个bsDialog,但是他有机会破坏???





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский