zoukankan      html  css  js  c++  java
  • 在TEdit中显示水印提示


    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, 
    00);
    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, 
    11, FWatermarkHint);
      
    end;
    end;

    end.
  • 相关阅读:
    android-为应用单元测试
    android手机拨号器实现
    android模拟器使用
    android开发环境搭建
    C语言之关键字
    linux shell脚本基础-----3
    linux shell脚本基础-----2
    linux shell脚本基础-----1
    Android学习计划
    MySql 绿色版配置
  • 原文地址:https://www.cnblogs.com/klaus/p/1815030.html
Copyright © 2011-2022 走看看