(200)(在线)如何动态改变不规则窗体大小(欢迎喜欢做播放器的朋友进来交流! ) ( 积分: 200 )

  • 主题发起人 luckywangxw
  • 开始时间
L

luckywangxw

Unregistered / Unconfirmed
GUEST, unregistred user!
我是在formCreate 中根据image1的图像来设置窗体的
要求在运行时,能够改变窗体大小,图像Image1的区域x1->x2,y1->y2(相对图像左上角的坐标值)部分才可以伸缩
------ ----- ------
我的窗体属性borderstyle:=bsnone;
procedure TForm1.FormCreate(Sender: TObject);
var
w1:TBitmap;
w2:TColor;
rgn: HRGN;
begin
w1:=TBitmap.Create;
w1.Assign(image1.Picture.Bitmap);
w2:=w1.Canvas.Pixels[0,0];
rgn := CreateRegion(w1,w2,Handle);
if rgn<>0 then
begin
SetWindowRgn(Handle, rgn, true);
end;
w1.Free;
end;
-------------------------
QQ:375771206
--------------------------
问题背景:
我在做一个播放器(幸运播放 原〈超级播放〉delphi盒子有源码),播放器主窗体是 固定大小的(这个好说),但是播放列表窗口、视频窗口、歌词秀窗口是必须能够改变窗口大小的
希望有兴趣最播放器的朋友一起交流 (^_^)(***现在在线***....)
-----------------------------
《幸运播放》下载连接
http://www.skycn.com/soft/20572.html
**先睹为快**
http://luckyplayer.go3.icpcn.com/images/allsnap.gif
 
我是在formCreate 中根据image1的图像来设置窗体的
要求在运行时,能够改变窗体大小,图像Image1的区域x1->x2,y1->y2(相对图像左上角的坐标值)部分才可以伸缩
------ ----- ------
我的窗体属性borderstyle:=bsnone;
procedure TForm1.FormCreate(Sender: TObject);
var
w1:TBitmap;
w2:TColor;
rgn: HRGN;
begin
w1:=TBitmap.Create;
w1.Assign(image1.Picture.Bitmap);
w2:=w1.Canvas.Pixels[0,0];
rgn := CreateRegion(w1,w2,Handle);
if rgn<>0 then
begin
SetWindowRgn(Handle, rgn, true);
end;
w1.Free;
end;
-------------------------
QQ:375771206
--------------------------
问题背景:
我在做一个播放器(幸运播放 原〈超级播放〉delphi盒子有源码),播放器主窗体是 固定大小的(这个好说),但是播放列表窗口、视频窗口、歌词秀窗口是必须能够改变窗口大小的
希望有兴趣最播放器的朋友一起交流 (^_^)(***现在在线***....)
-----------------------------
《幸运播放》下载连接
http://www.skycn.com/soft/20572.html
**先睹为快**
http://luckyplayer.go3.icpcn.com/images/allsnap.gif
 
用皮肤组件作的吧,改变窗体边框属性能改变啊。
 
给我推荐一款皮肤组件吧,最好是自己能够自由设置每一控件的皮肤
 
这个可以用多个图片来处理,每个图片计算一个REGION,然后整个窗体总的REGION.
也可以通过多个窗体来实现。
 
能否具体介绍一下
每次改变窗口大小后,都要计算region,好像会很慢
 
这个得使用多线程技术
 
你需要把整个UI分割成若干部分,基本上创建一个完整矩形REGION的代价可以不用怎么考虑,你需要考虑的是那些不规则的地方,比如需要镂空的,边缘不规则的.这样的是代价比较高的,很多时候可能需要描点(即使你不做,可能系统也要做).
把固定不变的/规则变化的/不规则变化的,分开.
这就如同做一个柜子,不可能是一整块木头,肯定是若干部分拼装的
 
能不能帮找一些相关的代码,多谢个位
 
其实我的想法是不管hrgn了,让某个能相应鼠标事件的控件,根据它的鼠标事件来判断当前鼠标是不是可以改变窗体,然后在他的消息处理事件里面改变窗口大小,只是自己需要计算,个人看法,仅供参考
 
还有人吗?
 
计算region的确很慢,10微秒改变一次 都很费劲效果不好,不过楼主可以在拉动的时候只显示一个虚筐,鼠标放开再重画就不会有不流畅的问题了。
你的两个版本我以前都看过,不错,后一个歌词show最好能向winamp看齐一点!
还有曲目的拉动你不觉得多了一个对话筐很烦吗
 
呵呵,我也有同感,目前正在改进
目前最新版1.7 免费版Build1004

谢谢朋友们的参与,希望有朋友帮助我实现“歌词自动下载功能”
也欢迎朋友们帮助我改进本软件

欢迎更多的朋友来参与
 
image1装入另外的图。再来一次。窗口就变了
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部