不是,我总是跟踪到子窗体的show时出错,在用上些简单窗体做子窗体时一切正常,我想,问题可能出在子窗体上,
解决方案 »
- 想自己在公司里组个局域网的私服,哪里有比较好的私服下载?
- 桌球赛事管理数据库设计?
- 高分求教图像处理中计算面积的问题!
- 请问哪里有象Excel工作部底下的'\sheet1/\sheet2/\sheet3/'之类的控件?
- 在做Rave報表時,為什麼只顯示5個字段,而數據源中有好多呀???? 急救!!!
- 也有一颗小星星了...散分!!
- 请问如何在程序启动时在edit1.text里显示机器名或者本机IP?
- 一个关于线程中数组传送的问题,请进
- 我用Visual CHM做帮助,为什么html文件中的图形显示不出来?
- 请问怎么往数据表里 M 类型的字段添加内容??
- 谁用过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
可能是窗体并没有和中间层“连通”吧
很抱歉
帮不了你了