var
MyLabel: TLabel;
MyEdit: TEdit;
myleft,mytop,mytop1:integer;
addrecord:Taddrecord;
implementation
procedure Taddrecord.FormCreate(Sender: TObject);
var
showsql,sql,fieldname,cfname:String;
begin
myleft:=24;
mytop:=60;
mytop1:=45;
addshowQuery.Close;
addshowQuery.SQL.Clear;
showsql := 'select * from DEPAR_defining where DEPARTID = 1 and isview = 1';
addshowQuery.SQL.Add(showsql);
addshowQuery.Open;
addshowQuery.Recordset.MoveFirst;
while not addshowQuery.Recordset.EOF do
begin
myedit := Tedit.Create(self);
myedit.Parent := addrecord;
with myedit do
begin
left:=myleft;
top:=mytop;
width:=100;
height:=21;
//onkeydown:=myedit_keydown;
fieldname := addshowQuery.Recordset.Fields[2].Value;
//edit1.Text := edit1.Text+' '+fieldname;
name:='edit'+fieldname;
text:='';
cfname := addshowQuery.Recordset.Fields[8].Value;
visible := true;
//hint :='请录入' +cfname;
end;
myleft := myleft + 150;
if myleft> 1024-100-24 then
begin
myleft:=24;
mytop:=mytop+40;
end;
addshowQuery.Recordset.MoveNext;
end;
end;
表DEPAR_defining中的字段全为char,这是一个子窗口,我在调用它的窗口(也为子窗口)中写了如下代码调用:
addrecord:=Taddrecord.Create(Self);
addrecord.show;
但是结果让我很奇怪,程序不报错,一切正常,结果出现的是一个空窗口!!!!我的数据库中保证有数据。使用的是ACCESS数据库。
我把这段程序放在一个单独的工程中,只有一个窗口,它出来过,现在出不来,这是为什么?多谢各位高手了!!!
6 个解决方案
#1
addrecord:=Taddrecord.Create(Self);
addrecord:=Taddrecord.Create(Application);
试一下,你整理一下你的代码,有些乱
addrecord:=Taddrecord.Create(Application);
试一下,你整理一下你的代码,有些乱
#2
把
myedit.Parent := addrecord;
改为
myedit.Parent := self;
myedit.Parent := addrecord;
改为
myedit.Parent := self;
#3
>> myedit.Parent := addrecord;
檢查這句, addrecord 是什麼??
>> text:='';
用
addshowQuery.First;
addshowQuery.Next;
就好
檢查這句, addrecord 是什麼??
>> text:='';
用
addshowQuery.First;
addshowQuery.Next;
就好
#4
myedit := Tedit.Create(self);
改成:myedit := Tedit.Create(addrecord);
改成:myedit := Tedit.Create(addrecord);
#5
容我回去试验一下再来结帖,多谢各位了
#6
多谢,已经成功了,dulei115() 的方法解决了问题,最好能告诉我为什么不能用self,不能在用我的窗口名做父?先结帖了。
#1
addrecord:=Taddrecord.Create(Self);
addrecord:=Taddrecord.Create(Application);
试一下,你整理一下你的代码,有些乱
addrecord:=Taddrecord.Create(Application);
试一下,你整理一下你的代码,有些乱
#2
把
myedit.Parent := addrecord;
改为
myedit.Parent := self;
myedit.Parent := addrecord;
改为
myedit.Parent := self;
#3
>> myedit.Parent := addrecord;
檢查這句, addrecord 是什麼??
>> text:='';
用
addshowQuery.First;
addshowQuery.Next;
就好
檢查這句, addrecord 是什麼??
>> text:='';
用
addshowQuery.First;
addshowQuery.Next;
就好
#4
myedit := Tedit.Create(self);
改成:myedit := Tedit.Create(addrecord);
改成:myedit := Tedit.Create(addrecord);
#5
容我回去试验一下再来结帖,多谢各位了
#6
多谢,已经成功了,dulei115() 的方法解决了问题,最好能告诉我为什么不能用self,不能在用我的窗口名做父?先结帖了。