主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.07.25;
下载:[xml.tar.bz2];

向下

是否可以使表单透明 找到类似的分支


Glonia Zbanov   (2002-07-15 13:06) [0]

是否可以使表单透明
如果answer = true则如何。



BizonWar   (2002-07-15 13:11) [1]

这是可能的。
见。
createpolygonrgn(p,10,ALTERNATE);
setwindowrgn(form1.handle,h,true);



LENIN INC   (2002-07-15 13:22) [2]

解析:

首先,在受保护的声明中(在受保护的单词之后),我们将声明两个程序。 最初,这个词不存在,所以你必须自己输入(你可以在公开之前):

保护
程序RebuildWindowRgn;
程序调整大小; 覆盖;

然后在公告中(现在公开)我们发布设计师的公告。 我们需要覆盖它,所以我们添加override关键字:

构造函数Create(AOwner:TComponent);覆盖;

在实现区域(在单词实现之后),我们将构造函数描述如下:

履行
{$ R * .DFM}
构造函数TForm1.Create(AOwner:TComponent);
开始
继承;
HorzScrollbar.Visible:= false;
VertScrollbar.Visible:= false;
RebuildWindowRgn;
结束;

资源形式{$ R * .DFM}保持不变。 单词inherited表示使用此过程的标准处理程序。 我们刚刚删除了滚动条。

HorzScrollbar.Visible:= false;
VertScrollbar.Visible:= false;

(skrolbary)这样他们就不会干涉。 并使用RebuildWindowRgn过程构建了该区域。
重新声明的Resize过程的主体如下所示:

程序TForm1.Resize;
开始
继承;
RebuildWindowRgn;
结束;

这里我们只是在用户调整窗口大小时重建区域。

最后,我们描述了RebuildWindowRgn的过程:

程序TForm1.RebuildWindowRgn;
VAR
FullRgn,Rgn:THandle;
ClientX,ClientY,i:整数;
开始
ClientX:=(Width-ClientWidth)div 2;
ClientY:= Height-ClientHeight-ClientX;
FullRgn:= CreateRectRgn(0,0,Width,Height);
Rgn:= CreateRectRgn(ClientX,ClientY,ClientX + ClientWidth,ClientY + ClientHeight);
CombineRgn(FullRgn,FullRgn,Rgn,RGN_DIFF);
对于i:= 0到ControlCount-1做
与控制[i]开始
Rgn:= CreateRectRgn(ClientX + Left,ClientY + Top,ClientX + Left + Width,ClientY + Top + Height);
CombineRgn(FullRgn,FullRgn,Rgn,RGN_OR);
结束;
SetWindowRgn(Handle,FullRgn,true);
结束;

这是怎么做到的?

在变量ClientX和ClientY中,我们放置客户端部分的相对坐标。 为整个表单创建一个区域:

FullRgn:= CreateRectRgn(0,0,Width,Height);

为表单的客户端部分创建一个区域,并从FullRgn中减去它

Rgn:= CreateRectRgn(ClientX,ClientY,ClientX + ClientWidth,ClientY + ClientHeight);
CombineRgn(FullRgn,FullRgn,Rgn,RGN_DIFF);

将循环添加到每个控件元素的FullRgn区域。

对于i:= 0到ControlCount-1做
与控制[i]开始
Rgn:= CreateRectRgn(ClientX + Left,ClientY + Top,ClientX + Left + Width,ClientY + Top + Height);
CombineRgn(FullRgn,FullRgn,Rgn,RGN_OR);
结束;

安装新的窗口区域

SetWindowRgn(Handle,FullRgn,true);



Builder   (2002-07-15 14:11) [3]

看看肥皂 - 我喜欢它:)



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.07.25;
下载:[xml.tar.bz2];

楼上





内存:0.55 MB
时间:0.028 c
1-81244
瓦内克
2002-07-14 19:13
2002.07.25
发展


1-81308

2002-07-12 10:10
2002.07.25
单击按钮将行插入网格单元格


1-81348
Ich hasse
2002-07-13 13:26
2002.07.25
标题栏中的按钮


3-81148
Spinx
2002-07-04 02:10
2002.07.25
FIBPlus 4.6限制?


3-81161
Sergey_
2002-07-04 09:06
2002.07.25
帮助谁知道。 如何在Delphi中声明变量...





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский