procedure Twqxgl.SnCheckListBox1ClickCheck(Sender: TObject);
var
vi_nowindex:integer;
p:vsi_pstr; //数据包指针
vs_qxcode:string;
begin vi_nowindex:=SnCheckListBox1.ItemIndex;
p:=SnTreeView1.Selected.Data;
vs_qxcode:=p^.vs_qx;
if SnCheckListBox1.Checked[vi_nowindex]=true then
begin
//选中
vs_qxcode[vi_nowindex]:='Y';
if SnTreeView1.Selected.StateIndex=1 then
begin
SnTreeView1.Selected.StateIndex:=4;
end;
end
else
begin
//取消选中
vs_qxcode[vi_nowindex]:='N';
end; p.vs_qx:=vs_qxcode;
SnTreeView1.Selected.Data:=p;end;注意:数据类型vsi_pstr的声明如下:
type
vr_qx=Record
vs_code:string; //权限项目代码
vs_qx:string; //操作权限代码
end;
vsi_pstr=^vr_qx;
上面一段程序是在一个选择框列表中选择改变时触发的事件,是用来改变树形视图中选择项的状态。不是我在这个选框中的选择项状态改变多次以后,总是会出现内存溢出的错误。请大家帮忙看一看,解决一下。
小弟非常急。
这个树形视图控件是用Snpack1.0的组件中的树形视图
var
vi_nowindex:integer;
p:vsi_pstr; //数据包指针
vs_qxcode:string;
begin vi_nowindex:=SnCheckListBox1.ItemIndex;
p:=SnTreeView1.Selected.Data;
vs_qxcode:=p^.vs_qx;
if SnCheckListBox1.Checked[vi_nowindex]=true then
begin
//选中
vs_qxcode[vi_nowindex]:='Y';
if SnTreeView1.Selected.StateIndex=1 then
begin
SnTreeView1.Selected.StateIndex:=4;
end;
end
else
begin
//取消选中
vs_qxcode[vi_nowindex]:='N';
end; p.vs_qx:=vs_qxcode;
SnTreeView1.Selected.Data:=p;end;注意:数据类型vsi_pstr的声明如下:
type
vr_qx=Record
vs_code:string; //权限项目代码
vs_qx:string; //操作权限代码
end;
vsi_pstr=^vr_qx;
上面一段程序是在一个选择框列表中选择改变时触发的事件,是用来改变树形视图中选择项的状态。不是我在这个选框中的选择项状态改变多次以后,总是会出现内存溢出的错误。请大家帮忙看一看,解决一下。
小弟非常急。
这个树形视图控件是用Snpack1.0的组件中的树形视图
p:Pointer;
begin
new(p);
P:=vsi_pstr;
...........
dispose(p);
end;
var
p:vsi_pstr;
begin
new(p);
.....
dispose(p);//释放指针。
end;