像dos下那种效果,我查到CreateCaret及相关函数,但用起来没效果
解决方案 »
- 哪位知道哪个组件包中包含FlexActions单元呀!
- 帮忙详细解释一下这条SQL语句
- 烦恼 刚刚写delphi的sql的语句写发 求教
- 大侠请进,数据转换问题,在线等。急!急!急!UP有分
- 如何在Delphi5.0中 调用Sybase存储过程 高手赐教!100分
- 如何查询同音的汉字。欢迎大家光临。在线等待。
- 如何检测windows进入休眠状态,并进行控制?
- 高人,请指点一个报表的问题?
- 我的程序是Delphi+Access,在执行SQL语句时出现天大的怪问题
- TTable 的 排序问题
- DBGrid显示字段名可以和数据库的字段名不一样么
- 哪里有大富翁离線BBS下載?怎麼從WWW.DELPHIBBS.COM上下載281M的大富翁离線BBS不能使用!!!
// 下面是段简化的程序
// 你需要加入WM_CHAR事件的控制,WM_KILLFOCUS的控制,就比较完美了:-)
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TMyEdit = class(TEdit)
private
FCaret: TBitmap;
procedure OnEnter(var msg: TMessage); message WM_SETFOCUS;
public
constructor Create(AOwner: TComponent); override;
end; TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FEdit: TMyEdit;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyEdit }constructor TMyEdit.Create(AOwner: TComponent);
begin
inherited;
FCaret := TBitmap.Create;
FCaret.Height := FCaret.Canvas.TextHeight('>');
FCaret.Width := FCaret.Canvas.TextWidth('>');
FCaret.Canvas.TextOut(0,0,'>');
end;procedure TMyEdit.OnEnter(var msg: TMessage);
begin
CreateCaret(Handle,FCaret.Handle,FCaret.Width,FCaret.Height);
ShowCaret(Handle);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FEdit := TMyEdit.Create(Self);
FEdit.Parent := Self;
end;end.