• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

关于Parent问题

xiaofeng_cxy 2002-10-14 07:05:49
我想将一个窗体上的控件的Parent改为加外一个窗体上的Panel
不知道为什么不行?
总是提示have no parent???
代码如下:
function AssnGoods(GoodsNo:String;GoodsRecord:TGoodsRecord;X,Y:Integer;Parent,CurCtrl,NextCtrl:TWinControl):Boolean;
var
ssql:String;
li:TListItem;
begin
Result:=False;
with frmzxgPublicUnit do
begin
Fx:=X;
Fy:=Y;
FFlag:='goods';
FGoodsInfo:=@GoodsRecord;
FParent:=Parent;
FCurCtrl:=CurCtrl;
FNextCtrl:=NextCtrl;
lvAssn.Columns[0].Caption:='商品编码';
lvAssn.Columns[1].Caption:='商品名称';
lvAssn.Parent:=Parent;
//设置ListView的位置
{if X+lvAssn.Width>Parent.ClientWidth then
lvAssn.Left:=Parent.ClientWidth-lvAssn.Width
else}
lvAssn.Left:=X;
{if Y+lvAssn.Height>Parent.ClientHeight then
lvAssn.Top:=Parent.ClientHeight-lvAssn.Height
else}
lvAssn.Top:=Y;
//
lvAssn.Items.Clear;
ssql:='select * from jxc_Spda where f_Jb='+IntToStr(FJB)+
' and f_bm like '''+GoodsNo+'%''';
with adsAssn do
begin
Close;
CommandText:=ssql;
Open;
if not IsEmpty then
if RecordCount=1 then
if FieldByName('f_mj').AsInteger=1 then
begin
with GoodsRecord do
begin
f_Bm:=FieldByName('f_Bm').AsString;
f_Mc:=FieldByName('f_Mc').AsString;
f_Hh:=FieldByName('f_Hh').AsString;
f_Spcd:=FieldByName('f_Spcd').AsString;
f_Ggxh:=FieldByName('f_Ggxh').AsString;
f_Spsl:=FieldByName('f_Spsl').AsString;
f_Jldw1:=FieldByName('f_Jldw1').AsString;
f_Jldw2:=FieldByName('f_Jldw2').AsString;
f_Dwbl2:=FieldByName('f_Dwbl2').AsFloat;
f_Pcgl:=FieldByName('f_Pcgl').AsString;
f_Cbhsfs:=FieldByName('f_Cbhsfs').AsString;
f_Jb:=FieldByName('f_Jb').AsInteger;
f_Mj:=FieldByName('f_Mj').AsInteger;
f_Zhjj:=FieldByName('f_Zhjj').AsFloat;
f_Qssj:=FieldByName('f_Qssj').AsFloat;
end; //with GoodsRecord
FJb:=1;
lvAssn.Visible:=False;
NextCtrl.SetFocus;
Exit;
end //if FieldByName('f_Mj')
else
begin
while not Eof do
begin
li:=lvAssn.Items.Add;
li.Caption:=FieldByName('f_bm').AsString;
li.SubItems.Add(FieldByName('f_Mc').AsString);
Next;
end; //wihle
end;
end; //with adsAssn
lvAssn.Visible:=True;
lvAssn.SetFocus; //就在这个地方提示"have no parent??
lvAssn.Items[0].Selected:=True;
lvAssn.Items[0].Focused:=True;
end; //with frmzxgPublicUnit
end;

请各们大侠指教!!
我在线恭候!!!!!!!!!!!!
...全文
11 点赞 收藏 1
写回复
1 条回复
lxpbuaa 2002年10月14日
frmzxgPublicUnit 是什么?窗体还是Panel?
“我想将一个窗体上的控件的Parent改为加外一个窗体上的Panel”,那么frmzxgPublicUnit因该是“外一个窗体上的Panel”上的一个控件,
lvAssn.Parent:= Parent;才是正确的。
另:

lvAssn.SetFocus; 前 frmzxgPublicUnit(假设是窗体)应该显示出来,比如:
frmzxgPublicUnit.Show;
lvAssn.SetFocus;


—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————


—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1471

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告