L
liuliu
Unregistered / Unconfirmed
GUEST, unregistred user!
我想把好比:
maninf表中的man_name都在form.create也就是初始时候就都读到combobox1里面去,这样用户可以选择方便。
而且也方便日后维护这个程序,即使人变了表的信息变了,程序也无需修改。
我写了这么一个函数:
Procedure FillFieldToCombox(AdoTable : TADOTable;FieldName : String;Combobox :TComBoBox);
var
bTemp1,bTemp2 : Boolean ;
Tmpstr : String ;
Begin
bTemp1 := AdoTable.Active ;
bTemp2 := AdoTable.Filtered ;
if not bTemp1 Then
AdoTable.Open ;
if bTemp2 Then
AdoTable.Filtered := False ;
combobox.Items.Clear ;
Adotable.First ;
While Not AdoTable.Eof Do
Begin
tmpstr := AdoTable.FieldByName(FieldName).AsString ;
if Combobox.Items.IndexOf(tmpstr)<0 Then
Combobox.Items.Add(tmpstr);
AdoTable.Next ;
End;
AdoTable.Active := bTemp1 ;
AdoTable.Filtered := bTemp2 ;
End;
调用函数时:
fillfieldtocombox(adotable1,ADOTable1EngineerName,combobox1);
程序无法运行,提示出错:
[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.FillFieldToCombox'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
maninf表中的man_name都在form.create也就是初始时候就都读到combobox1里面去,这样用户可以选择方便。
而且也方便日后维护这个程序,即使人变了表的信息变了,程序也无需修改。
我写了这么一个函数:
Procedure FillFieldToCombox(AdoTable : TADOTable;FieldName : String;Combobox :TComBoBox);
var
bTemp1,bTemp2 : Boolean ;
Tmpstr : String ;
Begin
bTemp1 := AdoTable.Active ;
bTemp2 := AdoTable.Filtered ;
if not bTemp1 Then
AdoTable.Open ;
if bTemp2 Then
AdoTable.Filtered := False ;
combobox.Items.Clear ;
Adotable.First ;
While Not AdoTable.Eof Do
Begin
tmpstr := AdoTable.FieldByName(FieldName).AsString ;
if Combobox.Items.IndexOf(tmpstr)<0 Then
Combobox.Items.Add(tmpstr);
AdoTable.Next ;
End;
AdoTable.Active := bTemp1 ;
AdoTable.Filtered := bTemp2 ;
End;
调用函数时:
fillfieldtocombox(adotable1,ADOTable1EngineerName,combobox1);
程序无法运行,提示出错:
[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.FillFieldToCombox'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'