ComboBox1的使用(30)

  • 主题发起人 主题发起人 chenp1688
  • 开始时间 开始时间
C

chenp1688

Unregistered / Unconfirmed
GUEST, unregistred user!
请教一个关于的问题TComboBox的问题例部门表Department id name 1 财务部 2 行政部 我在窗体显示的时候这样为ComboBox1赋值的procedure TFMDep.FormShow(Sender: TObject);var FID:integer; FName:string;begin query.Close; query.SQL.Clear; query.SQL.Add('select * from Department '); query.Open; ComboBox1.Clear(); while not query.Eof do begin FID:=query.fieldbyname('id').AsInteger; FName:=query.fieldbyname('name').AsString; ComboBox1.Items.AddObject(FName,TObject(FID)); query.Next; end;end;这时ComboBox1组件里保存了表Department的id和name数据了;提取对应的ID;//过程vara,vfid1:integer;begin Result:=0; A:=ComboBox1.Items.IndexOf(ComboBox1.Text); vFID1:=integer(ComboBox1.Items.Objects[A]);end;其中vFID1就是对应内容的id值了问题如何让ComboBox1.text 根据我赋值的id 显示对应 name如;在ComboBox1显示的时候的时候知道了id 如1,ComboBox1.text 里显示'行政部'
 
我来关注一下也想知道答案没有办法,基础不好
 
提个建议,可以自己试下:弄个query查对应的ID的NAME,ComboBox1Exit事件里给query的参数ID赋值,最后ComboBox1.Text := query.FieldByName('name').AsString;
 
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);beginif key=#13 thenbegin ComboBox1.ItemIndex:=StrToInt(ComboBox1.Text)end;end;
 
其实楼主的问题我已经解决,就是你知道了fid 在遍历的时候,赋值,估计你是在修改的时候需要用上吧。procedure TFMDep.FormShow(Sender: TObject);var FID:integer; FName:string;begin query.Close; query.SQL.Clear; query.SQL.Add('select * from Department '); query.Open; ComboBox1.Clear(); while not query.Eof do begin FID:=query.fieldbyname('id').AsInteger; FName:=query.fieldbyname('name').AsString; ComboBox1.Items.AddObject(FName,TObject(FID)); if oldfid=fid then combobox1.text=fname; query.Next; end;end;如果是数据绑定的方式走,可以使用look combo或者说你不要combobox,采用打开窗口选择的方式!
 
zkktom 你好你给的代码if oldfid=fid then combobox1.text=fname; oldfid 是什么??
 
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);var iID: Integer;beginif key=#13 thenbegin if TryStrToInt(ComboBox1.Text, iID) then begin iID := cbb1.Items.IndexOfObject(TObject(iID)); if iID <> -1 then ComboBox1.ItemIndex := iID; end else begin iID := cbb1.Items.IndexOf(ComboBox1.Text); if iID <> -1 then ComboBox1.ItemIndex := iID; end;end;end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部