以下是我写的代码:{添加好友面板分组控件}
procedure TUserGroup.AddGroups(vGroups:TThreadList);
var iLoop :Integer;
TempCommunity:PCommunity;
GroupObject :PGroupObject;
begin
if vGroups=nil then exit; GroupsList.LockList;
with vGroups.LockList do
for iLoop:=0 to Count-1 do
begin
TempCommunity:=Items[iLoop];
GroupObject.GroupId := TempCommunity.commid;
Println('Client_000000000000000000000000000000');
{创建分组头控件}
GroupObject.GroupList := TbsSkinSpeedButton.Create(nil);//当iLoop=1时,这里报错
Println('Client_-1-1-1-1-1-1-1-1-1-1-1-1');
with GroupObject.GroupList do
begin
Left := 0;
Top := 0;
if iLoop>0 then
Top:= Top+Height-2;
Width := myParent.Width;
Glyph.Assign(TreeClosebmp);
SkinData := bsSkinData;
Flat := true;
Anchors := [akLeft,akTop,akRight,akBottom];
Caption := TempCommunity.xqname;
Margin := 0;
Name := 'MyGroupList'+IntToStr(iLoop);
Tag := iLoop;
Parent := myParent;
OnClick := GroupsOnClick;
OnMouseDown:= GroupsMouseDown;
PopupMenu:= GroupPopupMenu;
end;
Println('Client_aaaaaaaaaaaaaaaaaaaaaa');
{创建分组主体控件}
GroupObject.GroupBox := TbsSkinPanel.Create(nil);
Println('Client_bbbbbbbbbbbbbbbbbbb');
with GroupObject.GroupBox do
begin
Name := 'MyGroupListBox'+IntToStr(iLoop);
Top := GroupObject.GroupList.Top+GroupObject.GroupList.Height;
Left := 0;
Width := myParent.Width;
Anchors := [akLeft,akTop,akRight];
Visible := false;
BorderStyle := bvNone;
SkinData := bsSkinData;
Parent := myParent;
end;
Println('Client_1111111111111111111');
GroupsList.Add(GroupObject);
Println('Client_2222222222222222222222222222');
end;
vGroups.UnlockList;
GroupsList.UnlockList;
Println('Client_33333333333333333333333');
end;
procedure TUserGroup.AddGroups(vGroups:TThreadList);
var iLoop :Integer;
TempCommunity:PCommunity;
GroupObject :PGroupObject;
begin
if vGroups=nil then exit; GroupsList.LockList;
with vGroups.LockList do
for iLoop:=0 to Count-1 do
begin
TempCommunity:=Items[iLoop];
GroupObject.GroupId := TempCommunity.commid;
Println('Client_000000000000000000000000000000');
{创建分组头控件}
GroupObject.GroupList := TbsSkinSpeedButton.Create(nil);//当iLoop=1时,这里报错
Println('Client_-1-1-1-1-1-1-1-1-1-1-1-1');
with GroupObject.GroupList do
begin
Left := 0;
Top := 0;
if iLoop>0 then
Top:= Top+Height-2;
Width := myParent.Width;
Glyph.Assign(TreeClosebmp);
SkinData := bsSkinData;
Flat := true;
Anchors := [akLeft,akTop,akRight,akBottom];
Caption := TempCommunity.xqname;
Margin := 0;
Name := 'MyGroupList'+IntToStr(iLoop);
Tag := iLoop;
Parent := myParent;
OnClick := GroupsOnClick;
OnMouseDown:= GroupsMouseDown;
PopupMenu:= GroupPopupMenu;
end;
Println('Client_aaaaaaaaaaaaaaaaaaaaaa');
{创建分组主体控件}
GroupObject.GroupBox := TbsSkinPanel.Create(nil);
Println('Client_bbbbbbbbbbbbbbbbbbb');
with GroupObject.GroupBox do
begin
Name := 'MyGroupListBox'+IntToStr(iLoop);
Top := GroupObject.GroupList.Top+GroupObject.GroupList.Height;
Left := 0;
Width := myParent.Width;
Anchors := [akLeft,akTop,akRight];
Visible := false;
BorderStyle := bvNone;
SkinData := bsSkinData;
Parent := myParent;
end;
Println('Client_1111111111111111111');
GroupsList.Add(GroupObject);
Println('Client_2222222222222222222222222222');
end;
vGroups.UnlockList;
GroupsList.UnlockList;
Println('Client_33333333333333333333333');
end;
解决方案 »
- 关于文本框不能用ctrl+c和ctrl+v的问题
- Params.WndParent:=GetDesktopWindow 似乎还是有缺陷
- 请教一个问题:dephi+SQL server 中 delete from paper_data1 where word='是' or word='中' 报错
- c语言代码请能帮我翻译成DELPHI
- csdn里blog用法?
- 现在DELPHI中的数据库编程接口哪个比较主流?
- 关于default引起的错误
- 求控制播放进度的控件!
- 因为数据库正在使用,所以未能获得对数据库的排它访问权。
- 双击进入代码窗口后,自动添加一个TAB 的问题?
- 请问这段程序是啥意思,谢谢
- 在有SKIN的情况下,如何让cxButton实现闪动的效果呢?
TGroupObject = record
GroupList :TbsSkinSpeedButton;
GroupBox :TbsSkinPanel;
GroupId :String[32];
ItemObject:TThreadList;
ItemCount :Integer;
end;
是匿名创建对象换成
var
FbsSkinSpeedButton:TbsSkinSpeedButton;FbsSkinSpeedButton:=TbsSkinSpeedButton.Create(nil);//
GroupObject.GroupList :=FbsSkinSpeedButton;
记得要释放!