如题
解决方案 »
- 请高手帮忙从C++翻译到delphi
- 好心人进来看一下好吗?谁能帮我把以下的代码转DELPHI代码吗?小弟看不懂。。谢谢各位了
- 100分!怎样使StringGrid1不同网格线的Width和Color不同?
- 请问金山词霸里输入英文,左边显示框快速的显示出来,请问这是如何实现的呢?好象用到了win api是吗?请给点例子或提点见意。
- DSN是什么东西,连接数据库的文件么,我怎么没用过呀??????????????
- 程序中多处需要用到高级查询,代码如何封装好?
- 新手提问啊,!
- 打印问题,高手请进,100分,立刻给
- 提写毕业设计的同学请进!!
- 大家周末好,我今天用delphi6做一控件,却遇到一个问题...
- ◆◆在线程中,如何退出程序◆◆
- 请--高手 帮忙 操纵delphi的
到这看看有没有你所学要的:http://www.2ccc.com/article.asp?articleid=827
比如,普通按钮:TButton
var
btnDC: HDC;
begin btnDC := GetDC(Button1.Handle);
FillRect(btnDC,Rect(1,1,Button1.Width-1,Button1.Height-1),HBRUSH(0));
TextOut(btnDC,0,0,PChar(Button1.Caption),Length(Button1.Caption));
ReleaseDC(Button1.Handle,btnDC);
...end;
初始:蓝色;
鼠标左键按下:红色;
鼠标放开:黑色;
鼠标移开:蓝色;
}
unit ColorBtn;interfaceuses Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,
Graphics,Dialogs;type TColorBtn = class(TGraphicControl)
private
OnMDown: TMouseEvent;
OnMUp: TMouseEvent;
protected
procedure Paint;override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);override;
procedure MouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure Click;override;
public
constructor Create(AOwner: TComponent);override;
published
property OnMouseDown: TMouseEvent read OnMDown write OnMDown;
property OnMouseUp: TMouseEvent read OnMUp write OnMup;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('MyTest', [TColorBtn]);
end;{ TColorBtn }procedure TColorBtn.Click;
begin
inherited;end;constructor TColorBtn.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width := 30;
Height := 30;
end;procedure TColorBtn.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
inherited MouseDown(Button, Shift, x, y);
canvas.Brush.Color := clRed;
canvas.FillRect(Rect(0,0,30,30));
end;procedure TColorBtn.MouseLeave(var Message: TMessage);
begin
Paint;
end;procedure TColorBtn.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
inherited MouseUp(Button, Shift, x, y);
canvas.Brush.Color := clBlack;
canvas.FillRect(Rect(0,0,30,30));
end;procedure TColorBtn.Paint;
begin
inherited Paint;
canvas.Brush.Color := clBlue;
canvas.FillRect(Rect(0,0,30,30));
end;end.