怎么弹出XP那种气泡提示?还有怎么形成不规则窗口?还有用什么软件制作透明背景的图标ICON?在VC里可以做,但我总不可能为了作个图标而启动VC吧?!啊哈哈
请大家帮帮忙呀,我小鸟呀。谢谢了。
请大家帮帮忙呀,我小鸟呀。谢谢了。
解决方案 »
- 请教,如何实现在多表中取关联数据,并显示
- :***帮忙看看是什么问题,急急急,再线等!!*******
- dbedit可以实现这个功能吗?
- 困扰我多年的问题,如何做最完美的查询?
- 如何判断IMAGE.PICTURE没有内容?在线等待
- 为什么 “基本图象处理代码(1) ehom(原作)”对grayscale不对?
- Delphi
- dll的运行语句应该是在那里,以上的代码望各位大虾阅读后给点解答(关注有分)
- 寻求用DELPHI写的cd抓轨的源程序
- 如何在DBGrid中增加或修改一条纪录?
- 对消息及窗口函数的理解
- 如何用Delphi实现类似ASP中的Session and Applaction两个对象的功能啊?
//作者:S.F.unit uImageForm;interfaceuses
Windows, Messages, SysUtils, Classes, ExtCtrls, Forms, Graphics;type
TImageForm = class(TComponent)
private
FActive, FCanMoveForm: boolean;
FShapeImage: Timage;
FForm: TForm;
FTransparenceColor: Tcolor;
procedure SetActive(Value: Boolean);
procedure shape(a: timage);
procedure ShapeImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SetCanMoveForm(Value: Boolean);
procedure Loaded; override;
protected
public
constructor Create(AOwner: TComponent); override;
published
property Active: Boolean read FActive write SetActive default True; //激活
property CanMoveForm: Boolean read FCanMoveForm write SetCanMoveForm default //是否支持拖动form
True;
property ShapeImage: Timage read FShapeImage write FShapeImage; //图形
property TransparenceColor: Tcolor read FTransparenceColor write //屏蔽色
FTransparenceColor default clWhite;
end;implementationprocedure TImageForm.ShapeImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if (ssLeft in Shift) then
begin
ReleaseCapture;
SendMessage(FForm.Handle, WM_SYSCOMMAND, SC_MOVE + 1, 0);
end;
end;constructor TImageForm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FActive := true;
FCanMoveForm := true;
FForm := (Owner as TForm);
FForm.BorderStyle := bsNone;
FForm.AutoSize := true;
FTransparenceColor := clWhite;
end;procedure TImageForm.Loaded;
begin
inherited Loaded;
if not (csDesigning in Componentstate) then
begin
SetActive(FActive);
SetCanMoveForm(FCanMoveForm);
end;
end;procedure TImageForm.SetCanMoveForm(Value: boolean);
begin
FCanMoveForm := Value;
if not (csDesigning in ComponentState) and (FShapeImage <> nil) then
if FCanMoveForm then
FShapeImage.OnMouseMove := ShapeImageMouseMove
else
FShapeImage.OnMouseMove := nil;
end;procedure TImageForm.SetActive(Value: boolean);
begin
FActive := Value;
if not (csDesigning in ComponentState) then
begin
if Value and (FShapeImage <> nil) then
shape(FShapeImage)
else
setwindowrgn(FForm.Handle, createrectrgn(0, 0, FForm.Left + FForm.Width,
FForm.Top + FForm.Height), true);
end;
end;procedure TImageForm.shape(a: timage);
var
r2: hrgn;
r1: hrgn;
x, y, s, e: integer;
begin
r1 := createrectrgn(0, 0, 0, 0);
for y := 0 to a.Height do
begin
x := 0;
s := 0;
e := 0;
repeat
x := x + 1;
while (a.canvas.pixels[x, y] = FTransparenceColor) and (x <= a.width) do
begin
x := x + 1;
s := x;
end;
while (a.canvas.pixels[x, y] <> FTransparenceColor) and (x <= a.width) do
begin
x := x + 1;
e := x;
end;
if s <= e then
begin
r2 := createrectrgn(s, y, e, y + 1);
combinergn(r1, r1, r2, rgn_or);
deleteobject(r2);
end; until x >= a.width
end;
setwindowrgn(FForm.handle, r1, true);
end;end.
createrectrgn搞不规则Form,用以前一个组件ABC就很好,这个东西2年没升级了
http://www.obsof.com/index.html,在以前,这个ABC真的是很好用的制作Icon的推荐用Icon Cool Editor,简单又好用
http://community.csdn.net/Expert/topic/3135/3135866.xml?temp=.6976129