2 qq 30877677 qq_30877677 于 2016.01.25 10:06 提问

Delphi 动态创建GridPanel

Delphi 如何动态创建GridPanel
procedure TForm12.FormCreate(Sender: TObject);
var
grdpnl: TGridPanel;
lbl: TLabel;
img: TImage;
begin
grdpnl := TGridPanel.Create(self);
grdpnl.Parent := pnl1;
grdpnl.Align := alTop;
grdpnl.Height := 38;
grdpnl.Caption := 'grdpnl1';
// grdpnl.BevelOuter := bvNone;
grdpnl.ColumnCollection.Add.SizeStyle := ssAbsolute;
grdpnl.ColumnCollection.Add.Value := 10;
grdpnl.ColumnCollection.Add.SizeStyle := ssAbsolute;
grdpnl.ColumnCollection.Add.Value := 50;
grdpnl.ColumnCollection.Add.SizeStyle := ssAbsolute;
grdpnl.ColumnCollection.Add.Value := 10;
grdpnl.ColumnCollection.Add.SizeStyle := ssPercent;
grdpnl.ColumnCollection.Add.Value := 100;
grdpnl.ColumnCollection.Add.SizeStyle := ssAbsolute;
grdpnl.ColumnCollection.Add.Value := 40;
grdpnl.RowCollection.Add.SizeStyle := ssPercent;
grdpnl.RowCollection.Add.Value := 50;
grdpnl.RowCollection.Add.SizeStyle := ssAbsolute;
grdpnl.RowCollection.Add.Value := 17;
grdpnl.RowCollection.Add.SizeStyle := ssPercent;
grdpnl.RowCollection.Add.Value := 50;
//创建lbl
lbl := TLabel.Create(grdpnl);
lbl.Parent := grdpnl;
lbl.Left := 10;
lbl.Top := 10;
lbl.Width := 50;
lbl.Height := 17;
lbl.Align := alClient;
lbl.Caption := '张自力';
lbl.Font.Name := '微软雅黑';
lbl.Font.Color := $00333333;
lbl.Font.Charset := GB2312_CHARSET;
lbl.Font.Size := 9;
lbl.Layout := tlCenter;
这样写不起作用啊,还有Label应该如何分配Colum和Row

2个回答

DieGhost
DieGhost   2016.06.07 01:54
已采纳

grdpnl: TGridPanel;
lbl: TLabel;
img: TImage;

声明放到全局去,局部的过程执行完被自动释放了。

var
grdpnl: TGridPanel;
lbl: TLabel;
img: TImage;

procedure TForm12.FormCreate(Sender: TObject);
begin
//创建代码
end;

procedure TForm12.FormDestroy(Sender: TObject);
begin
grdpnl.free;
lbl.free;
img.free;
end;

caozhy
caozhy   Ds   Rxr 2016.01.26 05:27
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
GRIDPANEL动态布局
<br />最近研究了下GRIDPANEL动态布局的方法,网上好像可用的资料比较少,自己研究了下,好像效果还不错,但实际每用到。记录在此,也许以后用得上。<br />procedure TForm1.DisplayControlGroup(GrpName:string;GrpText:string;ControlType:string;IsNessary:boolean; NeedButton:boolean;ColumnSpan:integ
TGridPanel TFlowPanel
http://edn.embarcadero.com/article/33421
TGridPanel
TGridPanel
GridPanel显示不全的问题
明明有5条数据,但只显示4条。如图所示: 后台调试发现查询出来确实有5条,但仔细观察发现其中一条展开没有内容。于是在数据库里查询一下发现问题:表记录主键ID有重复,原来是表没有建主键,导致ID重复无法展示。 解决方案:将主键重复的记录删掉一条,设置ID为表主键。
动态创建gridpanel
[html] view plaincopy html>       head>           meta http-equiv="Content-Type" content="text/html; charset=gbk">           link rel="stylesheet" type="text/css" href="../../resourc
Ext.NET -- 后台动态添加控件
protected void btnAddItem_Click(object sender, EventArgs e) { int index = this.GetIndexVal(); //Ext.Net.FieldSet fieldSet = new Ext.Net.FieldSet //{
Delphi7下面关于动态创建控件和释放的个人总结
昨天,一个网友在动态创建控件时释放出了错。他的情况是,动态创建了N个Panel,然后双击Panel就释放掉该Panel。可问题就来了,一释放就出错。然后就一顿讨论。当然也有其他的高手给出了代码,可高手的代码用的是XE5写的。我和那位网友都是Delphi7。网上也有别的一些动态创建和释放控件的代码但是跟我这讲的不一样。现在就把我自己在这件事的一些所想写下来,为后面的一些人提示或者铺路。软件这玩意跟环
Delphi原创算法:动态创建30个按钮,每行6个共5行,顺序排列,显示在ScrollBox上
procedure TForm1.Button1Click(Sender: TObject);constiHtoH = 20; //行间距iWtoW = 10; //列间距iPerLine = 6;//每行个数iWidth = 80; //按钮宽度varI : integer;begin//算法:动态创建30个按钮,每行6个共5行,顺序排列,显示在ScrollBox上for I := 1 to
Delphi 代码创建控件与事件动态绑定
procedure TForm1.btn3Click(Sender: TObject); var btn2:TButton; begin btn2:=TButton.Create(Self); btn2.Width:=100; btn2.Height:=50; btn2.Caption:='动态按钮'; btn2.Parent:=Self; end;
delphi程序中动态生成控件的方法
程序中动态生成控件的方法分为三步,首先,定义生成的控件类型,再用Create函数生成控件,最后对控件的相关属性赋值。以TButton控件为例,步骤如下: ---- a. 定义控件类型 var Button1:TButton; ---- b.生成控件 Button1:=TButton. Create(self); Button1.Parent:=Self; //一般将其父控件设置为Self,如果不设