1:是你的SetFocus时到一个enabled=False的控件上。
2:是你的form没有自动创建(fsMDIChild)!
2:是你的form没有自动创建(fsMDIChild)!
解决方案 »
- 关于鼠标单击事件
- 程序运行的时候界面白屏了,好像死了一样,界面上的控件被一片白覆盖很难看!如何避免呢?
- delphi有没有像c#和java宠物店之类的经典代码下载啊?
- DBLookupComboBox问题
- Delphi近200本电子书刚刚建了个群222895153,有空我把资料共享在里面。
- 请问如何使用BPL封装窗体,
- 如何用SQL语句选出两个表的不同记录!
- 如何让Panel出现滚动条,并且Panel里面的控件要随滚动条移动!?
- 阿贵也帮助过我,敬上一百,了表心意
- 急急急!!关于Delphi7+intraweb控件,基于B/S结构,对Mysql数据库表进行数据操作!
- win2000为什么老是自动共享所有盘符??
- 怎样在DBGRID中,把ACCESS的 是/否 字段表示为检取框(既是为对号,否为X号)?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus,unit2,unit3,unit4, Db, ADODB;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;//拨款计划处理
N2: TMenuItem;//拨款计划录入
N3: TMenuItem; //拨款处理
N4: TMenuItem; //拨款计划查询
N5: TMenuItem; //帐务及单据打印
N6: TMenuItem; //凭证管理
N7: TMenuItem; //明细帐管理
N8: TMenuItem; //资金平衡表
N9: TMenuItem; //科目汇总表
N11: TMenuItem; //部门编码及会计科目管理
N12: TMenuItem; //部门编码管理
N13: TMenuItem; //会计科目信息管理
N14: TMenuItem; //系统管理
N15: TMenuItem; //用户信息管理
N16: TMenuItem; //注册新用户
N17: TMenuItem; //退出
N18: TMenuItem; //退出
N19: TMenuItem;
N20: TMenuItem; //系统设定
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery1f_jz: TIntegerField;
ADOQuery1f_jh: TIntegerField;
procedure N18Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N4Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses unit5, Unit6, Unit7, Unit8, Unit9;{$R *.DFM}procedure TForm1.N18Click(Sender: TObject); //退出系统
begin
close;
end;procedure TForm1.N2Click(Sender: TObject); //调拨款计划录入界面
var
i,j,k,l,m,n:integer;
begin
m:=1; // m
form2.ADOQuery1.First;
if form2.adoquery1.recordcount<>0 then//如果拨款临时表不为空,则
begin
if form2.ADOQuery1f_pf.value=0 then//如果批复标记=0,批复中,则
begin
MessageDlg('上次拨款计划正在批复中,请等候',mtinformation,[mbYes],0);
form1.Show;
end; if form2.ADOQuery1f_pf.value=2 then//如果批复标记=2,批复失败,则
begin
i:=MessageDlg('上次拨款计划未被批复,是否修改该次拨款计划,并重新申请批复?',mtinformation,[mbYes,mbNo],0); // i
if i=mryes then//进入拨款计划界面,进行修改上次的拨款计划 i
begin
form2.DBGrid1.enabled:=true;
form2.FlatButton1.Enabled:=false;
form2.FlatButton2.Enabled:=true;
form2.FlatButton4.Enabled:=true;
form2.show;
form1.enabled:=false;
end
else form1.show;
end; if form2.ADOQuery1f_pf.value=1 then//如果批复标记=1,批复成功,则
begin
if form2.ADOQuery1f_pz.value=0 then//如果凭证标记=0,未生成凭证,则
begin
MessageDlg('上次批复的拨款计划未生成凭证,请先将上次拨款计划生成凭证,并申请稽核。',mtinformation,[mbYes],0);
form1.show;
end
else //如果凭证标记<>0,已生成凭证,则
begin
j:=form2.ADOQuery1f_pz.value; //根据凭证标记的内容查找相应的凭证号记录的记帐标记及稽核标记 j
//m.asstring:=year;
adoquery1.Close ;
adoquery1.Parameters[0].value:=j; // j
adoquery1.parameters[1].value:=form2.ADOQuery1f_year.Value ;
//adoquery1.Close;
//adoquery1.SQL.Clear;
//adoquery1.sql.add('select f_jz,f_jh from pznumber');
//adoquery1.SQL.Add('where f_pznumber='''+inttostr(j)+''' and f_year='''year'''');
//**adoquery1.Parametersbyname('j'):=form2.ADOQuery1f_pz.value;
//adoquery1.Open;
adoquery1.Open ;
adoquery1.Prepared ;
adoquery1.ExecSQL ; k:=form1.ADOQuery1f_jh.Value; // k
l:=form1.adoquery1f_jz.value; // l
//k:=2;
if m=1 then
begin
if k=0 then //如果稽核标记=0,稽核中,则
begin
MessageDlg('上次拨款计划的凭证正在稽核中,请等待 ',mtinformation,[mbYes],0);
form1.show;
end; if k=2 then //如果稽核标记=2,稽核失败,则
begin
MessageDlg('上次拨款计划的凭证稽核失败,请先修改该张凭证,并重新申请稽核。',mtinformation,[mbYes],0);
form1.show;
end; if k=1 then//如果稽核标记=1,稽核成功,则
begin if l=0 then//如果记帐标记=0,未记帐,则
begin
MessageDlg('上次拨款计划的凭证稽核成功,但还没有记帐,请先将该凭证记帐。',mtinformation,[mbYes],0);
form1.show;
end; if l=1 then//如果记帐标记=1,已记帐,则
begin
form2.ADOQuery1.First;
for n:=0 to form2.ADOQuery1.RecordCount-1 do // n
begin
form2.ADOQuery1.Delete;
form2.ADOQuery1.Next;
end;
form2.ADOQuery1.UpdateBatch;
form2.DBGrid1.Enabled:=false;
form2.ComboBox1.Enabled:=false;
form2.FlatButton2.Enabled:=false;
form2.FlatButton4.Enabled:=false;
form2.show;
form1.enabled:=false;
end; end;
end;
end;
end;
end
else //如果拨款临时表为空,则
begin //调出拨款计划录入界面。
form2.DBGrid1.Enabled:=false;
form2.ComboBox1.Enabled:=false;
form2.FlatButton2.Enabled:=false;
form2.FlatButton4.Enabled:=false;
form2.show;
form1.enabled:=false;
end
end;procedure TForm1.FormPaint(Sender: TObject);//背景颜色渐变
var
I:word ;
Y,YStep: Real;
begin
Y:=0; // 设置Y方向的初始值
YStep:=ClientHeight/256; // 设置步长
for I:=255 downto 0 do
begin
Canvas.Brush.Color:=$0000000+i*$10000; // 改变颜色
Canvas.FillRect(Rect(0,Round(Y),ClientWidth,Round(Y+YStep)));
Y:=Y+YStep;
end;
end;procedure TForm1.N12Click(Sender: TObject);//调部门编码管理界面
begin
form3.show;
form1.enabled:=false;
form3.flatbutton2.enabled:=false;
end;procedure TForm1.N4Click(Sender: TObject);//调拨款计划查询界面
begin
form4.show;
form1.enabled:=false;
end;end.
应写在FORM3的OnShow事件中。form1.enabled:=false;
这句好象没有必要,不明白为什么你这么写?
检查各form的oncreate事件代码,确保里面没有调用xxxx.setfocus
^_^