请教关于cxCheckGroup

静远 2010-03-25 11:28:20
cxCheckGroup中有六个Items,在数据库中的值分别存储为Value:005,010,015,020,025,030(char(3))
当选中第一个Items时返回005,选择第二个时返回010,依此;
当选中第一个和第二个时返回005和010,选中第二个和第五个时返回010和025,依此;
同理,当已知005时第一个被选中,依此;
当已知005和010时第一个和第二个被选中,依此;

cxCheckGroup似乎是没有ItemIndex这样的属性。

不知道该如何设置呢?

如果Items在数据库的值没有自定义,可以通过cxCheckGroup的(VarToStr(EditValue) & Value = VarToStr(EditValue))来获取相应结果(EditValueFormat设置为evInteger),但是我这里是固定了的。

请教!
...全文
466 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
结束冬眠 2012-04-18
  • 打赏
  • 举报
回复
不用那么复杂吧?
IF POS('0',cxCheckGroup1.EditValue)>0 then
SPC_PAD1:= '【测试点开孔】' else
SPC_PAD1:= '';
IF POS('1',cxCheckGroup1.EditValue)>0 then
SPC_PAD2:= '【单独焊盘开孔】' else
SPC_PAD2:= '';
SPC_PAD:=SPC_PAD1+SPC_PAD2;
ShowMessage(SPC_PAD);
bdmh 2010-03-25
  • 打赏
  • 举报
回复
有什么办法,自己根据选中的去组合
静远 2010-03-25
  • 打赏
  • 举报
回复

procedure TForm27.Button1Click(Sender: TObject);
var
i, j: Integer;
S: string;
StrLst: TStrings;
begin
S := cg.EditValue;
StrLst := TStringList.Create;
for i := 1 to Length(S) do
begin
if (S[i] = '1') then
StrLst.Add(IntToStr(5 * i));
end;
for j := 0 to StrLst.Count - 1 do
ShowMessage(StrLst[j]);
FreeAndNil(StrLst);
end;

这样的思路,把cxCheckGroup的EditValueFormat设置为cvfStatesString
不知道有没有更合适的方法?
静远 2010-03-25
  • 打赏
  • 举报
回复
如果是一一列举的话会有几十种组合
静远 2010-03-25
  • 打赏
  • 举报
回复
up,不知道有没有更好点的方法?

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧