お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"必須入力自動キャンセル MaskEdit"





EditMask に必須入力のフォーマット指定を行うと、フォーカスが離れたり、
ENTER入力で、「入力値が不正です。エスケープキーで変更を取り消せます」
と、いちいち出てしまう現象を回避し、自動的に変更取り消しを行う、
MaskEdit コントロールです。

※Delphi 4, 5 のみ

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask;

type
  TAutoCancelMaskEdit = class(TMaskEdit)
  private
    FAutoCancel: Boolean;
  public
    procedure ValidateEdit; override;
  published
    property AutoCancel: Boolean read FAutoCancel write FAutoCancel;
  end;

implementation

{ TAutoCancelMaskEdit }

procedure TAutoCancelMaskEdit.ValidateEdit;
var
  Str: string;
  Pos: Integer;
begin
  Str := EditText;
  if IsMasked and Modified then
  begin
    if not Validate(Str, Pos) then
    begin
      if FAutoCancel then
      begin
        Reset;
      end else begin
        if not (csDesigning in ComponentState) then
        begin
          MaskState := MaskState + [msReEnter];
          SetFocus;
        end;
        SetCursor(Pos);
        ValidateError;
      end;
    end;
  end;
end;


▲●    2000/06/27 17:01 JDX06162(とんちんかんちんかとちん)
 ■     Inprise Delphi ... The Great Development Kit
uses D2Desktop, D3CSS, D4CSS, D5ENT;

Original document by かとちん        氏 ID:(JDX06162)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum