关于delphi7中dbgrid的问题
怎么实现双击最大化,再双击一下恢复正常状态,然后怎么判断这两个状态,根据状态的不同各列占的宽度不同...
怎么实现双击最大化,再双击一下恢复正常状态,然后怎么判断这两个状态,根据状态的不同各列占的宽度不同
展开
2个回答
展开全部
1.,拖一个panel控件,设置align属性为alclient,然后把dbgrid1放置在panel1上面,先随便拖出一个你想要的大小,然后连接好你表格需要显示的数据。
2.在程序的 implementation部分定义一个StringList,用来存放变化前的dbgrid1的宽,高,上边距,左边距信息,定义如下:
str: TStringList;
3.在dbgrid的onDblClick事件下,编写如下代码:
if DBGrid1.Align = alClient then //判断是否最大
begin
DBGrid1.Align := alCustom;//设置表格为自定义
DBGrid1.Width := StrToInt(str.Strings[0]);//恢复表格的高度为变化前
DBGrid1.Height := StrToInt(str.Strings[1]);
DBGrid1.top := StrToInt(str.Strings[2]);
DBGrid1.Left := StrToInt(str.Strings[3]);
Exit;
end;
if DBGrid1.Align <> alClient then //判断是否最大
begin
str := TStringList.Create;
str.add(inttostr(dbGrid1.Width)); //存放变化前的表格宽度
str.add(inttostr(dbGrid1.Height));//存放高度
str.add(inttostr(dbGrid1.top));//存放上边距
str.add(inttostr(dbGrid1.Left));//存放左边距
DBGrid1.Align := alClient;//设置表格大小为和panel1一样大
Exit;
end;
我刚做了个Demo试了,是可以的,你可以试下,如果还有问题再问我了,呵呵
2.在程序的 implementation部分定义一个StringList,用来存放变化前的dbgrid1的宽,高,上边距,左边距信息,定义如下:
str: TStringList;
3.在dbgrid的onDblClick事件下,编写如下代码:
if DBGrid1.Align = alClient then //判断是否最大
begin
DBGrid1.Align := alCustom;//设置表格为自定义
DBGrid1.Width := StrToInt(str.Strings[0]);//恢复表格的高度为变化前
DBGrid1.Height := StrToInt(str.Strings[1]);
DBGrid1.top := StrToInt(str.Strings[2]);
DBGrid1.Left := StrToInt(str.Strings[3]);
Exit;
end;
if DBGrid1.Align <> alClient then //判断是否最大
begin
str := TStringList.Create;
str.add(inttostr(dbGrid1.Width)); //存放变化前的表格宽度
str.add(inttostr(dbGrid1.Height));//存放高度
str.add(inttostr(dbGrid1.top));//存放上边距
str.add(inttostr(dbGrid1.Left));//存放左边距
DBGrid1.Align := alClient;//设置表格大小为和panel1一样大
Exit;
end;
我刚做了个Demo试了,是可以的,你可以试下,如果还有问题再问我了,呵呵
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
var
F正常状态 : boolean;
procedure btn_双击Click() ;
begin
if Not F正常状态 then
Set正常尺寸();
F正常状态:= true; //切换为正常状态标示
end
else begin
Set最大化();
F正常状态 := false;
end;
F正常状态 : boolean;
procedure btn_双击Click() ;
begin
if Not F正常状态 then
Set正常尺寸();
F正常状态:= true; //切换为正常状态标示
end
else begin
Set最大化();
F正常状态 := false;
end;
追问
你这是什么语言.............
追答
这是伪代码……。仿delphi的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询