菜鸟送分来啦!界面小问题:50分!不够可以加!(50分)

  • 主题发起人 主题发起人 易渊
  • 开始时间 开始时间

易渊

Unregistered / Unconfirmed
GUEST, unregistred user!
第一次提问:请多多关照!

俺不才,费尽工夫做了一小软件,名为新闻一点通,上网看新闻用的。
http://redone.2699.com
哪位能下载下来看一下,我五个按钮都是speedbutton,尺寸为:一个18*36,四个18*18。
我想把五个按钮换成五张图片,并且不能是一眼就看出是button放图的那种,要cool一点,
真实一些,有动感,移上去有变化,移开又恢复,请不要简单地回答捕捉CM_mouseenter
and CM_mouseleave 事件,我在使用时好象只能用在form中,而且效果不显著,有时无效。
请问详情如何?图片大小是否必须与按钮大小一致?要设置哪些属性才能效果显著。

另:如果哪位高手能做上一套图片EMIL我(red-one@sina.com),一经采纳,
将另有100分相送!不够再加!
说明:本人十分菜,太简单的回答我恐怕看不懂,因为太多的东西没有掌握!谢谢!
 
Use TImage instead
the best button i used is TransBtn
 
去下载http://202.96.70.228/cakk/delphi/vcl_extrapack14.zip吧。
 
能否说说捕捉button's mouseleave and mouseenter两事件的详细办法!
 
to CJ
What's the TransBtn?
to liguang
being download!

还有:为何我装coolmenus控件总出错!说是有一个dpr文件没找到!我是在inprises.com
下的呀!
装rxlib2.75时,总说不能outfile ../help/..,我查过相关的帖子,还是不行!
 
你写的CM_MOUSEENTER和CM_MOUSELEAVE可能是表单的消息,

实际上你应该处理按钮的这两个消息才对。

一个比较好的方法是自己写一个控件(继承于TSpeedButton)

type
TMySpeedButton = class(TSpeedButton)
private
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessaeg); message CM_MOUSELEAVE;
...
end;

...

 
TTransBtn is a famous component. You can find it at most of old delphi site.
http://www.csdn.net should have a copy.
 
to liguang:
装不上,说boxctrls.pas 什么无效的 typecase,E文学前班水平!有两行,是一样的!
还有一些警告!是不是因为我是用D5 trial 的原因?

to CJ:
Sorry!没找到!

to JohnsonGuo:
你的方法我试过,没成功!具体原因不清楚!

to All:
这个装控件怎么会那么难?到现在我还未装成功过,一般是不能装,有些是装了根本就不能用!
Why?我查到一些相关的帖子,可毫无帮助!
 
怎么会不行呢,我随便写了一个控件(代码如下),你把它安装后,
设置HotPicture和NormalPicture属性,运行程序就可以啦。

unit TestButton;

interface

uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
Buttons;

type
TTestButton = class(TSpeedButton)
private
FHotPicture, FNormalPicture: TBitmap;
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
procedure SetHotPicture(Bmp: TBitmap);
procedure SetNormalPicture(Bmp: TBitmap);
public
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
published
property HotPicture: TBitmap read FHotPicture write SetHotPicture;
property NormalPicture: TBitmap read FNormalPicture write SetNormalPicture;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TTestButton]);
end;

procedure TTestButton.CMMouseEnter(var Msg: TMessage);
begin
Glyph.Assign(FHotPicture);
inherited;
end;

procedure TTestButton.CMMouseLeave(var Msg: TMessage);
begin
Glyph.Assign(FNormalPicture);
inherited;
end;

constructor TTestButton.Create(Owner: TComponent);
begin
inherited Create(Owner);
Flat := True;
FHotPicture := TBitmap.Create;
FNormalPicture := TBitmap.Create;
end;

destructor TTestButton.Destroy;
begin
FHotPicture.Free;
FNormalPicture.Free;
inherited;
end;

procedure TTestButton.SetHotPicture(Bmp: TBitmap);
begin
FHotPicture.Assign(Bmp);
end;

procedure TTestButton.SetNormalPicture(Bmp: TBitmap);
begin
FNormalPicture.Assign(Bmp);
Glyph.Assign(FNormalPicture);
end;

end.
 
JohnsonGuo果然是个高手!厉害……
分数你拿定了,不过请等等,还有些没解决的问题!
你能否做一套图片给我,我实在无美术功底!惭愧呀!
谁能送一套图片给我,150分重赏!就算是可怜我好了……5555555555555
 
to JohnsonGuo:
运行不能通过呀!它说找不到文件testbutton.dcu!我该怎么做?
 
dcu的问题已解决!发现我越来越笨啦!
我哭……我哭……我放声大哭……
——哭什么哭,还象是个男人吗你!(谁在答腔!给我闭……闭……闭……嘴……)
 
已寄出。
 
收到,谢谢,只是不尽符合要求!请你再等等!
 
分红了,另外:关于图片的问题随时有效,只需寄到本人邮箱即可!(100分,绝不失言)
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部