读书人

D7 窗体美化念改变窗体的形状求解

发布时间: 2012-12-15 15:16:03 作者: rapoo

D7 窗体美化,想改变窗体的形状,求解……
想实现一个这样的对话框改怎么做呢

[最优解释]

unit Unit1;

interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ExtCtrls, IdHTTP;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure ImageDbClick(Sender: TObject);
procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N1Click(Sender: TObject);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
uses dxGDIPlusClasses;//上面代码漏了引用这单元(DevExpress组件的单元)


procedure TForm1.FormCreate(Sender: TObject);
var ms:TMemoryStream;
idhttp:TIdhttp;
image:TImage;
PopupMenu1:TPopupMenu;
N1:TMenuItem;
begin
ms:=TMemoryStream.Create;
idhttp:=TIdhttp.Create(self);
try
idhttp.Get('http://attimg.dospy.com/img/day_101114/20101114_ccb5b082f312a7e41ce9ea7zIX377777.png',ms);
try
ms.Position:=0;
ms.SaveToFile('c:\tmp.png');
image:=TImage.Create(self);
try
image.Parent:=Form1;
image.Picture.LoadFromFile('c:\tmp.png');
image.AutoSize:=true;
image.OnDblClick:=ImageDbClick;
image.OnMouseDown:=ImageMouseDown;
AutoSize:=true;
Color:=clSkyBlue;
TransparentColor:=true;
TransparentColorValue:=clSkyBlue;
BorderStyle:=bsNone;
PopupMenu1:=TPopupMenu.Create(self);
N1:=TMenuItem.Create(PopupMenu1);
popupmenu1.Items.Add(N1);
N1.Caption:='关闭';
N1.OnClick:=N1Click;
PopupMenu:=PopupMenu1;
except
image.Free;
end;
finally
ms.Free;
end;
finally
idhttp.Free;
end;
end;

procedure TForm1.ImageDbClick(Sender: TObject);//响应双击
begin
showmessage('Hi');
end;

procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;//使窗体可拖动


Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.N1Click(Sender: TObject);//右键菜单
begin
Close;
end;

end.


[其他解释]
http://www.wzsky.net/html/Program/Delphi/43569.html
[其他解释]
这个到处都是
随便百度一下"delphi 异形窗体"
[其他解释]
新建工程、双击窗体后,将下列代码覆盖你的unit1:
unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ExtCtrls, IdHTTP;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure ImageDbClick(Sender: TObject);
procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N1Click(Sender: TObject);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var ms:TMemoryStream;
idhttp:TIdhttp;
image:TImage;
PopupMenu1:TPopupMenu;
N1:TMenuItem;
begin
ms:=TMemoryStream.Create;
idhttp:=TIdhttp.Create(self);
try
idhttp.Get('http://attimg.dospy.com/img/day_101114/20101114_ccb5b082f312a7e41ce9ea7zIX377777.png',ms);
try
ms.Position:=0;
ms.SaveToFile('c:\tmp.png');
image:=TImage.Create(self);
try
image.Parent:=Form1;
image.Picture.LoadFromFile('c:\tmp.png');
image.AutoSize:=true;
image.OnDblClick:=ImageDbClick;
image.OnMouseDown:=ImageMouseDown;
AutoSize:=true;
Color:=clSkyBlue;
TransparentColor:=true;
TransparentColorValue:=clSkyBlue;
BorderStyle:=bsNone;
PopupMenu1:=TPopupMenu.Create(self);
N1:=TMenuItem.Create(PopupMenu1);
popupmenu1.Items.Add(N1);
N1.Caption:='关闭';
N1.OnClick:=N1Click;
PopupMenu:=PopupMenu1;
except
image.Free;


end;
finally
ms.Free;
end;
finally
idhttp.Free;
end;
end;

procedure TForm1.ImageDbClick(Sender: TObject);//响应双击
begin
showmessage('Hi');
end;

procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;//使窗体可拖动
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.N1Click(Sender: TObject);//右键菜单
begin
Close;
end;

end.


[其他解释]
楼上你是在干嘛。。楼主是要异型窗体耶。。
[其他解释]
引用:
楼上你是在干嘛。。楼主是要异型窗体耶。。

难道我这代码的窗体不是异形的?
[其他解释]
DevExpress 组件怎么安装?不是太清除,可以说下吗
[其他解释]
网上有很多DevExpress 下载不确定装哪个版本的
[其他解释]
去掉
uses dxGDIPlusClasses;
这句后也能编译就是运行提示未知的图片类型 png
[其他解释]
6.52版就有了,找不到就找我吧
[其他解释]
还请大侠发个下载链接
[其他解释]
我的邮箱是845454697@qq.com
[其他解释]
已收到,运行OK,感谢 广州仔 大侠的教诲

读书人网 >.NET

热点推荐