现在有两个窗体form1、form2,要实现根据form1中edit1的字段值,在form2中自动显示user_pswd、user_dgr两个值
form1中
edit1 user_nm
edit2 user_pswd
edit3 user_dgr
对应到数据库form2中
edit1 user_pswd
edit2 user_dgrunit2代码如下
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses unit1;
{$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);
begin
with Form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from Users where user_nm =:a');
Parameters.ParamByName('a').Value := Trim(Form1.Edit1.Text);
Open;
end;
begin
Edit1.Text :=Form1.ADOQuery1.FieldByName('user_pswd').Value;
Edit2.Text :=Form1.ADOQuery1.FieldByName('user_dgr').Value;
end;
end;end.
form1中
edit1 user_nm
edit2 user_pswd
edit3 user_dgr
对应到数据库form2中
edit1 user_pswd
edit2 user_dgrunit2代码如下
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses unit1;
{$R *.dfm}procedure TForm2.FormCreate(Sender: TObject);
begin
with Form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from Users where user_nm =:a');
Parameters.ParamByName('a').Value := Trim(Form1.Edit1.Text);
Open;
end;
begin
Edit1.Text :=Form1.ADOQuery1.FieldByName('user_pswd').Value;
Edit2.Text :=Form1.ADOQuery1.FieldByName('user_dgr').Value;
end;
end;end.
解决方案 »
- 在dephi中如何动态执行delphi程序?
- 急!询问取得本机工作组的问题~~~
- 自定义了一个组件,如何在Delphi中单步调试组件的代码?
- 何处有For D6中RAVE正式报表控件?
- 读取 SQL SERVER 的BLOB格式的图像
- 请问?
- 打包后,出错提示为:dbnmpntw找不到指定的sql server,提示上好几次,但还是可以连上,为什么?
- DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端
- 谁有ie的图标给小弟发一份,[email protected]
- 高分求教:DELPHI中的异常处理的问题!
- 高分求解答,dspack采集无驱动摄像头视频压缩问题!!
- 一条记录选择输出的问题
Edit2.Text :=Form1.ADOQuery1.FieldByName('user_dgr').Value;这么写不知道哪里错了呢,各位来帮帮小弟,不胜感激!
procedure TForm2.FormShow(Sender: TObject); //这里
begin
with Form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from Users where user_nm =:a');
Parameters.ParamByName('a').Value := Trim(Form1.Edit1.Text);
Open;
end;
begin
Edit1.Text :=Form1.ADOQuery1.FieldByName('user_pswd').AsString;
Edit2.Text :=Form1.ADOQuery1.FieldByName('user_dgr').AsString;
end;
end
Form1.ADOQuery1 在form1窗体中执行,在Form2 中建立两个全局变量,
在Form1 窗体中调用Form2 窗体时,将查询去的查询传给Form2 中的变量,然后你再相关的处理即可。