如题,如何在一个窗体按查询条件查询结果显示在另一个窗体,而查询窗体自动消失
在另一个窗体的dbgride显示符合条件的记录,我写的代码执行出错
在另一个窗体的dbgride显示符合条件的记录,我写的代码执行出错
解决方案 »
- 在a机器录入数据,按保存键后,在b机器上可同时显示,该用什么方法实现?
- 得到了一个窗口的句柄后,怎么才能根据这个窗口句柄找到这个窗体内控件?怎么设置这个窗体内某些控件的属性?
- delphi为什么警告会不报呢?
- Indy9中 IdUDPClient,IdUDPServer可以实现互联网上两台计算机通讯吗?
- 各位大虾,帮帮我,关于标准表达式中数据类型不匹配问题
- 新手提问:创建自定义函数
- delphi人士和使用过Tomcat的高手请进来指点迷津。没用过的也请搬个板凳进来一起学习(听课有分)。
- delphi书籍——串口通讯的
- 在MDI的客户区内能否实现网页功能?或网页显示?
- 关于 DateTimePicker1控件
- cxgrid 合计 怎么让录入时立即更新合计数
- XML文档怎么向节点添加内容
或者销毁,在第二窗体上添加数据集变量
procedure TfoundForm.btn1Click(Sender: TObject);begin
try
if (chk1.Checked)and (qzid1.Text<>'') then
begin
DataModule3.ADO_Temp.Close;
DataModule3.ADO_Temp.SQL.Text:='select * from message_message where qzid='''+trim(qzid1.Text)+'''';
DataModule3.ADO_Temp.Open;
Form2.ds1.DataSet:=DataModule3.ADO_Temp;form2:=Tform2.create(nil);
form2.showmodal;
form2.Free;
Visible:=True;
//foundForm.Close;
end
else
begin
ShowMessage('请选择正确的查询条件!');
end;
except
ShowMessage('查询失败');
end;
end;
Form2.ds1.DataSet:=DataModule3.ADO_Temp; form2:=Tform2.create(nil); 你的form2还没create呢,你怎么就给他的成员赋值了?
呵呵,这两句换下顺序试试看
TfrmSearch= class(TForm)
public
class function Execute(out: queryStr: String): Boolean;
end;class function TfrmSearch.Execute(out: queryStr: String): Boolean;
begin
with TfrmSearch.Create(Application) do
try
Result := ShowModal = mrOk;
if Result then queryStr := trim(qzid1.Text) else queryStr := EmptyStr;
finally
Free;
end;
end;
在Form1中如下调用:procedure TForm1.btn1Click(Sender: TObject);
var
queryStr: String;
begin
if TfrmSearch.Execute(queryStr) then begin
DataModule3.ADO_Temp.Close;
DataModule3.ADO_Temp.SQL.Text := Format('select * from message_message where qzid=''%s''', [queryStr]);
DataModule3.ADO_Temp.Open;
Form1.ds1.DataSet:=DataModule3.ADO_Temp;
end;
end;