TO TommyTong(童童) 这样什么不可以?为什么不能这样做?现在是两个窗体要循环调用,按你的方法,你会如何办?
TO StarRains谢谢你,我把代码都贴子出来,就下边了 unit w_gbzwbddj;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Db, DBTables, ImgList, ComCtrls, ExtCtrls, Buttons,w_gbbdedt,gagl_main;type Tm_gbzwbddj = class(TForm) ImageList1: TImageList; Query1: TQuery; DataSource2: TDataSource; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape5: TShape; Shape6: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape12: TShape; Shape13: TShape; Shape14: TShape; Shape4: TShape; Shape7: TShape; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBEdit11: TDBEdit; DBGrid1: TDBGrid; Panel3: TPanel; SpeedButton1: TSpeedButton; SpeedButton4: TSpeedButton; Label4: TLabel; Label5: TLabel; SpeedButton6: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; BitBtn4: TBitBtn; BitBtn5: TBitBtn; BitBtn6: TBitBtn; ComboBox1: TComboBox; Shape8: TShape; Edit1: TEdit; DateTimePicker1: TDateTimePicker; procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SpeedButton3Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var m_gbzwbddj: Tm_gbzwbddj; str:string;implementation uses dy_gbrmcbUnit;{$R *.DFM}procedure Tm_gbzwbddj.BitBtn4Click(Sender: TObject); var gbbdform: Tgbbdform; begin gbbdform:=Tgbbdform.Create(application); gbbdform.SpeedButton2.Enabled :=false; gbbdform.SpeedButton3.Enabled :=false; gbbdform.combobox1.Enabled :=false; gbbdform.Edit7.ReadOnly:=true; gbbdform.combobox1.Text :=query1.fieldbyname('rydm').asstring; gbbdform.edit7.Text :=query1.fieldbyname('jh').asstring; gbbdform.edit6.text:=query1.fieldbyname('xm').asstring; gbbdform.edit5.Text :=query1.fieldbyname('nrzw').asstring; gbbdform.edit4.Text :=query1.Fieldbyname('nmzw').asstring; if dbedit7.Text<>'' then gbbdform.datetimepicker1.DateTime:=strtodate(query1.fieldbyname('cbsj').asstring); gbbdform.edit3.text:=query1.fieldbyname('zybx').asstring; gbbdform.edit2.text:=query1.fieldbyname('cbdwyj').asstring; gbbdform.edit1.Text :=query1.fieldbyname('spjd').asstring; gbbdform.edit8.Text :=query1.fieldbyname('sftg').asstring; gbbdform.richedit1.Text:=query1.fieldbyname('bz').asstring; gbbdform.Showmodal; query1.Close; query1.Open; end;procedure Tm_gbzwbddj.BitBtn5Click(Sender: TObject); var gbbdform: Tgbbdform; begin gbbdform:=Tgbbdform.Create(application); with gbbdform do begin query2.Close; query2.sql.clear; query2.SQL.Add('select rydm from m_jbqk where rydm like :rydm'); query2.params.items[0].asstring:=dwbm+'%'; query2.Prepare; query2.Open; query2.First; combobox1.Clear; while not (query2.Eof) do begin combobox1.Items.Add(copy(query2.fieldbyname('rydm').asstring,5,(length(query2.fieldbyname('rydm').asstring)-4))); query2.next; end; end; gbbdform.Showmodal; query1.Close; query1.Open; end;procedure Tm_gbzwbddj.FormClose(Sender: TObject; var Action: TCloseAction); begin action:=cafree; end;procedure Tm_gbzwbddj.SpeedButton3Click(Sender: TObject); begin close; end;procedure Tm_gbzwbddj.BitBtn6Click(Sender: TObject); begin if query1.RecordCount=0 then exit; if application.MessageBox('您确认要删除当前记录吗?','提示',mb_okcancel+mb_iconinformation)=mrok then query1.Delete ; end;procedure Tm_gbzwbddj.SpeedButton1Click(Sender: TObject); begin if not (query1.bof) then begin query1.Prior ; speedbutton4.Enabled :=true; if query1.Bof then speedbutton1.Enabled :=false; end; end;procedure Tm_gbzwbddj.SpeedButton4Click(Sender: TObject); begin if not (query1.Eof) then begin query1.Next ; speedbutton1.Enabled :=true; if query1.Eof then speedbutton4.Enabled :=false; end; end;procedure Tm_gbzwbddj.ComboBox1Change(Sender: TObject); var str1:string; begin if combobox1.Text='' then begin datetimepicker1.visible:=false; speedbutton6.Enabled :=false ; exit; end else begin speedbutton6.Enabled :=true; if combobox1.Text='人员编号' then begin DateTimepicker1.Visible :=false; edit1.visible:=true; str:='rydm'; end; if combobox1.Text ='全部信息' then begin dateTimepicker1.Visible :=false; edit1.Visible :=true; end; if combobox1.Text='警号' then begin DateTimepicker1.Visible:=false; edit1.visible:=true; str:='jh'; end; if combobox1.Text ='姓名' theN begin dateTimepicker1.Visible :=false; edit1.Visible :=true; str:='xm'; end; if combobox1.Text='呈报时间' then begin dateTimepicker1.Visible :=true; edit1.Visible :=false; str:='cbsj'; end; end; end;procedure Tm_gbzwbddj.SpeedButton6Click(Sender: TObject); var sqltext:string; begin if combobox1.Text <>'' then begin if (combobox1.Text='呈报时间') then begin with query1 do begin close; sql.Clear ; sql.add('select * from m_gbrmcb where '+ str +'=:Date1'); ParamByName('Date1').value:=datetimepicker1.DateTime ; open; end; end else if combobox1.Text ='全部信息' then begin with query1 do begin close; sql.Clear ; sql.Add('select * from m_gbrmcb'); open; end; end else with query1 do begin close; sql.Clear ; sqltext:='select * from m_gbrmcb where '+str+'='+''''+trim(edit1.text)+''''; sql.Add(sqltext); open; end; end; end;procedure Tm_gbzwbddj.SpeedButton5Click(Sender: TObject); var dy_gbrmcbform: Tdy_gbrmcbform; begin if (query1.RecordCount<1) or (query1.Active=false) then begin application.MessageBox('没有信息可供您打印、浏览,请您重新选择','提示',mb_ok+mb_iconinformation); exit; end; dy_gbrmcbform:=Tdy_gbrmcbform.Create(application); dy_gbrmcbform.rydm :=dbedit1.Text ; dy_gbrmcbform.ShowModal; end;procedure Tm_gbzwbddj.FormCreate(Sender: TObject); begin with query1 do begin close; sql.clear; sql.Add('select * from m_gbrmcb where rydm like :rydm'); params.items[0].asstring:=dwbm+'%'; Prepare; open; end; end;end.
unit w_gbbdedt;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, StdCtrls, ComCtrls, Db, DBTables,gagl_main;type Tgbbdform = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Shape2: TShape; Shape3: TShape; Shape5: TShape; Shape6: TShape; Shape7: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape13: TShape; Shape14: TShape; Shape4: TShape; Shape8: TShape; Shape15: TShape; Shape16: TShape; Shape1: TShape; Shape12: TShape; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; ComboBox1: TComboBox; DateTimePicker1: TDateTimePicker; RichEdit1: TRichEdit; Bevel1: TBevel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; Query1: TQuery; Query2: TQuery; procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure Edit8Exit(Sender: TObject); procedure ComboBox1Change(Sender: TObject); private { Private declarations } public { Public declarations } end;var gbbdform: Tgbbdform;implementation uses w_gbzwbddj;{$R *.DFM}procedure Tgbbdform.SpeedButton6Click(Sender: TObject); begin close; end;procedure Tgbbdform.SpeedButton1Click(Sender: TObject); begin if (combobox1.Text='') and (edit7.text='') then BEGIN EXIT; END; //if speedbutton2.Enabled =false then //begin //if m_gbzwbddj.Query1.Locate('rydm',dwbm+'-'+combobox1.text,[]) then //m_gbzwbddj.query1.edit else //exit; //end else //m_gbzwbddj.query1.Append ; //begin //m_gbzwbddj.query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ; //m_gbzwbddj.query1.fieldbyname('jh').asstring :=edit7.Text; //m_gbzwbddj.query1.fieldbyname('xm').asstring:=edit6.text; //m_gbzwbddj.query1.fieldbyname('nrzw').asstring :=edit5.Text; //m_gbzwbddj.query1.Fieldbyname('nmzw').asstring:=edit4.Text ; //m_gbzwbddj.query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime; //m_gbzwbddj.query1.fieldbyname('zybx').asstring:=edit3.text; //m_gbzwbddj.query1.fieldbyname('cbdwyj').asstring:=edit2.text; //m_gbzwbddj.query1.fieldbyname('spjd').asstring:=edit1.Text ; //m_gbzwbddj.query1.fieldbyname('sftg').asstring :=edit8.Text; //m_gbzwbddj.query1.fieldbyname('bz').asstring:=richedit1.Text; //m_gbzwbddj.query1.post; query1.Close; query1.SQL.Clear ; query1.sql.Add('select * from m_gbrmcb where rydm like :rydm'); query1.params.items[0].asstring:=dwbm+'%'; query1.Prepare; query1.open; if speedbutton2.Enabled =false then begin if Query1.Locate('rydm',dwbm+'-'+combobox1.text,[]) then query1.edit else exit; end else query1.Append ; begin query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ; query1.fieldbyname('jh').asstring :=edit7.Text; query1.fieldbyname('xm').asstring:=edit6.text; query1.fieldbyname('nrzw').asstring :=edit5.Text; query1.Fieldbyname('nmzw').asstring:=edit4.Text ; query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime; query1.fieldbyname('zybx').asstring:=edit3.text; query1.fieldbyname('cbdwyj').asstring:=edit2.text; query1.fieldbyname('spjd').asstring:=edit1.Text ; query1.fieldbyname('sftg').asstring :=edit8.Text; query1.fieldbyname('bz').asstring:=richedit1.Text; query1.post; end; close; end;procedure Tgbbdform.SpeedButton3Click(Sender: TObject); begin if (combobox1.Text<>'') and (edit7.text<>'') then Query1.Cancel ; close; end;procedure Tgbbdform.SpeedButton2Click(Sender: TObject); begin {if (combobox1.Text<>'') and (edit7.text<>'') then begin m_gbzwbddj.query1.Append ; begin m_gbzwbddj.query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ; m_gbzwbddj.query1.fieldbyname('jh').asstring :=edit7.Text; m_gbzwbddj.query1.fieldbyname('xm').asstring:=edit6.text; m_gbzwbddj.query1.fieldbyname('nrzw').asstring :=edit5.Text; m_gbzwbddj.query1.Fieldbyname('nmzw').asstring:=edit4.Text ; m_gbzwbddj.query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime; m_gbzwbddj.query1.fieldbyname('zybx').asstring:=edit3.text; m_gbzwbddj.query1.fieldbyname('cbdwyj').asstring:=edit2.text; m_gbzwbddj.query1.fieldbyname('spjd').asstring:=edit1.Text ; m_gbzwbddj.query1.fieldbyname('sftg').asstring :=edit8.Text; m_gbzwbddj.query1.fieldbyname('bz').asstring:=richedit1.Text; m_gbzwbddj.query1.post; } query1.Close; query1.SQL.Clear ; query1.sql.Add('select * from m_gbrmcb where rydm like :rydm'); query1.params.items[0].asstring:=dwbm+'%'; query1.Prepare; query1.open; if (combobox1.Text<>'') and (edit7.text<>'') then begin query1.Append ; begin query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ; query1.fieldbyname('jh').asstring :=edit7.Text; query1.fieldbyname('xm').asstring:=edit6.text; query1.fieldbyname('nrzw').asstring :=edit5.Text; query1.Fieldbyname('nmzw').asstring:=edit4.Text ; query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime; query1.fieldbyname('zybx').asstring:=edit3.text; query1.fieldbyname('cbdwyj').asstring:=edit2.text; query1.fieldbyname('spjd').asstring:=edit1.Text ; query1.fieldbyname('sftg').asstring :=edit8.Text; query1.fieldbyname('bz').asstring:=richedit1.Text; query1.post; end; end; combobox1.Text :=''; edit7.Text :=''; edit6.text:=''; edit5.Text :=''; edit4.Text :=''; datetimepicker1.DateTime:=date; edit3.text:=''; edit2.text:=''; edit1.Text :=''; edit8.Text :=''; richedit1.Clear ; end;procedure Tgbbdform.Edit8Exit(Sender: TObject); begin if edit8.Text='是' then begin if application.MessageBox('','',mb_okcancel+mb_iconinformation)=mrok then begin end; end end;procedure Tgbbdform.ComboBox1Change(Sender: TObject); begin with query2 do begin close; sql.clear; sql.add('select * from m_jbqk where rydm =:rydm'); params.items[0].asstring:=dwbm+'-'+combobox1.text; prepare; open; edit7.text:=fieldbyname('jh').asstring; edit6.text:=fieldbyname('xm').asstring; end; end;end.
调用unit2自已
可是,我在Unit1;中已经在
inplementation中uses Unit2了,还可以在unit2里
implementation
uses Unit1;吗?
请告诉我啊
Unit1;
interface
uses unit2;
....
end;
Unit2;.....
implementation
uses
unit1;
end;
你说的是什么意思啊?就是自己调用自己?
我听不懂啊?
我就是那样做的啊,可是还是出错了啊
这就被称为循环单元引用。循环单元引用的出现表明了程序设计有缺陷,
应该在程序中避免使用循环单元引用。比较好的解决方法是把UnitA和UnitB
共有的代码移到第三个单元中。然而,有时确实需要用到循环单元引用,
这时就必须把一个uses子句移到implementation部分,而把另一个留在
interface部分,这样就能解决问题。
如果用第三个Unit的话,所有的都要重来;
我加分
unit3 为公共单元Unit1;
...
implementation
uses
Unit3;
。
end.Unit2;
uses
Unit3;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants,Classes, Graphics,Controls, Forms,Dialogs,unit2;
unit unit2
.....
......
implementation
uses unit1;
必须交叉调用
(通过服务器中转)
或者用dll
难道放在implementation的uses中引用不好吗?我的做法是:Delphi系统中已经有的unit单元,
全部放在interface段引用,自己编写的unit单
元,全部放在implementation段引用,同时在
implementation尽量采用层次化引用方式,防止
循环引用的发生。我从来没有出过你这种错误。
我在另一个窗体想通过query改变dbgrid里的数据
form2:=Tform2.create(application);
form2.showmodal;
query1.close;
query1.open;form2进行数据更新;
可是这样form2退出来后不是最新的数据
这样什么不可以?为什么不能这样做?现在是两个窗体要循环调用,按你的方法,你会如何办?
unit w_gbzwbddj;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Grids, DBGrids, Db, DBTables, ImgList, ComCtrls,
ExtCtrls, Buttons,w_gbbdedt,gagl_main;type
Tm_gbzwbddj = class(TForm)
ImageList1: TImageList;
Query1: TQuery;
DataSource2: TDataSource;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape5: TShape;
Shape6: TShape;
Shape9: TShape;
Shape10: TShape;
Shape11: TShape;
Shape12: TShape;
Shape13: TShape;
Shape14: TShape;
Shape4: TShape;
Shape7: TShape;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBGrid1: TDBGrid;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton4: TSpeedButton;
Label4: TLabel;
Label5: TLabel;
SpeedButton6: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
ComboBox1: TComboBox;
Shape8: TShape;
Edit1: TEdit;
DateTimePicker1: TDateTimePicker;
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
m_gbzwbddj: Tm_gbzwbddj;
str:string;implementation
uses
dy_gbrmcbUnit;{$R *.DFM}procedure Tm_gbzwbddj.BitBtn4Click(Sender: TObject);
var
gbbdform: Tgbbdform;
begin
gbbdform:=Tgbbdform.Create(application);
gbbdform.SpeedButton2.Enabled :=false;
gbbdform.SpeedButton3.Enabled :=false;
gbbdform.combobox1.Enabled :=false;
gbbdform.Edit7.ReadOnly:=true;
gbbdform.combobox1.Text :=query1.fieldbyname('rydm').asstring;
gbbdform.edit7.Text :=query1.fieldbyname('jh').asstring;
gbbdform.edit6.text:=query1.fieldbyname('xm').asstring;
gbbdform.edit5.Text :=query1.fieldbyname('nrzw').asstring;
gbbdform.edit4.Text :=query1.Fieldbyname('nmzw').asstring;
if dbedit7.Text<>'' then
gbbdform.datetimepicker1.DateTime:=strtodate(query1.fieldbyname('cbsj').asstring);
gbbdform.edit3.text:=query1.fieldbyname('zybx').asstring;
gbbdform.edit2.text:=query1.fieldbyname('cbdwyj').asstring;
gbbdform.edit1.Text :=query1.fieldbyname('spjd').asstring;
gbbdform.edit8.Text :=query1.fieldbyname('sftg').asstring;
gbbdform.richedit1.Text:=query1.fieldbyname('bz').asstring;
gbbdform.Showmodal;
query1.Close;
query1.Open;
end;procedure Tm_gbzwbddj.BitBtn5Click(Sender: TObject);
var
gbbdform: Tgbbdform;
begin
gbbdform:=Tgbbdform.Create(application);
with gbbdform do
begin
query2.Close;
query2.sql.clear;
query2.SQL.Add('select rydm from m_jbqk where rydm like :rydm');
query2.params.items[0].asstring:=dwbm+'%';
query2.Prepare;
query2.Open;
query2.First;
combobox1.Clear;
while not (query2.Eof) do
begin
combobox1.Items.Add(copy(query2.fieldbyname('rydm').asstring,5,(length(query2.fieldbyname('rydm').asstring)-4)));
query2.next;
end;
end;
gbbdform.Showmodal;
query1.Close;
query1.Open;
end;procedure Tm_gbzwbddj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;procedure Tm_gbzwbddj.SpeedButton3Click(Sender: TObject);
begin
close;
end;procedure Tm_gbzwbddj.BitBtn6Click(Sender: TObject);
begin
if query1.RecordCount=0 then
exit;
if application.MessageBox('您确认要删除当前记录吗?','提示',mb_okcancel+mb_iconinformation)=mrok then
query1.Delete ;
end;procedure Tm_gbzwbddj.SpeedButton1Click(Sender: TObject);
begin
if not (query1.bof) then
begin
query1.Prior ;
speedbutton4.Enabled :=true;
if query1.Bof then
speedbutton1.Enabled :=false;
end;
end;procedure Tm_gbzwbddj.SpeedButton4Click(Sender: TObject);
begin
if not (query1.Eof) then
begin
query1.Next ;
speedbutton1.Enabled :=true;
if query1.Eof then
speedbutton4.Enabled :=false;
end;
end;procedure Tm_gbzwbddj.ComboBox1Change(Sender: TObject);
var
str1:string;
begin
if combobox1.Text='' then
begin
datetimepicker1.visible:=false;
speedbutton6.Enabled :=false ;
exit;
end else
begin
speedbutton6.Enabled :=true;
if combobox1.Text='人员编号' then
begin
DateTimepicker1.Visible :=false;
edit1.visible:=true;
str:='rydm';
end;
if combobox1.Text ='全部信息' then
begin
dateTimepicker1.Visible :=false;
edit1.Visible :=true;
end;
if combobox1.Text='警号' then
begin
DateTimepicker1.Visible:=false;
edit1.visible:=true;
str:='jh';
end;
if combobox1.Text ='姓名' theN
begin
dateTimepicker1.Visible :=false;
edit1.Visible :=true;
str:='xm';
end;
if combobox1.Text='呈报时间' then
begin
dateTimepicker1.Visible :=true;
edit1.Visible :=false;
str:='cbsj';
end;
end;
end;procedure Tm_gbzwbddj.SpeedButton6Click(Sender: TObject);
var
sqltext:string;
begin
if combobox1.Text <>'' then
begin
if (combobox1.Text='呈报时间') then
begin
with query1 do
begin
close;
sql.Clear ;
sql.add('select * from m_gbrmcb where '+ str +'=:Date1');
ParamByName('Date1').value:=datetimepicker1.DateTime ;
open;
end;
end else
if combobox1.Text ='全部信息' then
begin
with query1 do
begin
close;
sql.Clear ;
sql.Add('select * from m_gbrmcb');
open;
end;
end else
with query1 do
begin
close;
sql.Clear ;
sqltext:='select * from m_gbrmcb where '+str+'='+''''+trim(edit1.text)+'''';
sql.Add(sqltext);
open;
end;
end;
end;procedure Tm_gbzwbddj.SpeedButton5Click(Sender: TObject);
var
dy_gbrmcbform: Tdy_gbrmcbform;
begin
if (query1.RecordCount<1) or (query1.Active=false) then
begin
application.MessageBox('没有信息可供您打印、浏览,请您重新选择','提示',mb_ok+mb_iconinformation);
exit;
end;
dy_gbrmcbform:=Tdy_gbrmcbform.Create(application);
dy_gbrmcbform.rydm :=dbedit1.Text ;
dy_gbrmcbform.ShowModal;
end;procedure Tm_gbzwbddj.FormCreate(Sender: TObject);
begin
with query1 do
begin
close;
sql.clear;
sql.Add('select * from m_gbrmcb where rydm like :rydm');
params.items[0].asstring:=dwbm+'%';
Prepare;
open;
end;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ExtCtrls, StdCtrls, ComCtrls, Db, DBTables,gagl_main;type
Tgbbdform = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Shape2: TShape;
Shape3: TShape;
Shape5: TShape;
Shape6: TShape;
Shape7: TShape;
Shape9: TShape;
Shape10: TShape;
Shape11: TShape;
Shape13: TShape;
Shape14: TShape;
Shape4: TShape;
Shape8: TShape;
Shape15: TShape;
Shape16: TShape;
Shape1: TShape;
Shape12: TShape;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
ComboBox1: TComboBox;
DateTimePicker1: TDateTimePicker;
RichEdit1: TRichEdit;
Bevel1: TBevel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
Query1: TQuery;
Query2: TQuery;
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Edit8Exit(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
gbbdform: Tgbbdform;implementation
uses
w_gbzwbddj;{$R *.DFM}procedure Tgbbdform.SpeedButton6Click(Sender: TObject);
begin
close;
end;procedure Tgbbdform.SpeedButton1Click(Sender: TObject);
begin
if (combobox1.Text='') and (edit7.text='') then
BEGIN
EXIT;
END;
//if speedbutton2.Enabled =false then
//begin
//if m_gbzwbddj.Query1.Locate('rydm',dwbm+'-'+combobox1.text,[]) then
//m_gbzwbddj.query1.edit else
//exit;
//end else
//m_gbzwbddj.query1.Append ;
//begin
//m_gbzwbddj.query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ;
//m_gbzwbddj.query1.fieldbyname('jh').asstring :=edit7.Text;
//m_gbzwbddj.query1.fieldbyname('xm').asstring:=edit6.text;
//m_gbzwbddj.query1.fieldbyname('nrzw').asstring :=edit5.Text;
//m_gbzwbddj.query1.Fieldbyname('nmzw').asstring:=edit4.Text ;
//m_gbzwbddj.query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime;
//m_gbzwbddj.query1.fieldbyname('zybx').asstring:=edit3.text;
//m_gbzwbddj.query1.fieldbyname('cbdwyj').asstring:=edit2.text;
//m_gbzwbddj.query1.fieldbyname('spjd').asstring:=edit1.Text ;
//m_gbzwbddj.query1.fieldbyname('sftg').asstring :=edit8.Text;
//m_gbzwbddj.query1.fieldbyname('bz').asstring:=richedit1.Text;
//m_gbzwbddj.query1.post;
query1.Close;
query1.SQL.Clear ;
query1.sql.Add('select * from m_gbrmcb where rydm like :rydm');
query1.params.items[0].asstring:=dwbm+'%';
query1.Prepare;
query1.open;
if speedbutton2.Enabled =false then
begin
if Query1.Locate('rydm',dwbm+'-'+combobox1.text,[]) then
query1.edit else
exit;
end else
query1.Append ;
begin
query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ;
query1.fieldbyname('jh').asstring :=edit7.Text;
query1.fieldbyname('xm').asstring:=edit6.text;
query1.fieldbyname('nrzw').asstring :=edit5.Text;
query1.Fieldbyname('nmzw').asstring:=edit4.Text ;
query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime;
query1.fieldbyname('zybx').asstring:=edit3.text;
query1.fieldbyname('cbdwyj').asstring:=edit2.text;
query1.fieldbyname('spjd').asstring:=edit1.Text ;
query1.fieldbyname('sftg').asstring :=edit8.Text;
query1.fieldbyname('bz').asstring:=richedit1.Text;
query1.post;
end;
close;
end;procedure Tgbbdform.SpeedButton3Click(Sender: TObject);
begin
if (combobox1.Text<>'') and (edit7.text<>'') then
Query1.Cancel ;
close;
end;procedure Tgbbdform.SpeedButton2Click(Sender: TObject);
begin
{if (combobox1.Text<>'') and (edit7.text<>'') then
begin
m_gbzwbddj.query1.Append ;
begin
m_gbzwbddj.query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ;
m_gbzwbddj.query1.fieldbyname('jh').asstring :=edit7.Text;
m_gbzwbddj.query1.fieldbyname('xm').asstring:=edit6.text;
m_gbzwbddj.query1.fieldbyname('nrzw').asstring :=edit5.Text;
m_gbzwbddj.query1.Fieldbyname('nmzw').asstring:=edit4.Text ;
m_gbzwbddj.query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime;
m_gbzwbddj.query1.fieldbyname('zybx').asstring:=edit3.text;
m_gbzwbddj.query1.fieldbyname('cbdwyj').asstring:=edit2.text;
m_gbzwbddj.query1.fieldbyname('spjd').asstring:=edit1.Text ;
m_gbzwbddj.query1.fieldbyname('sftg').asstring :=edit8.Text;
m_gbzwbddj.query1.fieldbyname('bz').asstring:=richedit1.Text;
m_gbzwbddj.query1.post; }
query1.Close;
query1.SQL.Clear ;
query1.sql.Add('select * from m_gbrmcb where rydm like :rydm');
query1.params.items[0].asstring:=dwbm+'%';
query1.Prepare;
query1.open;
if (combobox1.Text<>'') and (edit7.text<>'') then
begin
query1.Append ;
begin
query1.fieldbyname('rydm').asstring:=dwbm+'-'+combobox1.Text ;
query1.fieldbyname('jh').asstring :=edit7.Text;
query1.fieldbyname('xm').asstring:=edit6.text;
query1.fieldbyname('nrzw').asstring :=edit5.Text;
query1.Fieldbyname('nmzw').asstring:=edit4.Text ;
query1.fieldbyname('cbsj').value:=datetimepicker1.DateTime;
query1.fieldbyname('zybx').asstring:=edit3.text;
query1.fieldbyname('cbdwyj').asstring:=edit2.text;
query1.fieldbyname('spjd').asstring:=edit1.Text ;
query1.fieldbyname('sftg').asstring :=edit8.Text;
query1.fieldbyname('bz').asstring:=richedit1.Text;
query1.post;
end;
end;
combobox1.Text :='';
edit7.Text :='';
edit6.text:='';
edit5.Text :='';
edit4.Text :='';
datetimepicker1.DateTime:=date;
edit3.text:='';
edit2.text:='';
edit1.Text :='';
edit8.Text :='';
richedit1.Clear ;
end;procedure Tgbbdform.Edit8Exit(Sender: TObject);
begin
if edit8.Text='是' then
begin
if application.MessageBox('','',mb_okcancel+mb_iconinformation)=mrok then
begin
end;
end
end;procedure Tgbbdform.ComboBox1Change(Sender: TObject);
begin
with query2 do
begin
close;
sql.clear;
sql.add('select * from m_jbqk where rydm =:rydm');
params.items[0].asstring:=dwbm+'-'+combobox1.text;
prepare;
open;
edit7.text:=fieldbyname('jh').asstring;
edit6.text:=fieldbyname('xm').asstring;
end;
end;end.
代码就懒得看了,我想你是不是注意一下窗体的创建顺序以及窗体是否该及时释放
我想你是不是注意一下窗体的创建顺序//能不能说清楚一点?
谢谢
我就会应该用dll
可是不行啊
程序法过去了
uses UNIT2;var
Aunit : Tunit2;
....try
Aunit := Tunit2.create(self);
.........
finally
Aunit.free
end;