用一个checklist控件来做为多选题的选择项,选项为 A B C D E F
问题1:如何将选中的项组合成字符串形式存入数据库,如:ABC ACD ADEF
问题2:如何在数据导航时将根据已经存入数据表字段中的ABC ACD 等数据在checklist控件中自动选中该项.
谢谢!
问题1:如何将选中的项组合成字符串形式存入数据库,如:ABC ACD ADEF
问题2:如何在数据导航时将根据已经存入数据表字段中的ABC ACD 等数据在checklist控件中自动选中该项.
谢谢!
begin
//设置好CheckListBox的Items:A,B,C,C
CheckListBox1.Checked[0]:=true;//A选中
//...
ShowMessage(CheckListBox1.Items.Strings[0]);//Show A
end;
var
i:integer;
begin
for i:=0 to CheckListBox1.Items.Count-1 do
begin
if CheckListBox1.Items.Strings[i]=Edit1.Text then
CheckListBox1.Checked[i]:=true;
end;
end;从数据库读数据再设置,大概也就这个方法,你试试吧。
if checklist.check[i] then
key:=key+checklist.items.string[i]+',';
end;然后你自己来拆分,可以放到一个stringlist里,根据","来拆分起来
两层循环即可
i,j:integer;
begin
sl:=TStringList.create;
sl.Delimiter:=',';
sl.DelimitedText:='A,B,C';
for i:=0 to checklist.items.count-1 do begin
for j:=0 to sl.count-1 do begin
if chkecklist.items.string[i]=sl.strings[i] then
checklist.check[i]:=true;
end;
end;
end;
没有IDE,有可能有错误,自己调试下吧,大概就这意思
var
b: string;
begin
b:= 'AC';
for i:= 0 to length(b) - 1 do
checklistbox1.Checked[ord(b[i+1])-65]:= true;
end;
shuihan20e 的方法也是可行的,只是我的字符串没有符号分割,是连在一起的,用dinoalex的方法成功,再次感谢