EInvalidOperation----->Cannot focus a disabled or invisible window????????????? 你可能在FormCreate里设置控件的焦点了吧,在OnShow里设置另外就是不能设置焦点到Enabled为false的控件上 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也不能把焦点设到 Visible为False的控件上。 多谢楼上两位关注,但1.我没有直接使用setfocus{可能是运行的时候,系统需要吧};2.产生此异常的代码行是table3.filtered:=true;3.Delphi 5 Developer's Guide上对EInvalidOperation异常的解释为: 当试图对一个没有"父"组件进行操作而这人操作又需要有窗口句柄时将触发这个异常.如下而的 代码: Var b:TBitBtn; begin b:TBitBtn.Create(Self); b.SetFocus;{这行将导致异常} end;请继续关注!:):):) 那你就赋一个parent;b.Parent := Form1;就ok了 唉!LOOK原来是这样的!我的表字段里设了一个必填项.{Required Field}当我使用table1.filter过滤时,会出现空记录的情况,也就是Table1.RecordCount=0,但实际上在DbGrid1显示时,好像会自动Append一条空记录,从而导致记录录入错误,同时也引出一个问题,有没有办法让dbGrid1不要有那条空记录?{不知道这样分析对不对?}不过说实在的,我刚从php转到delphi,我的代码实在是烂,特在此公布出来让有趣的朋友多提些意见!谢谢啦.(这是一个售房管理程序)MainFrm Code as below:------------------------------------unit main;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ImgList, ComCtrls, ToolWin, ExtCtrls, Grids, Buttons, DBGrids, Db, DBTables, StdCtrls, Mask, ShellAPI, DBCtrls;type Tmainfrm = class(TForm) ImageList1: TImageList; CoolBar1: TCoolBar; ToolBar1: TToolBar; ToolButton1: TToolButton; MainMenu1: TMainMenu; S1: TMenuItem; E1: TMenuItem; A1: TMenuItem; D1: TMenuItem; V1: TMenuItem; C1: TMenuItem; P1: TMenuItem; H1: TMenuItem; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton9: TToolButton; ToolButton10: TToolButton; X1: TMenuItem; TreeView1: TTreeView; StatusBar1: TStatusBar; PopupMenu1: TPopupMenu; A2: TMenuItem; D2: TMenuItem; C3: TMenuItem; N1: TMenuItem; DataSource1: TDataSource; Table1: TTable; Table2: TTable; DataSource2: TDataSource; N2: TMenuItem; N3: TMenuItem; Splitter2: TSplitter; Bevel1: TBevel; R1: TMenuItem; Shape2: TShape; V2: TMenuItem; N4: TMenuItem; S2: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; L1: TMenuItem; C4: TMenuItem; DataSource3: TDataSource; Table3: TTable; QReportPop: TPopupMenu; R2: TMenuItem; B1: TMenuItem; N8: TMenuItem; Panel2: TPanel; SpeedButton1: TSpeedButton; Image1: TImage; Shape1: TShape; N9: TMenuItem; A3: TMenuItem; D3: TMenuItem; C5: TMenuItem; A4: TMenuItem; D4: TMenuItem; C6: TMenuItem; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; DBGrid1: TDBGrid; cardPop: TPopupMenu; V3: TMenuItem; V4: TMenuItem; E2: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; L2: TMenuItem; C2: TMenuItem; Label16: TLabel; Splitter1: TSplitter; H2: TMenuItem; N14: TMenuItem; N15: TMenuItem; F1: TMenuItem; T1: TMenuItem; E3: TMenuItem; N16: TMenuItem; N21: TMenuItem; N31: TMenuItem; N17: TMenuItem; N18: TMenuItem; A5: TMenuItem; N19: TMenuItem; P2: TMenuItem; I1: TMenuItem; T2: TMenuItem; N20: TMenuItem; S3: TMenuItem; K1: TMenuItem; N22: TMenuItem; SIMTELA1: TMenuItem; N23: TMenuItem; D5: TMenuItem; E4: TMenuItem; ToolButton11: TToolButton; ToolButton12: TToolButton; Panel1: TPanel; Label1: TLabel; Bevel2: TBevel; Label27: TLabel; GroupBox1: TGroupBox; Label6: TLabel; Label7: TLabel; Label2: TLabel; Bevel3: TBevel; Label18: TLabel; Bevel5: TBevel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Bevel6: TBevel; Label22: TLabel; Label23: TLabel; Label10: TLabel; Bevel4: TBevel; Label11: TLabel; Label24: TLabel; AreaRoom: TDBEdit; AreaTerrace: TDBEdit; AreaOther: TDBEdit; TotalArea: TDBEdit; total_fund: TDBEdit; GroupBox4: TGroupBox; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; GroupBox2: TGroupBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label9: TLabel; ClientName: TDBEdit; identity_id: TDBEdit; Tel: TDBEdit; MobilePhone: TDBEdit; address: TDBEdit; GroupBox5: TGroupBox; Label26: TLabel; Label25: TLabel; Label17: TLabel; Label28: TLabel; Label30: TLabel; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBEdit11: TDBEdit; N24: TMenuItem; S4: TMenuItem; Label29: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; DateTimePicker3: TDateTimePicker; DateTimePicker4: TDateTimePicker; UnitPriceRoom: TDBComboBox; UnitPriceTerrace: TDBComboBox; UnitPriceOther: TDBComboBox; Button1: TButton; Button2: TButton; Button3: TButton; Label34: TLabel; DBEdit1: TDBEdit; Shape3: TShape; procedure X1Click(Sender: TObject); procedure A2Click(Sender: TObject); procedure D2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure C3Click(Sender: TObject); procedure PopupMenu1Popup(Sender: TObject); procedure C4Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure L1Click(Sender: TObject); procedure B1Click(Sender: TObject); procedure R2Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure S2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure A3Click(Sender: TObject); function fList(selText,selTextfather:string):string; procedure PageControl1Change(Sender: TObject); procedure V3Click(Sender: TObject); procedure V4Click(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); procedure SIMTELA1Click(Sender: TObject); procedure DBGrid1DblClick(Sender: TObject); procedure QReportPopPopup(Sender: TObject); procedure ToolButton11Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure S4Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure Table3AfterScroll(DataSet: TDataSet); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure Table3PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); private { Private declarations } public { Public declarations } end;var mainfrm: Tmainfrm;implementationuses edit, house_info, card_report, qreport, splash, setCenter;{$R *.DFM}procedure Tmainfrm.X1Click(Sender: TObject);beginclose;end;procedure Tmainfrm.A2Click(Sender: TObject);var myname,type_id,t1,t2,father:string; catnode:tTreenode; begin case TreeView1.Selected.ImageIndex of 0:begin t1:='添加新地块'; t2:='请输入新添的地块名称:'; end; 1:begin t1:='添加新楼幢'; t2:='请输入新添的楼幢名称:'; end; 2:begin t1:='添加新楼层'; t2:='请输入新添的楼层名称:'; end; 3:begin t1:='添加新房间'; t2:='请输入新添的房间名称:'; end; 4:begin saleEditFrm.show; exit; end; end; myname:=inputBox(t1,t2,''); if myname<>'' then begin table1.filter:=''; table1.filtered:=true; if table1.Locate('name',myname,[]) and ((TreeView1.Selected.ImageIndex=0) or (TreeView1.Selected.ImageIndex=1)) then begin ShowMessage('对不起,已经存在'''+myname+''',请另取名称!'); exit; end; if treeView1.selected.ImageIndex<>0 then begin if treeView1.selected.ImageIndex=3 then begin table1.first; table1.locate('name',treeview1.Selected.Parent.Text,[]); father:=table1.fieldByName('id').Text; table1.first; table1.locate('name;father',varArrayof([treeView1.Selected.Text,father]),[]); end else table1.locate('name',treeView1.Selected.Text,[]); father:=table1.fieldByName('id').Text; type_id:=table1.fieldByName('type_id').Text; end else begin father:='0'; type_id:='0'; end; if table1.canModify then begin table1.Append; table1.fieldbyName('name').value:=myname; table1.fieldByName('father').value:=father; table1.fieldByName('type_id').value:=strtoint(type_id); table1.post; end; catNode:=TreeView1.Items.AddChild(TreeView1.Selected,myname); catNode.ImageIndex:=TreeView1.Selected.ImageIndex+1; catNode.selectedIndex:=5; end;end;procedure Tmainfrm.D2Click(Sender: TObject);begin if MessageDlg('确定要删除 '+treeView1.selected.text+' 吗?',mtInformation,[mbOK,mbCancel],0)=mrOk then begin table1.filter:=''; table1.filtered:=true; if table1.locate('name',treeView1.selected.text,[]) then begin table1.delete; treeView1.Items.Delete(treeView1.Selected); end else showMessage('数据有误,不能正常删除!'); end;end;procedure Tmainfrm.FormCreate(Sender: TObject);var catnode,child,child1:ttreenode; id,father:string;begin treeview1.items.clear; catnode:=treeview1.Items.AddFirst(nil,'所有楼幢名单'); catnode.ImageIndex:=0; catnode.Selectedindex:=0; table1.filter:=''; table1.filtered:=true; table1.filter:='father=''0'''; table1.filtered:=true; if table1.Active=false then table1.active:=true; table1.First; while not table1.Eof do begin id:=table1.fields[0].asString; child:=treeview1.Items.AddChild(treeview1.items.GetFirstNode,table1.Fields[1].Text); child.ImageIndex:=1; child.Selectedindex:=5; father:=table1.Fields[0].text; table2.filter:=''; table2.filtered:=true; table2.filter:='father='+id; table2.Filtered:=true; if table2.Active=false then table2.active:=true; table2.first; while not table2.eof do begin child1:=treeview1.Items.addchild(child,table2.fields[1].text); child1.ImageIndex:=2; child1.Selectedindex:=5; table2.Next; end; table1.Next; end;//TreeView1.AutoExpand:=true; //table2.free;end;function Tmainfrm.fList(selText,selTextfather:string):string;var father:string;child:tTreeNode;imgidx:smallint;begin statusBar1.Panels.Items[0].Text:=selText; table1.filter:=''; table1.filtered:=true;if treeView1.Selected.ImageIndex=3 then begin Table1.locate('name',selTextFather,[]); father:=Table1.FieldByName('id').Text; Table1.locate('name;father',varArrayof([selText,father]),[]); endelse if treeView1.Selected.ImageIndex=4 then begin result:='3'; exit; endelse Table1.locate('name',selText,[]); result:=table1.fieldbyname('type_id').AsString; if not (TreeView1.Selected.HasChildren) then begin father:=Table1.FieldByName('id').Text; table1.Filter:='father='+father; table1.Filtered:=true; if (table1.RecordCount<>0) then begin table1.first; if TreeView1.Selected.ImageIndex=3 then imgidx:=4 else imgidx:=3; while not table1.eof do begin child:=treeview1.Items.AddChild(TreeView1.Selected,table1.Fields[1].Text); child.ImageIndex:=imgidx; child.Selectedindex:=5; table1.next; end; end; end;end;procedure Tmainfrm.C3Click(Sender: TObject);var changeto:string;begin table1.filter:=''; table1.filtered:=true; if table1.locate('name',treeView1.selected.text,[]) then begin changeto:=inputbox('修改名称','修改 '+treeview1.selected.text+' 为:',''); if changeto<>'' then begin if table1.canmodify then begin table1.Edit; table1.fieldByname('name').value:=changeto; table1.post; FormCreate(Sender); treeView1.FullExpand; end; end; end else ShowMessage('数据操作有误,请重试');end;procedure Tmainfrm.PopupMenu1Popup(Sender: TObject);begin D2.Enabled:=true; C3.Enabled:=true; d2.Caption:='删除'''+TreeView1.Selected.Text+'''(&D)'; c3.Caption:='修改'''+TreeView1.Selected.Text+'''(&C)'; case TreeView1.selected.ImageIndex of 4: begin if Table3.RecordCount=0 then A2.caption:='添加业务记录' else A2.caption:='编辑业务记录'; end; 3: begin A2.Caption:='添加新室号'; end; 0: begin A2.Caption:='添加新地块'; D2.Enabled:=false; C3.Enabled:=false; end; 1:begin A2.Caption:='添加新楼幢'; end; 2:begin A2.Caption:='添加新楼层'; end; end;end;procedure Tmainfrm.C4Click(Sender: TObject);beginif not c4.Checked then begin c4.Checked:=true; l1.Checked:=false; PageControl1.ActivePageIndex:=1; end;end;procedure Tmainfrm.N6Click(Sender: TObject);beginapplication.Minimize;end;procedure Tmainfrm.L1Click(Sender: TObject);beginif not L1.Checked then begin l1.Checked:=true; C4.Checked:=false; PageControl1.ActivePageIndex:=0; end;end;procedure Tmainfrm.B1Click(Sender: TObject);begintreeview1.visible:=false;end;procedure Tmainfrm.R2Click(Sender: TObject);begintreeview1.visible:=true;end;procedure Tmainfrm.ToolButton5Click(Sender: TObject);begintable3.first;end;procedure Tmainfrm.ToolButton6Click(Sender: TObject);begintable3.Prior;end;procedure Tmainfrm.ToolButton7Click(Sender: TObject);begintable3.next;end;procedure Tmainfrm.ToolButton8Click(Sender: TObject);begintable3.Last;end;procedure Tmainfrm.ToolButton2Click(Sender: TObject);beginif MessageDLG('确定要删除房号为("'+label27.caption+'")的这条记录吗?',mtInformation,[mbOK,mbCancel],0)=mrOk thentable3.delete;end;procedure Tmainfrm.N4Click(Sender: TObject);beginif N4.Checked thenbeginToolBar1.visible:=false;N4.Checked:=false;endelsebeginToolBar1.visible:=true;N4.Checked:=true;end;end;procedure Tmainfrm.N9Click(Sender: TObject);beginif N9.Checked thenbeginpanel2.visible:=false;N9.Checked:=false;endelsebeginpanel2.visible:=true;N9.Checked:=true;end;end;procedure Tmainfrm.S2Click(Sender: TObject);beginif s2.Checked thenbeginStatusbar1.visible:=false;s2.Checked:=false;endelsebeginStatusbar1.visible:=true;s2.Checked:=true;end;end;procedure Tmainfrm.ToolButton1Click(Sender: TObject);beginif table3.FieldByName('room').asstring='' thenbeginif table3.canmodify then begin table3.edit; table3.fieldByName('room').value:=TreeView1.selected.Text; table3.fieldByName('floor').value:=TreeView1.selected.Parent.Text; table3.fieldByName('house').value:=TreeView1.selected.Parent.Parent.Text; table3.fieldByName('block').value:=TreeView1.selected.Parent.Parent.Parent.Text; end;end; saleEditFrm.show;end;procedure Tmainfrm.A3Click(Sender: TObject);beginhouseInfoEditFrm.Show;end;procedure Tmainfrm.PageControl1Change(Sender: TObject);beginif PageControl1.ActivePageIndex=0 then begin L1.Checked:=true; C4.Checked:=false; endelse begin L1.Checked:=false; C4.Checked:=true; end;end;procedure Tmainfrm.V3Click(Sender: TObject);begintable3.filter:='';table3.filtered:=true;Table3.filter:='room='+DBGrid1.Fields[0].Text;Table3.filtered:=true;CardReportFrm.QuickRep1.Preview;end;procedure Tmainfrm.V4Click(Sender: TObject);beginQReportFrm.QuickRep1.Preview;end;function GetTreeViewFullPath():string; var CurNode:TtreeNode;father:string; begin CurNode:=mainfrm.Treeview1.selected; while CurNode.Parent<>nil do begin father:=CurNode.Text+'→'+father; CurNode:=CurNode.Parent; end; Result:=father;end;procedure Tmainfrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginif Table3.Modified then begin if MessageDlg('数据曾更改过,是否存盘?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then Table3.Post end;end;procedure Tmainfrm.TreeView1Change(Sender: TObject; Node: TTreeNode);var type_id,seltext,selTextFather,father:string;CurNode:TtreeNode;beginseltext:=treeview1.selected.text;CurNode:=TreeView1.Selected;toolButton1.Enabled:=false; if CurNode.ImageIndex=3 then selTextFather:=CurNode.parent.Text else if CurNode.ImageIndex=4 then begin father:=CurNode.Text; toolButton1.Enabled:=true; end;father:=GetTreeViewFullPath()+father;Label16.Caption:=father;type_id:=flist(seltext,selTextFather); if Treeview1.Selected.ImageIndex=0 then table3.filter:='' else if type_id='0' then table3.filter:='block='''+selText+'''' else if type_id='1' then table3.filter:='house='''+selText+'''' else if type_id='2' then table3.filter:='floor='''+selText+''' and house='''+TreeView1.Selected.Parent.Text+'''' else if type_id='3' then table3.filter:='room='''+selText+''' and house='''+TreeView1.Selected.Parent.Parent.Text+'''' else table3.filter:=''; table3.Filtered:=true;end;procedure Tmainfrm.SIMTELA1Click(Sender: TObject);beginSplashFrm := TSplashFrm.Create(Application);splashfrm.BorderStyle:=bsDialog;splashfrm.Caption:='关于 simtel售楼管理系统';splashfrm.Show;splashfrm.update;//splashform.button1.visible:=true;end;procedure Tmainfrm.DBGrid1DblClick(Sender: TObject);begin if table3.FieldByName('room').Asstring<>'' then PageControl1.ActivePageIndex:=1 else if TreeView1.Selected.ImageIndex=4 then ToolButton1.Click;end;procedure Tmainfrm.QReportPopPopup(Sender: TObject);begin if TreeView1.Visible then begin b1.Enabled:=true; r2.Enabled:=false; end else begin b1.Enabled:=false; r2.Enabled:=true; end;end;procedure Tmainfrm.ToolButton11Click(Sender: TObject);begin ShellExecute (Handle, 'open', PChar ('c:\windows\calc.exe'), '', '', sw_ShowNormal);end;procedure Tmainfrm.SpeedButton1Click(Sender: TObject);begin ShellExecute (Handle, 'open', PChar ('http://www.xts.com.cn'), '', '', sw_ShowNormal);end;procedure Tmainfrm.ScrollBar1Change(Sender: TObject);begin//SendMessage(Panel1.Handle, EM_SCROLLCARET, 0, 10);//SendMessage(Panel1.Handle, EM_SCROLL, SB_LINEDOWN, 0)//PostMessage(GroupBox3.Handle, WM_VSCROLL, SB_LINEDOWN, 0);PostMessage(panel1.Handle, WM_VSCROLL, SB_LINEUP, 0)end;procedure Tmainfrm.S4Click(Sender: TObject);beginsetCenterFrm.Show;end;procedure Tmainfrm.DBGrid1CellClick(Column: TColumn);begin if table3.FieldByName('room').asString<>'' then label16.caption:=Table3.fieldByName('block').AsString+'→'+Table3.fieldByName('House').AsString+'→'+Table3.fieldByName('floor').AsString+'→'+Table3.fieldByName('room').AsString;end;procedure Tmainfrm.Table3AfterScroll(DataSet: TDataSet);begin if table3.Eof then begin ToolButton7.Enabled:=false; ToolButton8.Enabled:=false; end else if table3.Bof then begin ToolButton5.Enabled:=false; ToolButton6.Enabled:=false; end else begin ToolButton5.Enabled:=true; ToolButton6.Enabled:=true; ToolButton7.Enabled:=true; ToolButton8.Enabled:=true; end; if table3.FieldByName('room').AsString='' then begin label27.caption:='没有指定房号或者该房号业务记录为空,禁止编辑'; pageControl1.Pages[1].Enabled:=false; end else begin pageControl1.Pages[1].Enabled:=true; label27.caption:=table3.fieldbyName('block').AsString+'→'+table3.fieldbyName('house').AsString+'→'+table3.fieldbyName('floor').AsString+'→'+table3.fieldbyName('room').AsString; end;end;procedure Tmainfrm.Table3PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);beginShowMessage('警告! 数据存盘失败!');Exit;end;end.-------------MainFrm Code ---The End----------------------------- 呵呵!不要当作垃圾哦我给all up 加分怎么没反应?还是显示0 安慰一下taitan兄弟 灰鸽子源码编译出现Too many actual parameters错误 delphi中的全局数组问题,我很菜,愁死我了 新手请教:请问哪里能找到ODBC for Oracle 的驱动 关于传奇外挂中某些功能实现的方法 请问各位大侠,怎样跨越工具的障碍?? DELPHIBBS 被黑 dbgrid中显示字段值的问题 B/S结构 关于数据指针的问题 socket传输文件时如何将分割后的文件合起来? 谁可以告诉我SDK的概念,请各位大虾赐教!
1.我没有直接使用setfocus{可能是运行的时候,系统需要吧};
2.产生此异常的代码行是table3.filtered:=true;
3.Delphi 5 Developer's Guide上对EInvalidOperation异常的解释为:
当试图对一个没有"父"组件进行操作而这人操作又需要有窗口句柄时将触发这个异常.如下而的 代码:
Var b:TBitBtn;
begin
b:TBitBtn.Create(Self);
b.SetFocus;{这行将导致异常}
end;
请继续关注!:):):)
b.Parent := Form1;就ok了
原来是这样的!
我的表字段里设了一个必填项.{Required Field}
当我使用table1.filter过滤时,会出现空记录的情况,也就是Table1.RecordCount=0,但实际上在DbGrid1显示时,好像会自动Append一条空记录,从而导致记录录入错误,同时也引出一个问题,有没有办法让dbGrid1不要有那条空记录?{不知道这样分析对不对?}
不过说实在的,我刚从php转到delphi,我的代码实在是烂,特在此公布出来让有趣的朋友多提些意见!谢谢啦.
(这是一个售房管理程序)
MainFrm Code as below:
------------------------------------
unit main;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ImgList, ComCtrls, ToolWin, ExtCtrls, Grids, Buttons, DBGrids, Db,
DBTables, StdCtrls, Mask, ShellAPI, DBCtrls;type
Tmainfrm = class(TForm)
ImageList1: TImageList;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
MainMenu1: TMainMenu;
S1: TMenuItem;
E1: TMenuItem;
A1: TMenuItem;
D1: TMenuItem;
V1: TMenuItem;
C1: TMenuItem;
P1: TMenuItem;
H1: TMenuItem;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
X1: TMenuItem;
TreeView1: TTreeView;
StatusBar1: TStatusBar;
PopupMenu1: TPopupMenu;
A2: TMenuItem;
D2: TMenuItem;
C3: TMenuItem;
N1: TMenuItem;
DataSource1: TDataSource;
Table1: TTable;
Table2: TTable;
DataSource2: TDataSource;
N2: TMenuItem;
N3: TMenuItem;
Splitter2: TSplitter;
Bevel1: TBevel;
R1: TMenuItem;
Shape2: TShape;
V2: TMenuItem;
N4: TMenuItem;
S2: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
L1: TMenuItem;
C4: TMenuItem;
DataSource3: TDataSource;
Table3: TTable;
QReportPop: TPopupMenu;
R2: TMenuItem;
B1: TMenuItem;
N8: TMenuItem;
Panel2: TPanel;
SpeedButton1: TSpeedButton;
Image1: TImage;
Shape1: TShape;
N9: TMenuItem;
A3: TMenuItem;
D3: TMenuItem;
C5: TMenuItem;
A4: TMenuItem;
D4: TMenuItem;
C6: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
cardPop: TPopupMenu;
V3: TMenuItem;
V4: TMenuItem;
E2: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
L2: TMenuItem;
C2: TMenuItem;
Label16: TLabel;
Splitter1: TSplitter;
H2: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
F1: TMenuItem;
T1: TMenuItem;
E3: TMenuItem;
N16: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
A5: TMenuItem;
N19: TMenuItem;
P2: TMenuItem;
I1: TMenuItem;
T2: TMenuItem;
N20: TMenuItem;
S3: TMenuItem;
K1: TMenuItem;
N22: TMenuItem;
SIMTELA1: TMenuItem;
N23: TMenuItem;
D5: TMenuItem;
E4: TMenuItem;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Bevel2: TBevel;
Label27: TLabel;
GroupBox1: TGroupBox;
Label6: TLabel;
Label7: TLabel;
Label2: TLabel;
Bevel3: TBevel;
Label18: TLabel;
Bevel5: TBevel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Bevel6: TBevel;
Label22: TLabel;
Label23: TLabel;
Label10: TLabel;
Bevel4: TBevel;
Label11: TLabel;
Label24: TLabel;
AreaRoom: TDBEdit;
AreaTerrace: TDBEdit;
AreaOther: TDBEdit;
TotalArea: TDBEdit;
total_fund: TDBEdit;
GroupBox4: TGroupBox;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
GroupBox2: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
ClientName: TDBEdit;
identity_id: TDBEdit;
Tel: TDBEdit;
MobilePhone: TDBEdit;
address: TDBEdit;
GroupBox5: TGroupBox;
Label26: TLabel;
Label25: TLabel;
Label17: TLabel;
Label28: TLabel;
Label30: TLabel;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
N24: TMenuItem;
S4: TMenuItem;
Label29: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
UnitPriceRoom: TDBComboBox;
UnitPriceTerrace: TDBComboBox;
UnitPriceOther: TDBComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label34: TLabel;
DBEdit1: TDBEdit;
Shape3: TShape;
procedure X1Click(Sender: TObject);
procedure A2Click(Sender: TObject);
procedure D2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure C3Click(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure C4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure L1Click(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure R2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure S2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure A3Click(Sender: TObject);
function fList(selText,selTextfather:string):string;
procedure PageControl1Change(Sender: TObject);
procedure V3Click(Sender: TObject);
procedure V4Click(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure SIMTELA1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure QReportPopPopup(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure S4Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Table3AfterScroll(DataSet: TDataSet);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Table3PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
private
{ Private declarations }
public
{ Public declarations } end;var
mainfrm: Tmainfrm;implementationuses edit, house_info, card_report, qreport, splash, setCenter;
{$R *.DFM}procedure Tmainfrm.X1Click(Sender: TObject);
begin
close;
end;procedure Tmainfrm.A2Click(Sender: TObject);
var myname,type_id,t1,t2,father:string;
catnode:tTreenode;
begin
case TreeView1.Selected.ImageIndex of
0:begin
t1:='添加新地块';
t2:='请输入新添的地块名称:';
end;
1:begin
t1:='添加新楼幢';
t2:='请输入新添的楼幢名称:';
end;
2:begin
t1:='添加新楼层';
t2:='请输入新添的楼层名称:';
end;
3:begin
t1:='添加新房间';
t2:='请输入新添的房间名称:';
end;
4:begin
saleEditFrm.show;
exit;
end;
end;
myname:=inputBox(t1,t2,'');
if myname<>'' then
begin
table1.filter:='';
table1.filtered:=true;
if table1.Locate('name',myname,[]) and ((TreeView1.Selected.ImageIndex=0) or (TreeView1.Selected.ImageIndex=1)) then
begin
ShowMessage('对不起,已经存在'''+myname+''',请另取名称!');
exit;
end;
if treeView1.selected.ImageIndex<>0 then
begin
if treeView1.selected.ImageIndex=3 then
begin
table1.first;
table1.locate('name',treeview1.Selected.Parent.Text,[]);
father:=table1.fieldByName('id').Text;
table1.first;
table1.locate('name;father',varArrayof([treeView1.Selected.Text,father]),[]);
end
else
table1.locate('name',treeView1.Selected.Text,[]);
father:=table1.fieldByName('id').Text;
type_id:=table1.fieldByName('type_id').Text;
end
else begin
father:='0';
type_id:='0';
end;
if table1.canModify then
begin
table1.Append;
table1.fieldbyName('name').value:=myname;
table1.fieldByName('father').value:=father;
table1.fieldByName('type_id').value:=strtoint(type_id);
table1.post;
end;
catNode:=TreeView1.Items.AddChild(TreeView1.Selected,myname);
catNode.ImageIndex:=TreeView1.Selected.ImageIndex+1;
catNode.selectedIndex:=5;
end;
end;procedure Tmainfrm.D2Click(Sender: TObject);
begin
if MessageDlg('确定要删除 '+treeView1.selected.text+' 吗?',mtInformation,[mbOK,mbCancel],0)=mrOk then
begin
table1.filter:='';
table1.filtered:=true;
if table1.locate('name',treeView1.selected.text,[]) then
begin
table1.delete;
treeView1.Items.Delete(treeView1.Selected);
end
else showMessage('数据有误,不能正常删除!');
end;
end;procedure Tmainfrm.FormCreate(Sender: TObject);
var
catnode,child,child1:ttreenode;
id,father:string;
begin
treeview1.items.clear;
catnode:=treeview1.Items.AddFirst(nil,'所有楼幢名单');
catnode.ImageIndex:=0;
catnode.Selectedindex:=0;
table1.filter:='';
table1.filtered:=true;
table1.filter:='father=''0''';
table1.filtered:=true;
if table1.Active=false then table1.active:=true;
table1.First;
while not table1.Eof do
begin
id:=table1.fields[0].asString;
child:=treeview1.Items.AddChild(treeview1.items.GetFirstNode,table1.Fields[1].Text);
child.ImageIndex:=1;
child.Selectedindex:=5;
father:=table1.Fields[0].text;
table2.filter:='';
table2.filtered:=true;
table2.filter:='father='+id;
table2.Filtered:=true;
if table2.Active=false then table2.active:=true;
table2.first;
while not table2.eof do
begin
child1:=treeview1.Items.addchild(child,table2.fields[1].text);
child1.ImageIndex:=2;
child1.Selectedindex:=5;
table2.Next;
end;
table1.Next;
end;
//TreeView1.AutoExpand:=true;
//table2.free;
end;
function Tmainfrm.fList(selText,selTextfather:string):string;
var father:string;child:tTreeNode;imgidx:smallint;
begin
statusBar1.Panels.Items[0].Text:=selText;
table1.filter:='';
table1.filtered:=true;
if treeView1.Selected.ImageIndex=3 then
begin
Table1.locate('name',selTextFather,[]);
father:=Table1.FieldByName('id').Text;
Table1.locate('name;father',varArrayof([selText,father]),[]);
end
else if treeView1.Selected.ImageIndex=4 then
begin
result:='3';
exit;
end
else Table1.locate('name',selText,[]);
result:=table1.fieldbyname('type_id').AsString;
if not (TreeView1.Selected.HasChildren) then
begin
father:=Table1.FieldByName('id').Text;
table1.Filter:='father='+father;
table1.Filtered:=true;
if (table1.RecordCount<>0) then
begin
table1.first;
if TreeView1.Selected.ImageIndex=3 then
imgidx:=4
else
imgidx:=3;
while not table1.eof do
begin
child:=treeview1.Items.AddChild(TreeView1.Selected,table1.Fields[1].Text);
child.ImageIndex:=imgidx;
child.Selectedindex:=5;
table1.next;
end;
end;
end;
end;procedure Tmainfrm.C3Click(Sender: TObject);
var changeto:string;
begin
table1.filter:='';
table1.filtered:=true;
if table1.locate('name',treeView1.selected.text,[]) then
begin
changeto:=inputbox('修改名称','修改 '+treeview1.selected.text+' 为:','');
if changeto<>'' then
begin
if table1.canmodify then
begin
table1.Edit;
table1.fieldByname('name').value:=changeto;
table1.post;
FormCreate(Sender);
treeView1.FullExpand;
end;
end;
end
else
ShowMessage('数据操作有误,请重试');
end;procedure Tmainfrm.PopupMenu1Popup(Sender: TObject);
begin
D2.Enabled:=true;
C3.Enabled:=true;
d2.Caption:='删除'''+TreeView1.Selected.Text+'''(&D)';
c3.Caption:='修改'''+TreeView1.Selected.Text+'''(&C)';
case TreeView1.selected.ImageIndex of
4: begin
if Table3.RecordCount=0 then
A2.caption:='添加业务记录'
else
A2.caption:='编辑业务记录';
end;
3: begin
A2.Caption:='添加新室号';
end;
0: begin
A2.Caption:='添加新地块';
D2.Enabled:=false;
C3.Enabled:=false;
end;
1:begin
A2.Caption:='添加新楼幢';
end;
2:begin
A2.Caption:='添加新楼层';
end;
end;
end;procedure Tmainfrm.C4Click(Sender: TObject);
begin
if not c4.Checked then
begin
c4.Checked:=true;
l1.Checked:=false;
PageControl1.ActivePageIndex:=1;
end;
end;procedure Tmainfrm.N6Click(Sender: TObject);
begin
application.Minimize;
end;procedure Tmainfrm.L1Click(Sender: TObject);
begin
if not L1.Checked then
begin
l1.Checked:=true;
C4.Checked:=false;
PageControl1.ActivePageIndex:=0;
end;
end;procedure Tmainfrm.B1Click(Sender: TObject);
begin
treeview1.visible:=false;
end;procedure Tmainfrm.R2Click(Sender: TObject);
begin
treeview1.visible:=true;
end;procedure Tmainfrm.ToolButton5Click(Sender: TObject);
begin
table3.first;
end;procedure Tmainfrm.ToolButton6Click(Sender: TObject);
begin
table3.Prior;
end;procedure Tmainfrm.ToolButton7Click(Sender: TObject);
begin
table3.next;
end;procedure Tmainfrm.ToolButton8Click(Sender: TObject);
begin
table3.Last;
end;procedure Tmainfrm.ToolButton2Click(Sender: TObject);
begin
if MessageDLG('确定要删除房号为("'+label27.caption+'")的这条记录吗?',mtInformation,[mbOK,mbCancel],0)=mrOk then
table3.delete;
end;procedure Tmainfrm.N4Click(Sender: TObject);
begin
if N4.Checked then
begin
ToolBar1.visible:=false;
N4.Checked:=false;
end
else
begin
ToolBar1.visible:=true;
N4.Checked:=true;
end;
end;procedure Tmainfrm.N9Click(Sender: TObject);
begin
if N9.Checked then
begin
panel2.visible:=false;
N9.Checked:=false;
end
else
begin
panel2.visible:=true;
N9.Checked:=true;
end;
end;procedure Tmainfrm.S2Click(Sender: TObject);
begin
if s2.Checked then
begin
Statusbar1.visible:=false;
s2.Checked:=false;
end
else
begin
Statusbar1.visible:=true;
s2.Checked:=true;
end;
end;
procedure Tmainfrm.ToolButton1Click(Sender: TObject);
begin
if table3.FieldByName('room').asstring='' then
begin
if table3.canmodify then
begin
table3.edit;
table3.fieldByName('room').value:=TreeView1.selected.Text;
table3.fieldByName('floor').value:=TreeView1.selected.Parent.Text;
table3.fieldByName('house').value:=TreeView1.selected.Parent.Parent.Text;
table3.fieldByName('block').value:=TreeView1.selected.Parent.Parent.Parent.Text;
end;
end;
saleEditFrm.show;
end;procedure Tmainfrm.A3Click(Sender: TObject);
begin
houseInfoEditFrm.Show;
end;procedure Tmainfrm.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex=0 then
begin
L1.Checked:=true;
C4.Checked:=false;
end
else
begin
L1.Checked:=false;
C4.Checked:=true;
end;
end;procedure Tmainfrm.V3Click(Sender: TObject);
begin
table3.filter:='';
table3.filtered:=true;
Table3.filter:='room='+DBGrid1.Fields[0].Text;
Table3.filtered:=true;
CardReportFrm.QuickRep1.Preview;
end;procedure Tmainfrm.V4Click(Sender: TObject);
begin
QReportFrm.QuickRep1.Preview;
end;function GetTreeViewFullPath():string;
var CurNode:TtreeNode;father:string;
begin
CurNode:=mainfrm.Treeview1.selected;
while CurNode.Parent<>nil do
begin
father:=CurNode.Text+'→'+father;
CurNode:=CurNode.Parent;
end;
Result:=father;
end;procedure Tmainfrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Table3.Modified then
begin
if MessageDlg('数据曾更改过,是否存盘?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Table3.Post
end;
end;procedure Tmainfrm.TreeView1Change(Sender: TObject; Node: TTreeNode);
var type_id,seltext,selTextFather,father:string;CurNode:TtreeNode;
begin
seltext:=treeview1.selected.text;
CurNode:=TreeView1.Selected;
toolButton1.Enabled:=false;
if CurNode.ImageIndex=3 then selTextFather:=CurNode.parent.Text
else if CurNode.ImageIndex=4 then
begin
father:=CurNode.Text;
toolButton1.Enabled:=true;
end;
father:=GetTreeViewFullPath()+father;
Label16.Caption:=father;
type_id:=flist(seltext,selTextFather);
if Treeview1.Selected.ImageIndex=0 then table3.filter:=''
else if type_id='0' then table3.filter:='block='''+selText+''''
else if type_id='1' then table3.filter:='house='''+selText+''''
else if type_id='2' then table3.filter:='floor='''+selText+''' and house='''+TreeView1.Selected.Parent.Text+''''
else if type_id='3' then table3.filter:='room='''+selText+''' and house='''+TreeView1.Selected.Parent.Parent.Text+''''
else table3.filter:='';
table3.Filtered:=true;
end;procedure Tmainfrm.SIMTELA1Click(Sender: TObject);
begin
SplashFrm := TSplashFrm.Create(Application);
splashfrm.BorderStyle:=bsDialog;
splashfrm.Caption:='关于 simtel售楼管理系统';
splashfrm.Show;
splashfrm.update;
//splashform.button1.visible:=true;
end;procedure Tmainfrm.DBGrid1DblClick(Sender: TObject);
begin
if table3.FieldByName('room').Asstring<>'' then
PageControl1.ActivePageIndex:=1
else if TreeView1.Selected.ImageIndex=4 then
ToolButton1.Click;
end;procedure Tmainfrm.QReportPopPopup(Sender: TObject);
begin
if TreeView1.Visible then
begin
b1.Enabled:=true;
r2.Enabled:=false;
end
else begin
b1.Enabled:=false;
r2.Enabled:=true;
end;
end;procedure Tmainfrm.ToolButton11Click(Sender: TObject);
begin
ShellExecute (Handle, 'open',
PChar ('c:\windows\calc.exe'), '', '', sw_ShowNormal);
end;procedure Tmainfrm.SpeedButton1Click(Sender: TObject);
begin
ShellExecute (Handle, 'open',
PChar ('http://www.xts.com.cn'), '', '', sw_ShowNormal);
end;procedure Tmainfrm.ScrollBar1Change(Sender: TObject);
begin
//SendMessage(Panel1.Handle, EM_SCROLLCARET, 0, 10);
//SendMessage(Panel1.Handle, EM_SCROLL, SB_LINEDOWN, 0)
//PostMessage(GroupBox3.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
PostMessage(panel1.Handle, WM_VSCROLL, SB_LINEUP, 0)
end;procedure Tmainfrm.S4Click(Sender: TObject);
begin
setCenterFrm.Show;
end;procedure Tmainfrm.DBGrid1CellClick(Column: TColumn);
begin
if table3.FieldByName('room').asString<>'' then
label16.caption:=Table3.fieldByName('block').AsString+'→'+Table3.fieldByName('House').AsString+'→'+Table3.fieldByName('floor').AsString+'→'+Table3.fieldByName('room').AsString;end;procedure Tmainfrm.Table3AfterScroll(DataSet: TDataSet);
begin
if table3.Eof then
begin
ToolButton7.Enabled:=false;
ToolButton8.Enabled:=false;
end
else if table3.Bof then
begin
ToolButton5.Enabled:=false;
ToolButton6.Enabled:=false;
end
else
begin
ToolButton5.Enabled:=true;
ToolButton6.Enabled:=true;
ToolButton7.Enabled:=true;
ToolButton8.Enabled:=true;
end; if table3.FieldByName('room').AsString='' then
begin
label27.caption:='没有指定房号或者该房号业务记录为空,禁止编辑';
pageControl1.Pages[1].Enabled:=false;
end
else
begin
pageControl1.Pages[1].Enabled:=true;
label27.caption:=table3.fieldbyName('block').AsString+'→'+table3.fieldbyName('house').AsString+'→'+table3.fieldbyName('floor').AsString+'→'+table3.fieldbyName('room').AsString;
end;
end;procedure Tmainfrm.Table3PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
ShowMessage('警告! 数据存盘失败!');
Exit;
end;end.-------------MainFrm Code ---The End-----------------------------
不要当作垃圾哦
我给all up 加分怎么没反应?
还是显示0