1.create一个stringlist对象,并用add方法添加你所要显示的所有字段,格式是fieldname=中文名称 2.赋值好一条查询语句,包括你要查询的字段,可以少于上面stringlist的字段,但多的话,多的项将不 会是中文 3.对dbgrid进行类似以下语句的操作 for i:=0 to dbgrid1.Columns.Count-1 do begin dbgrid1.Columns.Items[i].Title.caption:=tabFieldList.Values[dbgrid1.Columns.Items[i].FieldName]; end; 在dbgrid中字段出现的先后顺序将由sql语句里字段出现的先后顺序来决定.
可以做一个list链表,,保存中文字段名和英文字段的对应关系 procedure TForm1.FormButton1Click(Sender: TObject);type PMyList = ^AList; AList = record I: Integer; C: Char; end;var MyList: TList; ARecord: PMyList; B: Byte; Y: Word; begin MyList := TList.Create; try New(ARecord); ARecord^.I := 100; ARecord^.C := 'Z'; MyList.Add(ARecord); {Add integer 100 and character Z to list} New(ARecord); ARecord^.I := 200; ARecord^.C := 'X'; MyList.Add(ARecord); {Add integer 200 and character X to list} { Now paint the items onto the paintbox} Y := 10; {Variable used in TextOut function} for B := 0 to (MyList.Count - 1) do begin ARecord := MyList.Items[B]; Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I} Y := Y + 30; {Increment Y Value again} Canvas.TextOut(10, Y, ARecord^.C); {Display C} Y := Y + 30; {Increment Y Value} end;
顺便给你个demo的代码 private list:TStringList; { Private declarations }procedure TForm1.FormCreate(Sender: TObject); var sql:string; i:integer; begin list:=TStringList.Create; list.Add('fdmc=编号'); list.Add('fdname=名称'); Adoquery1.Close; adoquery1.SQL.Text:='select fdname,fdmc from fdxx'; adoquery1.Open; for i:=0 to dbgrid1.Columns.Count-1 do begin dbgrid1.Columns.Items[i].Title.Caption:=list.Values[dbgrid1.Columns.Items[i].FieldName]; end; end;
var i:integer;begin table.first; for i:= 0 to Table.Recordcount - 1 do begin Combobox1.items.add(Table1.FieldName['i']); end ; end;
你在CSDN全文檢索下就知道啦.
http://61.186.252.131/advsch.asp
2.赋值好一条查询语句,包括你要查询的字段,可以少于上面stringlist的字段,但多的话,多的项将不 会是中文
3.对dbgrid进行类似以下语句的操作
for i:=0 to dbgrid1.Columns.Count-1 do
begin
dbgrid1.Columns.Items[i].Title.caption:=tabFieldList.Values[dbgrid1.Columns.Items[i].FieldName];
end;
在dbgrid中字段出现的先后顺序将由sql语句里字段出现的先后顺序来决定.
procedure TForm1.FormButton1Click(Sender: TObject);type
PMyList = ^AList;
AList = record
I: Integer;
C: Char;
end;var MyList: TList;
ARecord: PMyList;
B: Byte;
Y: Word;
begin
MyList := TList.Create;
try
New(ARecord);
ARecord^.I := 100;
ARecord^.C := 'Z';
MyList.Add(ARecord); {Add integer 100 and character Z to list}
New(ARecord);
ARecord^.I := 200;
ARecord^.C := 'X';
MyList.Add(ARecord); {Add integer 200 and character X to list} { Now paint the items onto the paintbox}
Y := 10; {Variable used in TextOut function} for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];
Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I}
Y := Y + 30; {Increment Y Value again}
Canvas.TextOut(10, Y, ARecord^.C); {Display C}
Y := Y + 30; {Increment Y Value}
end;
private
list:TStringList; { Private declarations }procedure TForm1.FormCreate(Sender: TObject);
var
sql:string;
i:integer;
begin
list:=TStringList.Create;
list.Add('fdmc=编号');
list.Add('fdname=名称');
Adoquery1.Close;
adoquery1.SQL.Text:='select fdname,fdmc from fdxx';
adoquery1.Open;
for i:=0 to dbgrid1.Columns.Count-1 do
begin
dbgrid1.Columns.Items[i].Title.Caption:=list.Values[dbgrid1.Columns.Items[i].FieldName];
end;
end;
i:integer;begin
table.first;
for i:= 0 to Table.Recordcount - 1 do
begin
Combobox1.items.add(Table1.FieldName['i']);
end ;
end;