本文整理自网络,侵删。
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->unit MyEdit;
interface
uses Messages, Classes, StdCtrls, Controls, Graphics;
type TMyEdit = class(TEdit) private FCanvas: TControlCanvas; FWatermarkHint: string; protected procedure WMPaint(var Message: TWMPaint); message WM_PAINT; procedure CMExit(var Message: TCMExit); message CM_EXIT; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property WatermarkHint: string read FWatermarkHint write FWatermarkHint; end;
implementation
{ TMyEdit }
procedure TMyEdit.CMExit(var Message: TCMExit);begin inherited; Perform(WM_PAINT, 0, 0);end;
constructor TMyEdit.Create(AOwner: TComponent);begin inherited Create(AOwner); FCanvas := TControlCanvas.Create; FCanvas.Control := Self;end;
destructor TMyEdit.Destroy;begin FCanvas.Free; inherited;end;
procedure TMyEdit.WMPaint(var Message: TWMPaint);begin inherited; if (not Focused) and (Self.Text = '') and (FWatermarkHint <> '') then begin FCanvas.Font := Self.Font; FCanvas.Font.Color := clGrayText; FCanvas.TextRect(Self.ClientRect, 1, 1, FWatermarkHint); end;end;
end.
相关阅读 >>
Delphi tms web core js callproc
Delphi xe vcl - tlinklabel(链接标签)
更多相关阅读请进入《Delphi》频道 >>