各位:
想请教一问题,在一模块中使用了Combobox1和Edit1两个控件,combobox1空件连接数据表(包含:Dep和Name两个字段),数据表结构如下:
Dep Name
MIS 123
HRA 456
ME 789
问题是想在模块中选择Combobox1的下拉列表中的MIS或HRA在Edit1中显示相对应的Name值:123或456等?请帮忙解决?
我的代码如下(我只做了Combobox1连接到数据表):
procedure TEmailUser.FormCreate(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add('select dep,name from deplr');
ADOQuery1.Open;
Combobox1.Clear;
while not ADOQuery1.Eof do
begin
combobox1.Items.Add(ADOQuery1.fieldbyname('dep').AsString);
ADOQuery1.Next;
end;
end;
想请教一问题,在一模块中使用了Combobox1和Edit1两个控件,combobox1空件连接数据表(包含:Dep和Name两个字段),数据表结构如下:
Dep Name
MIS 123
HRA 456
ME 789
问题是想在模块中选择Combobox1的下拉列表中的MIS或HRA在Edit1中显示相对应的Name值:123或456等?请帮忙解决?
我的代码如下(我只做了Combobox1连接到数据表):
procedure TEmailUser.FormCreate(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add('select dep,name from deplr');
ADOQuery1.Open;
Combobox1.Clear;
while not ADOQuery1.Eof do
begin
combobox1.Items.Add(ADOQuery1.fieldbyname('dep').AsString);
ADOQuery1.Next;
end;
end;
begin
with adoquery1 do begin
close;
sql.clear;
sql.add('select * from deplr where Dep=:temp');
Parameters.ParamByName('temp').value:=combobox1.text;
open;
edit1.Text:=fieldbyname('Name').asstring;
close;
end;//end with
end;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add('select dep,name from deplr');
ADOQuery1.Open;
Combobox1.Clear;
while not ADOQuery1.Eof do
begin
combobox1.Items.Add(ADOQuery1.fieldbyname('dep').AsString);
combobox2.Items.Add(ADOQuery1.fieldbyname('name').AsString);
ADOQuery1.Next;
end;
end;procedure TFrmLogin.ComboBox1Change(Sender: TObject);
begin
ComboBox2.ItemIndex:=ComboBox1.ItemIndex;
Edit1.Text:=ComboBox2.Text;
end;
再来我想问一下在父窗体(MDIForm)中,如何用代码定义子窗体显示的位置?
TDep = Record
Name : string;
end;implementation{$R *.dfm}procedure TEmailUser.FormCreate(Sender: TObject);
var
Dep: PDep;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add('select dep,name from deplr');
ADOQuery1.Open;
Combobox1.Clear;
while not ADOQuery1.Eof do
begin
New(Dep);
Dep.Name := ADOQuery1.fieldbyname('Name').AsString;
ComboBox1.Items.AddObject(ADOQuery1.fieldbyname('dep').AsStringTObject(Dep));
ADOQuery1.Next;
end;
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.text := PDep(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Name;
end;