为什么在将一个已做好的窗体设为一另一个窗体一个panel的子窗体时出错 不是,我总是跟踪到子窗体的show时出错,在用上些简单窗体做子窗体时一切正常,我想,问题可能出在子窗体上, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你先把窗体的Visible设成True试一下!不行的话把代码贴出来. 你的问题怎么没有断点,我想你还是用"入坞"来做吧,看看帮助中的Dock,或是Demo中的Docking例子,虽然比较乱。 uses Unit2;{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);begin Form2:=TForm2.Create(Application); Form2.Parent:=Panel1; Form2.show;end;可以啊 我估计你是在FormCreate中做的,把它搬到FormActivate中做吧。另外,有没有调用Focus方法? 我是在改别人的程序,程序中有8个显示关联表信息的子窗体和一个显示主表信息的主窗体,各个子窗体之间的控件与变量重名太多,现在要求把它们放在一个窗体中,以tab页的形式显示,工期很短,望各位高手帮我出出主意,5555555555555555555555 不过如果是mdi窗体就不行了,这可能和mdi的结构有关你会发现在关闭时又错误,可能是mdi的子窗体不能给它设置别的parent 我是在formshow写的如下代码 frmDKHBaseInfo:=TfrmDKHBaseInfo.Create(TabSheet2); frmDKHBaseInfo.Parent:=TabSheet2; frmDKHBaseInfo.show; 结果在运行到show时出错, 其实,在mdi子窗体使用我上面的代码,你会发现它并不是panel的子窗体难怪关闭时发生错误呢呵呵 老兄,不要用mdi结构,就不会出现这种问题了你试试 没有mdi结构,我用的标准的sdi procedure TForm1.Button1Click(Sender: TObject);begin Form2:=TForm2.Create(Application); Form2.Parent:=Tabsheet1; Form2.show;end;不要用Mdi结构,上面的代码我试过了,没问题 回复人: lanren(浪人的梦) (2001-8-8 20:47:55) 得0分 我是在改别人的程序,程序中有8个显示关联表信息的子窗体和一个显示主表信息的主窗体,各个子窗体之间的控件与变量重名太多,现在要求把它们放在一个窗体中,以tab页的形式显示,工期很短,望各位高手帮我出出主意,5555555555555555555555 给的代码太少,毛病可能并不在 Form2:=TForm2.Create(Application); Form2.Parent:=Tabsheet1; Form2.show;这三句上。 My God!你的子窗体上有什么?是不是有数据库组件? 这是其中一个子窗体的的代码,是别人写的,unit unitDKHBaseInfo;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, Db, DBTables;type RCustBaseInfo=record CustCode:String; CustName:String; ChinaSpelling:String; AreaName:String; CustAddress:String; CustNum:String; CustType:String; custKind:String; CustID:String; CustGrade:String; StaffMgr:String; InfoCollector:String; SocialPerson:String; InfoTel:String; BolAgent:String; Level:String; InCode:String; UpCode:String; DeptName:String; CreateDate:String; UpdateDate:String; CustState:String; TelProvider:String; ExtField1:String; ExtField2:String; ExtField3:String; ExtField4:String; ExtField5:String; ExtField6:String; ExtField7:String; ExtField8:String; ExtField9:String; ExtField10:String; end;type TfrmDKHBaseInfo = class(TForm) GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; editCustName: TEdit; editAreaName: TEdit; editAreaAddress: TEdit; editCustNum: TEdit; editCustType: TEdit; editCustKind: TEdit; editCustID: TEdit; editCustGrade: TEdit; editStaffMgr: TEdit; editInfoCollector: TEdit; editSocialPerson: TEdit; editInfoTel: TEdit; editBolAgent: TEdit; editLevel: TEdit; editInCode: TEdit; editUpCode: TEdit; editDeptName: TEdit; editCreateDate: TEdit; editUpdateDate: TEdit; editState: TEdit; GroupBox2: TGroupBox; Label22: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; editExtInfo1: TEdit; editExtInfo2: TEdit; editExtInfo3: TEdit; editExtInfo5: TEdit; editExtInfo6: TEdit; editExtInfo7: TEdit; editExtInfo8: TEdit; editExtInfo9: TEdit; editExtInfo10: TEdit; Label23: TLabel; editExtInfo4: TEdit; editCustCode: TEdit; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); private { Private declarations } l_CustBaseInfo:RCustBaseInfo; procedure ShowCustInfo; procedure InitialRecord; public { Public declarations } p_CustCode:String; procedure QueryCustBaseInfo; end;var frmDKHBaseInfo: TfrmDKHBaseInfo;implementationuses proDBQuery_TLB, unitQueryHint, unitStandard;{$R *.DFM}var l_IDBQuery:IDBQuery;procedure TfrmDKHBaseInfo.InitialRecord;begin l_CustBaseInfo.CustCode:='';; l_CustBaseInfo.CustName:='';; l_CustBaseInfo.ChinaSpelling:='';; l_CustBaseInfo.AreaName:='';; l_CustBaseInfo.CustAddress:='';; l_CustBaseInfo.CustNum:='';; l_CustBaseInfo.CustType:='';; l_CustBaseInfo.custKind:='';; l_CustBaseInfo.CustID:='';; l_CustBaseInfo.CustGrade:='';; l_CustBaseInfo.StaffMgr:='';; l_CustBaseInfo.InfoCollector:='';; l_CustBaseInfo.SocialPerson:='';; l_CustBaseInfo.InfoTel:='';; l_CustBaseInfo.BolAgent:='';; l_CustBaseInfo.Level:='';; l_CustBaseInfo.InCode:='';; l_CustBaseInfo.UpCode:='';; l_CustBaseInfo.DeptName:='';; l_CustBaseInfo.CreateDate:='';; l_CustBaseInfo.UpdateDate:='';; l_CustBaseInfo.CustState:='';; l_CustBaseInfo.TelProvider:='';; l_CustBaseInfo.ExtField1:='';; l_CustBaseInfo.ExtField2:='';; l_CustBaseInfo.ExtField3:='';; l_CustBaseInfo.ExtField4:='';; l_CustBaseInfo.ExtField5:='';; l_CustBaseInfo.ExtField6:='';; l_CustBaseInfo.ExtField7:='';; l_CustBaseInfo.ExtField8:='';; l_CustBaseInfo.ExtField9:='';; l_CustBaseInfo.ExtField10:='';;end;procedure TfrmDKHBaseInfo.ShowCustInfo;begin editCustCode.Text:=l_CustBaseInfo.CustCode; editCustName.Text :=l_CustBaseInfo.CustName; //l_CustBaseInfo.ChinaSpelling; editAreaName.Text :=l_CustBaseInfo.AreaName; editAreaAddress.text:=l_CustBaseInfo.CustAddress; editCustNum.text:=l_CustBaseInfo.CustNum; editCustType.text:=l_CustBaseInfo.CustType; editcustKind.text:=l_CustBaseInfo.custKind; editCustID.text:=l_CustBaseInfo.CustID; editCustGrade.text:=l_CustBaseInfo.CustGrade; editStaffMgr.text:=l_CustBaseInfo.StaffMgr; editInfoCollector.text:=l_CustBaseInfo.InfoCollector; editSocialPerson.text:=l_CustBaseInfo.SocialPerson; editInfoTel.text:=l_CustBaseInfo.InfoTel; editBolAgent.text:=l_CustBaseInfo.BolAgent; editLevel.text:=l_CustBaseInfo.Level; editInCode.text:=l_CustBaseInfo.InCode; editUpCode.text:=l_CustBaseInfo.UpCode; editDeptName.text:=l_CustBaseInfo.DeptName; editCreateDate.text:=l_CustBaseInfo.CreateDate; editUpdateDate.text:=l_CustBaseInfo.UpdateDate; editState.text:=l_CustBaseInfo.CustState; //editTelProvider.text:=l_CustBaseInfo.TelProvider; editExtinfo1.text:=l_CustBaseInfo.ExtField1; editExtinfo2.text:=l_CustBaseInfo.ExtField2; editExtinfo3.text:=l_CustBaseInfo.ExtField3; editExtinfo4.text:=l_CustBaseInfo.ExtField4; editExtinfo5.text:=l_CustBaseInfo.ExtField5; editExtinfo6.text:=l_CustBaseInfo.ExtField6; editExtinfo7.text:=l_CustBaseInfo.ExtField7; editExtinfo8.text:=l_CustBaseInfo.ExtField8; editExtinfo9.text:=l_CustBaseInfo.ExtField9; editExtinfo10.text:=l_CustBaseInfo.ExtField10;end;procedure TfrmDKHBaseInfo.QueryCustBaseInfo;var pRecordSet:OleVariant; strSQL:String;begin try if trim(p_CustCode)='' then Exit; frmQueryHint.show; //显示提示 frmQueryHint.Refresh ; l_IDBQuery:=CoDBQuery.CreateRemote(ServerIP); //执行查询语句 strSQL:='SELECT Custbaseinfo.CUST_CODE, Custbaseinfo.CUST_NAME, Custbaseinfo.CHINA_SPELLING, '; strSQL:=strSQL+' Custbaseinfo.CUST_ADDRESS, Custbaseinfo.CUST_NO, def_dict3.DEF_DICT_NAME, '; strSQL:=strSQL+' Custbaseinfo.KIND, Custbaseinfo.CUST_ID,def_dict2.DEF_DICT_NAME, staff.STAFF_NAME,'; strSQL:=strSQL+' Custbaseinfo.INFO_COLLECTOR, Custbaseinfo.SOCIAL_PERSON, Custbaseinfo.INTO_TEL, '; strSQL:=strSQL+' Custbaseinfo.BOL_AGENT, def_dict4.DEF_DICT_NAME,b.CUST_NAME, '; strSQL:=strSQL+' a.CUST_NAME, dept.DEPTNAME, TO_Char(Custbaseinfo.INSERT_DATE,''YYYY-MM-DD''),'; strSQL:=strSQL+' To_Char(Custbaseinfo.UPDATE_DATE,''YYYY-MM-DD''), def_dict.DEF_DICT_NAME, Custbaseinfo.OPERATOR,'; strSQL:=strSQL+' Custbaseinfo.TEL_PROVIDER, Custbaseinfo.EXT_FIELD1, Custbaseinfo.EXT_FIELD2,'; strSQL:=strSQL+' Custbaseinfo.EXT_FIELD3, Custbaseinfo.EXT_FIELD4, Custbaseinfo.EXT_FIELD5, '; strSQL:=strSQL+' Custbaseinfo.EXT_FIELD6, Custbaseinfo.EXT_FIELD7, Custbaseinfo.EXT_FIELD8,'; strSQL:=strSQL+' Custbaseinfo.EXT_FIELD9, Custbaseinfo.EXT_FIELD10, Area.NAME '; strSQL:=strSQL+' FROM CUSTBASEINFO Custbaseinfo, AREA Area,CUSTBASEINFO a,CUSTBASEINFO b, '; strSQL:=strSQL+' STAFF staff,DEF_DICT def_dict,DEF_DICT def_dict2, DEF_DICT def_dict3, DEF_DICT def_dict4,DEPT dept'; strSQL:=strSQL+' WHERE (Custbaseinfo.AREA_ID = Area.AREA_ID(+))'; strSQL:=strSQL+' AND (Custbaseinfo.AREA_ID = Area.AREA_ID(+)) '; strSQL:=strSQL+' and Custbaseinfo.STAFF_ID=staff.STAFF_ID(+)'; strSQL:=strSQL+' and Custbaseinfo.CUST_STATE=def_dict.DEF_DICT_CODE(+)'; strSQL:=strSQL+' and Custbaseinfo.GRADE=def_dict2.DEF_DICT_CODE(+)'; strSQL:=strSQL+' and Custbaseinfo.CUST_TYPE=def_dict3.DEF_DICT_CODE(+)'; strSQL:=strSQL+' and Custbaseinfo.LEVEL_ID=def_dict4.DEF_DICT_CODE(+)'; strSQL:=strSQL+' and Custbaseinfo.DEPT_ID=dept.DEPT_ID(+)'; strSQL:=strSQL+' and Custbaseinfo.UP_CUST_CODE=a.CUST_CODE(+)'; strSQL:=strSQL+' and Custbaseinfo.IN_CUST_CODE=b.CUST_CODE(+)'; strSQL:=strSQL+' and RTRIM(LTRIM(Custbaseinfo.CUST_CODE))='''+Trim(p_CustCode)+''''; l_IDBQuery.Query(strSQL,pRecordSet); if VarArrayDimCount(pRecordSet)=0 then begin frmQueryHInt.close; //关闭提示 l_IDBQuery:=nil; if pRecordSet=NULL then MessageDlg('查无此记录.',mtInformation,[mbOK],0) else MessageDlg('查询时发生异常.',mtInformation,[mbOK],0); editCustCode.Text :=l_CustBaseInfo.CustCode ; Exit; end; InitialRecord;//清空记录 l_CustBaseInfo.CustCode := Trim(VarToStr(pRecordSet[1,1])); l_CustBaseInfo.CustName := Trim(VarToStr(pRecordSet[1,2])); l_CustBaseInfo.CustAddress := Trim(VarToStr(pRecordSet[1,4])); l_CustBaseInfo.CustNum := Trim(VarToStr(pRecordSet[1,5])); l_CustBaseInfo.CustType := Trim(VarToStr(pRecordSet[1,6])); if Trim(VarToStr(pRecordSet[1,7]))='01' then l_CustBaseInfo.custKind :='个人' else if Trim(VarToStr(pRecordSet[1,7]))='02' then l_CustBaseInfo.custKind :='企业' else l_CustBaseInfo.custKind :=''; l_CustBaseInfo.CustID := Trim(VarToStr(pRecordSet[1,8])); l_CustBaseInfo.CustGrade := Trim(VarToStr(pRecordSet[1,9])); l_CustBaseInfo.StaffMgr := Trim(VarToStr(pRecordSet[1,10])); l_CustBaseInfo.InfoCollector := Trim(VarToStr(pRecordSet[1,11])); l_CustBaseInfo.SocialPerson := Trim(VarToStr(pRecordSet[1,12])); l_CustBaseInfo.InfoTel := Trim(VarToStr(pRecordSet[1,13])); if Trim(VarToStr(pRecordSet[1,14])) ='0' then l_CustBaseInfo.BolAgent :='不是' else if Trim(VarToStr(pRecordSet[1,14])) ='1' then l_CustBaseInfo.BolAgent :='是' else l_CustBaseInfo.BolAgent :=''; l_CustBaseInfo.Level := Trim(VarToStr(pRecordSet[1,15])); l_CustBaseInfo.InCode := Trim(VarToStr(pRecordSet[1,16])); l_CustBaseInfo.UpCode := Trim(VarToStr(pRecordSet[1,17])); l_CustBaseInfo.DeptName := Trim(VarToStr(pRecordSet[1,18])); l_CustBaseInfo.CreateDate:= Trim(VarToStr(pRecordSet[1,19])); l_CustBaseInfo.UpdateDate := Trim(VarToStr(pRecordSet[1,20])); l_CustBaseInfo.CustState := Trim(VarToStr(pRecordSet[1,21])); l_CustBaseInfo.ExtField1 := Trim(VarToStr(pRecordSet[1,24])); l_CustBaseInfo.ExtField2 := Trim(VarToStr(pRecordSet[1,25])); l_CustBaseInfo.ExtField3 := Trim(VarToStr(pRecordSet[1,26])); l_CustBaseInfo.ExtField4 := Trim(VarToStr(pRecordSet[1,27])); l_CustBaseInfo.ExtField5 := Trim(VarToStr(pRecordSet[1,28])); l_CustBaseInfo.ExtField6 := Trim(VarToStr(pRecordSet[1,29])); l_CustBaseInfo.ExtField7 := Trim(VarToStr(pRecordSet[1,30])); l_CustBaseInfo.ExtField8 := Trim(VarToStr(pRecordSet[1,31])); l_CustBaseInfo.ExtField9 := Trim(VarToStr(pRecordSet[1,32])); l_CustBaseInfo.ExtField10 := Trim(VarToStr(pRecordSet[1,33])); l_CustBaseInfo.AreaName := Trim(VarToStr(pRecordSet[1,34])); //执行查询语句 ShowCustInfo;//显示记录 frmQueryHInt.close; //关闭提示 l_IDBQuery:=nil; except frmQueryHInt.close; //关闭提示 l_IDBQuery:=nil; end;end;procedure TfrmDKHBaseInfo.BitBtn2Click(Sender: TObject);begin Close;end;procedure TfrmDKHBaseInfo.FormCreate(Sender: TObject);begin p_CustCode:=''; end;procedure TfrmDKHBaseInfo.BitBtn1Click(Sender: TObject);begin p_CustCode:=Trim(editCustCode.Text) ; QueryCustBaseInfo;end;procedure TfrmDKHBaseInfo.FormDestroy(Sender: TObject);begin frmDKHBaseInfo:=nil;end;procedure TfrmDKHBaseInfo.FormClose(Sender: TObject; var Action: TCloseAction);begin Action:=caFree;end;procedure TfrmDKHBaseInfo.FormShow(Sender: TObject);begin InitialRecord;//清空记录 ShowCustInfo;//显示记录 QueryCustBaseInfo;end;end. 还是把数据库组件都坐在Datamodal里了 procedure TfrmDKHBaseInfo.FormShow(Sender: TObject);begin InitialRecord;//清空记录 ShowCustInfo;//显示记录 QueryCustBaseInfo;end;看来问题出在这里,应该先把数据库初始化,你创建窗体时tabel没有创建,总之,数据库组件还没有创建在Oncreat事件里先创建数据库组件 要不把数据库组件都做在DateModal里反正挺麻烦维护别人的代码最难了呵呵 to aningstar(乘风破浪终有时),多谢你的热心,但是我的 程序并没有用数据组件,数据是从中间层(com)取出的,我想毛病可能出现在子窗体的属性设置或者事件处理 不好意思我不清楚中间层的技术不过我感觉问题就出现在这里,也许应该先初始化COM可能是窗体并没有和中间层“连通”吧很抱歉帮不了你了 drawgrid的应用问题请教 求助:怎么样才能把文字做成图片,即输入你的文字,输出结果为一个这种文字的图片 三层结构真的那么神奇吗? 想不通,这个update怎么调试通不过呢? postmessage如何模拟按下Shift+Down键呀? 帮我解决以下循环控制问题 怎么样在程序中使用特殊字符集? 现在还有那的邮箱不需要smtp密码验证? 有什么办法修改DBNavigator中按钮的图标? 如何建立向导页 谁用过TTREEVIEW 的拖动功能请给我提供一个例子 dll中能否使用ADO
begin
Form2:=TForm2.Create(Application);
Form2.Parent:=Panel1;
Form2.show;
end;
可以啊
你会发现在关闭时又错误,可能是mdi的子窗体不能给它设置别的parent
frmDKHBaseInfo:=TfrmDKHBaseInfo.Create(TabSheet2);
frmDKHBaseInfo.Parent:=TabSheet2;
frmDKHBaseInfo.show;
结果在运行到show时出错,
难怪关闭时发生错误呢
呵呵
你试试
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create(Application);
Form2.Parent:=Tabsheet1;
Form2.show;
end;
不要用Mdi结构,上面的代码我试过了,没问题
我是在改别人的程序,程序中有8个显示关联表信息的子窗体和一个显示主表信息的主窗体,各个子窗体之间的控件与变量重名太多,现在要求把它们放在一个窗体中,以tab页的形式显示,工期很短,望各位高手帮我出出主意,5555555555555555555555
给的代码太少,毛病可能并不在
Form2:=TForm2.Create(Application);
Form2.Parent:=Tabsheet1;
Form2.show;
这三句上。
你的子窗体上有什么?
是不是有数据库组件?
unit unitDKHBaseInfo;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons, Db, DBTables;type
RCustBaseInfo=record
CustCode:String;
CustName:String;
ChinaSpelling:String;
AreaName:String;
CustAddress:String;
CustNum:String;
CustType:String;
custKind:String;
CustID:String;
CustGrade:String;
StaffMgr:String;
InfoCollector:String;
SocialPerson:String;
InfoTel:String;
BolAgent:String;
Level:String;
InCode:String;
UpCode:String;
DeptName:String;
CreateDate:String;
UpdateDate:String;
CustState:String;
TelProvider:String;
ExtField1:String;
ExtField2:String;
ExtField3:String;
ExtField4:String;
ExtField5:String;
ExtField6:String;
ExtField7:String;
ExtField8:String;
ExtField9:String;
ExtField10:String; end;type
TfrmDKHBaseInfo = class(TForm)
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
editCustName: TEdit;
editAreaName: TEdit;
editAreaAddress: TEdit;
editCustNum: TEdit;
editCustType: TEdit;
editCustKind: TEdit;
editCustID: TEdit;
editCustGrade: TEdit;
editStaffMgr: TEdit;
editInfoCollector: TEdit;
editSocialPerson: TEdit;
editInfoTel: TEdit;
editBolAgent: TEdit;
editLevel: TEdit;
editInCode: TEdit;
editUpCode: TEdit;
editDeptName: TEdit;
editCreateDate: TEdit;
editUpdateDate: TEdit;
editState: TEdit;
GroupBox2: TGroupBox;
Label22: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
editExtInfo1: TEdit;
editExtInfo2: TEdit;
editExtInfo3: TEdit;
editExtInfo5: TEdit;
editExtInfo6: TEdit;
editExtInfo7: TEdit;
editExtInfo8: TEdit;
editExtInfo9: TEdit;
editExtInfo10: TEdit;
Label23: TLabel;
editExtInfo4: TEdit;
editCustCode: TEdit;
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
l_CustBaseInfo:RCustBaseInfo;
procedure ShowCustInfo;
procedure InitialRecord;
public
{ Public declarations }
p_CustCode:String;
procedure QueryCustBaseInfo;
end;var
frmDKHBaseInfo: TfrmDKHBaseInfo;implementationuses proDBQuery_TLB, unitQueryHint, unitStandard;{$R *.DFM}var
l_IDBQuery:IDBQuery;procedure TfrmDKHBaseInfo.InitialRecord;
begin l_CustBaseInfo.CustCode:='';;
l_CustBaseInfo.CustName:='';;
l_CustBaseInfo.ChinaSpelling:='';;
l_CustBaseInfo.AreaName:='';;
l_CustBaseInfo.CustAddress:='';;
l_CustBaseInfo.CustNum:='';;
l_CustBaseInfo.CustType:='';;
l_CustBaseInfo.custKind:='';;
l_CustBaseInfo.CustID:='';;
l_CustBaseInfo.CustGrade:='';;
l_CustBaseInfo.StaffMgr:='';;
l_CustBaseInfo.InfoCollector:='';;
l_CustBaseInfo.SocialPerson:='';;
l_CustBaseInfo.InfoTel:='';;
l_CustBaseInfo.BolAgent:='';;
l_CustBaseInfo.Level:='';;
l_CustBaseInfo.InCode:='';;
l_CustBaseInfo.UpCode:='';;
l_CustBaseInfo.DeptName:='';;
l_CustBaseInfo.CreateDate:='';;
l_CustBaseInfo.UpdateDate:='';;
l_CustBaseInfo.CustState:='';;
l_CustBaseInfo.TelProvider:='';;
l_CustBaseInfo.ExtField1:='';;
l_CustBaseInfo.ExtField2:='';;
l_CustBaseInfo.ExtField3:='';;
l_CustBaseInfo.ExtField4:='';;
l_CustBaseInfo.ExtField5:='';;
l_CustBaseInfo.ExtField6:='';;
l_CustBaseInfo.ExtField7:='';;
l_CustBaseInfo.ExtField8:='';;
l_CustBaseInfo.ExtField9:='';;
l_CustBaseInfo.ExtField10:='';;
end;procedure TfrmDKHBaseInfo.ShowCustInfo;
begin editCustCode.Text:=l_CustBaseInfo.CustCode;
editCustName.Text :=l_CustBaseInfo.CustName;
//l_CustBaseInfo.ChinaSpelling;
editAreaName.Text :=l_CustBaseInfo.AreaName;
editAreaAddress.text:=l_CustBaseInfo.CustAddress;
editCustNum.text:=l_CustBaseInfo.CustNum;
editCustType.text:=l_CustBaseInfo.CustType;
editcustKind.text:=l_CustBaseInfo.custKind;
editCustID.text:=l_CustBaseInfo.CustID;
editCustGrade.text:=l_CustBaseInfo.CustGrade;
editStaffMgr.text:=l_CustBaseInfo.StaffMgr;
editInfoCollector.text:=l_CustBaseInfo.InfoCollector;
editSocialPerson.text:=l_CustBaseInfo.SocialPerson;
editInfoTel.text:=l_CustBaseInfo.InfoTel;
editBolAgent.text:=l_CustBaseInfo.BolAgent;
editLevel.text:=l_CustBaseInfo.Level;
editInCode.text:=l_CustBaseInfo.InCode;
editUpCode.text:=l_CustBaseInfo.UpCode;
editDeptName.text:=l_CustBaseInfo.DeptName;
editCreateDate.text:=l_CustBaseInfo.CreateDate;
editUpdateDate.text:=l_CustBaseInfo.UpdateDate;
editState.text:=l_CustBaseInfo.CustState;
//editTelProvider.text:=l_CustBaseInfo.TelProvider;
editExtinfo1.text:=l_CustBaseInfo.ExtField1;
editExtinfo2.text:=l_CustBaseInfo.ExtField2;
editExtinfo3.text:=l_CustBaseInfo.ExtField3;
editExtinfo4.text:=l_CustBaseInfo.ExtField4;
editExtinfo5.text:=l_CustBaseInfo.ExtField5;
editExtinfo6.text:=l_CustBaseInfo.ExtField6;
editExtinfo7.text:=l_CustBaseInfo.ExtField7;
editExtinfo8.text:=l_CustBaseInfo.ExtField8;
editExtinfo9.text:=l_CustBaseInfo.ExtField9;
editExtinfo10.text:=l_CustBaseInfo.ExtField10;end;procedure TfrmDKHBaseInfo.QueryCustBaseInfo;
var
pRecordSet:OleVariant;
strSQL:String;
begin
try
if trim(p_CustCode)='' then Exit;
frmQueryHint.show; //显示提示
frmQueryHint.Refresh ;
l_IDBQuery:=CoDBQuery.CreateRemote(ServerIP);
//执行查询语句
strSQL:='SELECT Custbaseinfo.CUST_CODE, Custbaseinfo.CUST_NAME, Custbaseinfo.CHINA_SPELLING, ';
strSQL:=strSQL+' Custbaseinfo.CUST_ADDRESS, Custbaseinfo.CUST_NO, def_dict3.DEF_DICT_NAME, ';
strSQL:=strSQL+' Custbaseinfo.KIND, Custbaseinfo.CUST_ID,def_dict2.DEF_DICT_NAME, staff.STAFF_NAME,';
strSQL:=strSQL+' Custbaseinfo.INFO_COLLECTOR, Custbaseinfo.SOCIAL_PERSON, Custbaseinfo.INTO_TEL, ';
strSQL:=strSQL+' Custbaseinfo.BOL_AGENT, def_dict4.DEF_DICT_NAME,b.CUST_NAME, ';
strSQL:=strSQL+' a.CUST_NAME, dept.DEPTNAME, TO_Char(Custbaseinfo.INSERT_DATE,''YYYY-MM-DD''),';
strSQL:=strSQL+' To_Char(Custbaseinfo.UPDATE_DATE,''YYYY-MM-DD''), def_dict.DEF_DICT_NAME, Custbaseinfo.OPERATOR,';
strSQL:=strSQL+' Custbaseinfo.TEL_PROVIDER, Custbaseinfo.EXT_FIELD1, Custbaseinfo.EXT_FIELD2,';
strSQL:=strSQL+' Custbaseinfo.EXT_FIELD3, Custbaseinfo.EXT_FIELD4, Custbaseinfo.EXT_FIELD5, ';
strSQL:=strSQL+' Custbaseinfo.EXT_FIELD6, Custbaseinfo.EXT_FIELD7, Custbaseinfo.EXT_FIELD8,';
strSQL:=strSQL+' Custbaseinfo.EXT_FIELD9, Custbaseinfo.EXT_FIELD10, Area.NAME ';
strSQL:=strSQL+' FROM CUSTBASEINFO Custbaseinfo, AREA Area,CUSTBASEINFO a,CUSTBASEINFO b, ';
strSQL:=strSQL+' STAFF staff,DEF_DICT def_dict,DEF_DICT def_dict2, DEF_DICT def_dict3, DEF_DICT def_dict4,DEPT dept';
strSQL:=strSQL+' WHERE (Custbaseinfo.AREA_ID = Area.AREA_ID(+))';
strSQL:=strSQL+' AND (Custbaseinfo.AREA_ID = Area.AREA_ID(+)) ';
strSQL:=strSQL+' and Custbaseinfo.STAFF_ID=staff.STAFF_ID(+)';
strSQL:=strSQL+' and Custbaseinfo.CUST_STATE=def_dict.DEF_DICT_CODE(+)';
strSQL:=strSQL+' and Custbaseinfo.GRADE=def_dict2.DEF_DICT_CODE(+)';
strSQL:=strSQL+' and Custbaseinfo.CUST_TYPE=def_dict3.DEF_DICT_CODE(+)';
strSQL:=strSQL+' and Custbaseinfo.LEVEL_ID=def_dict4.DEF_DICT_CODE(+)';
strSQL:=strSQL+' and Custbaseinfo.DEPT_ID=dept.DEPT_ID(+)';
strSQL:=strSQL+' and Custbaseinfo.UP_CUST_CODE=a.CUST_CODE(+)';
strSQL:=strSQL+' and Custbaseinfo.IN_CUST_CODE=b.CUST_CODE(+)';
strSQL:=strSQL+' and RTRIM(LTRIM(Custbaseinfo.CUST_CODE))='''+Trim(p_CustCode)+''''; l_IDBQuery.Query(strSQL,pRecordSet);
if VarArrayDimCount(pRecordSet)=0 then
begin
frmQueryHInt.close; //关闭提示
l_IDBQuery:=nil;
if pRecordSet=NULL then
MessageDlg('查无此记录.',mtInformation,[mbOK],0)
else
MessageDlg('查询时发生异常.',mtInformation,[mbOK],0);
editCustCode.Text :=l_CustBaseInfo.CustCode ;
Exit;
end; InitialRecord;//清空记录 l_CustBaseInfo.CustCode := Trim(VarToStr(pRecordSet[1,1]));
l_CustBaseInfo.CustName := Trim(VarToStr(pRecordSet[1,2]));
l_CustBaseInfo.CustAddress := Trim(VarToStr(pRecordSet[1,4]));
l_CustBaseInfo.CustNum := Trim(VarToStr(pRecordSet[1,5]));
l_CustBaseInfo.CustType := Trim(VarToStr(pRecordSet[1,6]));
if Trim(VarToStr(pRecordSet[1,7]))='01' then
l_CustBaseInfo.custKind :='个人'
else if Trim(VarToStr(pRecordSet[1,7]))='02' then
l_CustBaseInfo.custKind :='企业'
else
l_CustBaseInfo.custKind :='';
l_CustBaseInfo.CustID := Trim(VarToStr(pRecordSet[1,8]));
l_CustBaseInfo.CustGrade := Trim(VarToStr(pRecordSet[1,9]));
l_CustBaseInfo.StaffMgr := Trim(VarToStr(pRecordSet[1,10]));
l_CustBaseInfo.InfoCollector := Trim(VarToStr(pRecordSet[1,11]));
l_CustBaseInfo.SocialPerson := Trim(VarToStr(pRecordSet[1,12]));
l_CustBaseInfo.InfoTel := Trim(VarToStr(pRecordSet[1,13]));
if Trim(VarToStr(pRecordSet[1,14])) ='0' then
l_CustBaseInfo.BolAgent :='不是'
else if Trim(VarToStr(pRecordSet[1,14])) ='1' then
l_CustBaseInfo.BolAgent :='是'
else
l_CustBaseInfo.BolAgent :='';
l_CustBaseInfo.Level := Trim(VarToStr(pRecordSet[1,15]));
l_CustBaseInfo.InCode := Trim(VarToStr(pRecordSet[1,16]));
l_CustBaseInfo.UpCode := Trim(VarToStr(pRecordSet[1,17]));
l_CustBaseInfo.DeptName := Trim(VarToStr(pRecordSet[1,18]));
l_CustBaseInfo.CreateDate:= Trim(VarToStr(pRecordSet[1,19]));
l_CustBaseInfo.UpdateDate := Trim(VarToStr(pRecordSet[1,20]));
l_CustBaseInfo.CustState := Trim(VarToStr(pRecordSet[1,21]));
l_CustBaseInfo.ExtField1 := Trim(VarToStr(pRecordSet[1,24]));
l_CustBaseInfo.ExtField2 := Trim(VarToStr(pRecordSet[1,25]));
l_CustBaseInfo.ExtField3 := Trim(VarToStr(pRecordSet[1,26]));
l_CustBaseInfo.ExtField4 := Trim(VarToStr(pRecordSet[1,27]));
l_CustBaseInfo.ExtField5 := Trim(VarToStr(pRecordSet[1,28]));
l_CustBaseInfo.ExtField6 := Trim(VarToStr(pRecordSet[1,29]));
l_CustBaseInfo.ExtField7 := Trim(VarToStr(pRecordSet[1,30]));
l_CustBaseInfo.ExtField8 := Trim(VarToStr(pRecordSet[1,31]));
l_CustBaseInfo.ExtField9 := Trim(VarToStr(pRecordSet[1,32]));
l_CustBaseInfo.ExtField10 := Trim(VarToStr(pRecordSet[1,33]));
l_CustBaseInfo.AreaName := Trim(VarToStr(pRecordSet[1,34])); //执行查询语句 ShowCustInfo;//显示记录
frmQueryHInt.close; //关闭提示
l_IDBQuery:=nil;
except
frmQueryHInt.close; //关闭提示
l_IDBQuery:=nil;
end;
end;procedure TfrmDKHBaseInfo.BitBtn2Click(Sender: TObject);
begin
Close;
end;procedure TfrmDKHBaseInfo.FormCreate(Sender: TObject);
begin
p_CustCode:='';
end;procedure TfrmDKHBaseInfo.BitBtn1Click(Sender: TObject);
begin
p_CustCode:=Trim(editCustCode.Text) ;
QueryCustBaseInfo;
end;procedure TfrmDKHBaseInfo.FormDestroy(Sender: TObject);
begin
frmDKHBaseInfo:=nil;
end;procedure TfrmDKHBaseInfo.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;procedure TfrmDKHBaseInfo.FormShow(Sender: TObject);
begin
InitialRecord;//清空记录
ShowCustInfo;//显示记录
QueryCustBaseInfo;end;end.
begin
InitialRecord;//清空记录
ShowCustInfo;//显示记录
QueryCustBaseInfo;end;看来问题出在这里,应该先把数据库初始化,你创建窗体时
tabel没有创建,总之,数据库组件还没有创建
在Oncreat事件里先创建数据库组件
反正挺麻烦
维护别人的代码最难了
呵呵
但是我的 程序并没有用数据组件,数据是从中间层(com)取出的,
我想毛病可能出现在子窗体的属性设置或者事件处理
我不清楚中间层的技术
不过我感觉问题就出现在这里,也许应该先初始化COM
可能是窗体并没有和中间层“连通”吧
很抱歉
帮不了你了