下面我们将上面提供的一段代码作如下修改
j:=
;
j:=FDataLinkDataSourceDataSet FieldCount;
I:=;
repeat
itemsAdd (FDataLinkDataSetFields[I]DisplayName );
//在items属性中加入DisplayName的值
I:=I+;
until I>j-;
另外还要加入下面一段代码来判断显示的DisplayName和哪个FieldName相对应
function TListBox
GetField:string;
var
Ij:integer;
begin
j:=FDataLinkDataSourceDataSet FieldCount ;
for I := to j- do
begin
if FDataLinkDataSourceDataSetFields[I]Displayname=text then
begin
Result:=FDataLinkDataSourceDataSetFields[I]FieldName;
exit;
end;
end;
end;
这样当选择了一个中文化的字段显示名称时就将返回它的真正的字段名这下用起来就更方便了图就是我们将中文字段显示在下拉框中的例子
程序中的字段以中文显示能够给用户带来很大的方便最后下面附上这段程序的完整代码谨供参考
unit DBFieldComboBox;
interface
uses
Windows Messages SysUtils Classes Graphics Controls Forms Dialogs
StdCtrlsdbdbctrls;
type
TDBFieldComboBox = class(TComboBox)
private
FDataLink:TFieldDataLink;
function GetDataSource:TDataSource;
function TListBoxGetField:string;
Procedure SetDataSource( Value:TDataSource);
procedure StartDrag(Sender: Tobject; var DragObject: TDragObject);
procedure DropDown(Sender : Tobject);
{ Private declarations }
protected
{ Protected declarations }
public
constructor create(Aowner:Tcomponent);override;
destructor Destroy;override;
{ Public declarations }
published
property DataSource :TDataSource read GetDataSource write SetDataSource;
property text;
{ Published declarations }
end;
[] [] []