如何在edit上做个背景图片
解决方案 »
- 急!插入数据库时汉字被除2截断了,字母没问题。 源代码还是数据库的问题。在线等,谢谢!
- 可否设置日期分隔符,把'-'改成其它的,比如 '2005-01-28' 变成 '2005/01/28' ?
- Rave在Execute之后怎么出来一个英文的界面啊?怎么办?
- 怎样把EDIT和DATETIMEPICKER中的东西导 到库里去
- 简单的数据库的问题,还望指教!
- 如何得知EXCEL里一页拥有多少行
- Delphi 程序创建一个ini文件,放在程序bin目录下,但是非管理员打开操作软件时会提示不能create".ini"文件
- SocketConnection1连接rdm问题
- 很急的问题 关于stringgrid
- 应该是一个比较简单的问题吧------但急死我了!
- 新手求教DBGrid
- 怎样验证在DBGrideh的方格中输入的数据是否有效?
procedure HandleCTLColorEdit(var Msg: TWMCTLCOLOREDIT);message
WM_CTLCOLOREDIT;
代码部分:
procedure TForm1.HandleCTLColorEdit(var Msg: TWMCTLCOLOREDIT);
begin
if Msg.ChildWnd = Edit1.Handle then
begin
SetBkMode(Msg.ChildDC, TRANSPARENT);
Msg.Result := Edit1.Brush.Handle;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Brush.Bitmap:=image1.Picture.Bitmap;//这里背景图片取image1里的图片
edit1.Repaint;
end;
好东东,不过image1里的图片必须为BMP格式的。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Panel1: TPanel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure NewWindowProc(Var Message:TMessage);
end;var
Form1: TForm1;implementation{$R *.dfm}
var
OldWndProc:TWndMethod;
i:integer;procedure TForm1.Button1Click(Sender: TObject);
var c:TCanvas;
bitmap:TBitmap;begin
bitmap:=TBitmap.Create;
bitmap.LoadFromFile('d:\dzrsgl\zt.bmp');
c:=TControlCanvas.Create; TControlCanvas(c).Control:=Edit1; c.Brush.Style:=bsClear;
c.StretchDraw(c.ClipRect,bitmap);
c.Free;end;procedure TForm1.NewWindowProc(var Message:TMessage);
var
c:TCanvas;
bitmap:TBitmap;begin
//执行系统默认的操作
OldWndProc(Message);
//如果接受重绘消息
if (Message.Msg=WM_PAINT) then
begin
Inc(i);label1.Caption:=inttostr(i);
bitmap:=TBitmap.Create;
bitmap.LoadFromFile('d:\dzrsgl\zt.bmp');
c:=TControlCanvas.Create;
TControlCanvas(c).Control:=self.Edit1;
c.Brush.Style:=bsClear;
c.StretchDraw(c.ClipRect,bitmap);
c.TextOut(c.ClipRect.Left+1, c.ClipRect.Top+1, Edit1.Text);
c.Free;
Freeandnil(bitmap);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
OldWndProc:=self.Edit1.WindowProc;
self.Edit1. WindowProc:=NewWindowProc;
end;procedure TForm1.Edit1Enter(Sender: TObject);
begin
self.Edit1.Repaint;
end;end.