什么意思?
/*********************************/
/*1、在CSDN上坚决反对灌水倒分 */
/*2、在看球赛时坚决支持中国队对手*/
/*4、在国际纠纷上坚决支持中国 */
/*********************************/
/*********************************/
/*1、在CSDN上坚决反对灌水倒分 */
/*2、在看球赛时坚决支持中国队对手*/
/*4、在国际纠纷上坚决支持中国 */
/*********************************/
也就是说,读出表中的每个字段title.再作为CheckBox 的Caption.
让用户来选择,他想要显示的字段。
例:表中有字段:
name ,age,sex...
Access中,每个字段有个caption属性,它们是中文的。
姓名,年龄,性别...我想要读出“姓名,年龄',在FORM中动态生成N个CheckBox,来让用户选择。^_^
如果这个里面还没有,那可能就得手写了。
for i:=0 to table1.fields-1 do
begin
comboboxq.items.add(table1.fields[i].title);
end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, CheckLst,vender,inifiles;type
TField_select = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
CheckListBox1: TCheckListBox;
CheckBox1: TCheckBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Field_select: TField_select;implementation{$R *.DFM}procedure TField_select.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;procedure TField_select.BitBtn2Click(Sender: TObject);
begin
Field_select.close;
end;procedure TField_select.BitBtn1Click(Sender: TObject);
var i:integer;
Fvalue:string;
connini:Tinifile;
begin
Fvalue:='';
for i:=0 to checklistbox1.Items.Count-1 do
begin
Vender_form.DBgrid1.Columns[i].Visible:=checklistbox1.Checked[i];
if checklistbox1.Checked[i]=True then
Fvalue:=Fvalue+'1'
else
Fvalue:=Fvalue+'0';
end;
connini:=Tinifile.create('..\mrp.ini');
connini.WriteString('Header','vender',Fvalue);
Field_select.close;
end;procedure TField_select.FormShow(Sender: TObject);
var StrResult:string;
connini:Tinifile;
localdir:string;
save_value:integer;
i,j:integer;
begin
getdir(0,localdir);
connini:=Tinifile.create('..\mrp.ini');
StrResult:=connini.ReadString('Header','vender','');
for i:=1 to length(StrResult) do
begin
j:=strtoint(copy(StrResult,i,1));
if j=1 then
checklistbox1.Checked[i-1]:=True
else
checklistbox1.Checked[i-1]:=False;
end;
end;procedure TField_select.CheckBox1Click(Sender: TObject);
var i:integer;
begin
if checkbox1.Checked=True then
begin
for i:=1 to checklistbox1.Items.Count do
checklistbox1.Checked[i-1]:=True
end else
begin
for i:=1 to checklistbox1.Items.Count do
checklistbox1.Checked[i-1]:=False
end;
end;end.這是我做的一個字段選擇的程序代碼,其中利用*.ini文件來記錄字段的被選值,格式是:
[Header]
vender=11111111101100111
1表示是要顯示出來了,0則相反.