Delphi 根据图片或者文字制作特殊的窗体
2011-09-23 12:16
357 查看
一、根据图片制作特殊的窗体
1、在FormCreate中计算窗体的不规则区域procedure TForm1.FormCreate(Sender: TObject);
var
ThreadRgn, TmpRgn: HRgn;
X, Y,Height, Width: Integer;
begin
BitMapb := TBitMap.Create;
BitMapb.LoadFromFile(ExtractFileDir(Application.ExeName) + '\Pic\5.bmp');
//设置窗体的大小
Self.Height := BitMapb.Height;
self.Width := BitMapb.Width;
Height := BitMapb.Height;
Width := BitMapb.Width;
//创建矩形区域
ThreadRgn := CreateRectRgn(0, 0, Width, Height);
for Y := 0 to Height do
for X := 0 to Width do
begin
//R := GetRValue(BitMapb.Canvas.Pixels[X, Y]); R为整型
if BitMapb.Canvas.Pixels[X, Y] = rgb(0,0,255) then
begin
TmpRgn := CreateRectRgn(x, y, x + 1, y + 1);
//区域融合,取ThreadRgn与TmpRgn连个区域OR之外的部分赋给ThreadRgn
CombineRgn(ThreadRgn, ThreadRgn, TmpRgn, RGN_XOR);
DeleteObject(TmpRgn);
end;
end;
SetWindowRgn(handle, ThreadRgn, False);//设置窗体区域的有效区域
end;
2、//重新绘制窗体
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(0, 0, BitMapb); // 绘图
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
BitMapb.Free;
end;
3、//设置窗体的移动
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=Mbleft then
begin
ReleaseCapture;
Perform(WM_NCLBUTTONDOWN,HTCAPTION,0);//消息处理
end;
end;
4,其余的可以参考:
Delphi 自定义窗体(最大化、最小化、关闭、窗体的移动)
二、根据文字制作特殊的窗体
procedure TTextForm.FormCreate(Sender: TObject);var
Rgn :HRGN;
begin
TextForm.Color := ClBlue;
//启动一个路径分支,之后执行的GDI绘图命令会自动成为路径的一部分
BeginPath(Canvas.Handle);
SetBKMode(Canvas.Handle,TRANSPARENT);
canvas.Font.Color := ClRed; //无效,因为是透明的。
Canvas.Font.Name := '宋体';
Canvas.Font.Size := 80;
Canvas.TextOut(0,0,'字体窗体');
//结束定义路径。所有绘制操作将在指定的设备场景的路径中生效
EndPath(Canvas.Handle);
//将当前选定的路径转换到指定的区域中
Rgn := PathToRegion(Canvas.Handle);
SetWindowRgn(Handle,Rgn,true);
end;
相关文章推荐
- delphi 根据句柄隐藏和显示窗体(GetWindowLong或者GetWindowInfo)
- TableView里面的cell根据图片或者文字自定义高度
- 基于jquery插件制作左右按钮与标题文字图片切换效果
- 生成加水印的图片类 (支持水印为图片或者文字)
- 关于简单自定义view的View的理解(制作上面是图片下面是文字的控件)
- UIButton更换图片或者文字闪动的解决
- 文字或者图片向上滚动代码
- HTML-css 简单网页小制作(图片、文字)---Day2
- 视频处理 视频上或者文字 图形 图片
- 2D游戏引擎制作:图片与文字
- 仿Android联系人SideBar排序,根据拼音A-Z字母快速导航联系人姓名,以及输入搜索条件过滤,显示姓名的文字图片
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
- duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
- GDI+ 在Delphi程序的应用 -- 制作水印效果图片
- jquery实现marquee效果(文字或者图片的水平垂直滚动)
- [iOS代码] 根据文字生成图片UIImage
- Android 图片添加水印图片或者文字
- 定时器-图片或者文字上下播放
- 将文本文件的内容或者文字保存成图片
- Delphi 在图片上编辑文字