新建窗体的问题,请高手指教
小弟现在有一个子窗体,子窗体上放了一些edit框和dbgrid以及按钮,现在想把这个子窗体创建在主窗体的一个tabsheet上,但是创建后发现了一个很奇怪的问题,当点击菜单,点开那个子窗体后,想给子窗体上得某个edit框赋值,就报内存错,很神奇,请教高手错在哪里。。。
创建子窗体的程序如下:
procedure TFrmMain.donodeselect(nodestr: string);
var newform:tform;
str1,str2: string;
begin
if nodestr='东区铁前生产实绩录入' then
begin
OpenFormPage('东区铁前生产实绩录入', TFrm_Result_Plan_LT,newform,Frm_Result_Plan_LT);
end;
end;
procedure TFrmMain.OpenFormPage(TabCaption: string;
Formclass: TFormClass; var Myform; AOwner: Tcomponent);
var
i:Integer;
Found:Boolean;
ATab:TRzTabSheet;
AForm:TForm;
begin
Found:=False;
for i:=0 to FormPage.PageCount-1 do
if FormPage.Pages[i].ControlCount>0 then
begin
if FormPage.Pages[i].Controls[0].ClassName=Formclass.ClassName then
begin
FormPage.ActivePageIndex:=i;
Found:=True;
end;
end;
if not Found then
begin
ATab:=TRzTabSheet.Create(FormPage);
ATab.PageControl:=FormPage;
AForm:=TForm(Formclass.Create(self));
ATab.Caption:=TabCaption;
AForm.Parent:=ATab;
AForm.Align:=alclient;
AForm.BorderStyle:=bsNone;
AForm.Visible:=True;
FormPage.ActivePage:=ATab;
AForm.Show;
end;
end;
以下是子窗体定义的内容
unit ResultOfPlan_LT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, RzDBGrid, RzTabs, ImgList, StdCtrls, RzLabel,
RzPanel, RzDBNav, Mask, RzEdit, RzButton, ExtCtrls, DB, DBClient, ADODB,
RzCmboBx, RzRadChk, Buttons, ComCtrls;
type
TFrm_Result_Plan_LT = class(TForm)
ImageList1: TImageList;
Panel2: TPanel;
DS1: TDataSource;
ADOQuery1: TADOQuery;
RzPanel1: TRzPanel;
RzPanel2: TRzPanel;
RzPanel3: TRzPanel;
RzPanel4: TRzPanel;
RzPanel5: TRzPanel;
RzBitBtn1: TRzBitBtn;
RzGroupBox1: TRzGroupBox;
RzDBGrid1: TRzDBGrid;
Timer1: TTimer;
DateTimePicker2: TDateTimePicker;
RzLabel8: TRzLabel;
RzLabel9: TRzLabel;
DateTimePicker3: TDateTimePicker;
RzCheckBox1: TRzCheckBox;
RzCheckBox2: TRzCheckBox;
RzLabel5: TRzLabel;
Cod_LineName: TRzComboBox;
RzLabel13: TRzLabel;
material2: TRzEdit;
RzBitBtn6: TRzBitBtn;
RzGroupBox3: TRzGroupBox;
RzPanel6: TRzPanel;
RzGroupBox2: TRzGroupBox;
RzDBGrid2: TRzDBGrid;
RzBitBtn3: TRzBitBtn;
RzLabel15: TRzLabel;
DateTimePicker4: TDateTimePicker;
RzLabel16: TRzLabel;
RzLabel17: TRzLabel;
shift2: TRzComboBox;
RzLabel18: TRzLabel;
material3: TRzEdit;
RzBitBtn4: TRzBitBtn;
DataSource2: TDataSource;
steelgrade2: TRzComboBox;
RzCheckBox3: TRzCheckBox;
RzPanel7: TRzPanel;
RzLabel7: TRzLabel;
wll: TRzEdit;
RzLabel6: TRzLabel;
RzLabel4: TRzLabel;
RzLabel10: TRzLabel;
DateTimePicker1: TDateTimePicker;
RzLabel12: TRzLabel;
SHIFTID: TRzComboBox;
RzLabel1: TRzLabel;
plantno: TRzEdit;
RzBitBtn20: TRzBitBtn;
LINENAME2: TRzEdit;
RzLabel2: TRzLabel;
tcbz: TRzComboBox;
RzBitBtn2: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
RzLabel3: TRzLabel;
LineCode: TRzEdit;
RzLabel11: TRzLabel;
unitno: TRzEdit;
unitname: TRzEdit;
RzLabel14: TRzLabel;
CDS2: TClientDataSet;
matno: TComboBox;
RzLabel19: TRzLabel;
procedure FormShow(Sender: TObject);
procedure RzBitBtn20Click(Sender: TObject);
procedure comb3KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn22Click(Sender: TObject);
procedure RzBitBtn6Click(Sender: TObject);
procedure RzBitBtn21Click(Sender: TObject);
procedure RzCheckBox1Click(Sender: TObject);
procedure RzCheckBox2Click(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure plantnoChange(Sender: TObject);
procedure NOKeyPress(Sender: TObject; var Key: Char);
procedure RzDBGrid1CellClick(Column: TColumn);
procedure RzEdit2KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn4Click(Sender: TObject);
procedure RzCheckBox3Click(Sender: TObject);
procedure wllKeyPress(Sender: TObject; var Key: Char);
procedure tcbzChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Result_Plan_LT: TFrm_Result_Plan_LT;
sqlstr : string;
v_material,v_steelgrade,v_spec,v_material_type,v_material_txt,v_length,v_FormName : string;
v_plantno:string;
implementation
uses udm, ULogin,Unit_Find_Mat,Umain;
{$R *.dfm}