关于动态生成控件的问题?(100分)

  • 主题发起人 主题发起人 baifeng
  • 开始时间 开始时间
B

baifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
由用户随意生成随意数目的BUTTON,然后由用户可以随意拖动各个BUTTON的位置?
最好有能实现的代码?
全部分奉上。谢谢
 
生成数量不定的话,需要动态分配内存,再利用链表或动态数组的结构
保存。生成代码如下:
var
P:^TButton;
begin
p:=allocmem(sizeof(TButton));
p^:=TButton.create(self);
with p^ do
begin
parent:=self;
width:=30;
height:=30;
end;
end;
 
1.生成控件
var
Button:array[1..20] of TButton;
begin
For I:=1 to 20 do
begin
Button:=TButton.Create(Self);
with Button do
begin
Name:='Button'+IntToStr(I);
Panent:=Self;
Caption:=Name;
Left:=...;
Top:=...;
OnMouseDown:=MyMouseDown;
end;
end;
end;

2.随意拖动各个BUTTON的位置
procedure MyMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button <> mbRight then
begin
ReleaseCapture;
(Sender AS TButton).Perform(WM_SysCommand, $f017, 0);
end;
end;
 
谢谢各位了!
再问一个问题:

怎么根据MEMO控件里的文本,设定MEMO控件的最合适的宽和高?
 
后退
顶部