Revision 1 of 2, by WikiArchive on 11-10-2026. The page as it is now.
TMaskEdit/ja
A TMaskEdit
は'編集マスク'に適合するように編集できる1行テキストを持つコントロールである。Component Palette/jaのAdditional tab/jaにある
編集マスクプロパティ
編集マスクは3つのフィールドよりなり、それぞれがMaskFieldSeparator文字(デフォルトはセミコロン(';'))である。
| フィールド | 型 | 意味 | 必須か否か |
|---|---|---|---|
| 実際のマスク | 文字列 | テキストが適合すべき実際のパターン | はい |
| マスク保存 | 記号 | 実際のマスクのテキストプロパティが含むリテラル文字があるか否かのコントロール。'0'以外の値はリテラル文字が含まれる | いいえ |
| スペース文字 | 記号 | TMaskEditがからの時に示される記号デフォルトは'_' | いいえ |
実際のマスクは以下の意味を持つ文字のパターンからなる:
| 型 | 記号 | ユーザーにより入力されうる文字 | Delphi互換性 |
|---|---|---|---|
| cMask_SpecialChar | \ | これの後に任意の記号を設定できる (例えば'P\a' => 'Pa') | |
| cMask_LowerCase | < | これの後は小文字になる | |
| cMask_UpperCase | > | これの後は大文字になる。 文字列<>は小文字- もしくは大文字の終わりを強制することに注意 | |
| cMask_Letter | l | 1つの文字のみしかし必要ではない | |
| cMask_LetterFixed | L | 1つの文字のみ (任意!) | |
| cMask_AlphaNum | a | 1つのアルファベットおよび数字(['A'..'Z','a..'z','0'..'9']) しかし必要ではない | |
| cMask_AlphaNumFixed | A | 1つのアルファベットおよび数字(任意!) | |
| cMask_AllChars | c | いずれかのUtf8文字しかし必要ではない | |
| cMask_AllCharsFixed | C | いずれかのUtf8文字, しかし空白ではない | |
| cMask_Number | 9 | ただ1つの数字しかし必要ではない[('0'..'9']) | |
| cMask_NumberFixed | 0 | ただ1つの数字(任意!) | |
| cMask_NumberPlusMin | # | ただ1つの数字 [('0'..'9']) '+' または '-'、 しかし必要ではない | |
| cMask_HourSeparator | : | 自動的に時刻区切り文字を入力する | |
| cMask_DateSeparator | / | 自動的に日付区切り文字を入力する | |
| cMask_Hex | h | 1つの16進数しかし必要ではない | Lazarus拡張 Delphiではサポートされない |
| cMask_HexFixed | H | 1つの16進数 | Lazarus拡張 Delphiではサポートされない |
| cMask_Binary | b | 1つの2進数しかし必要ではない | Lazarus拡張 Delphiではサポートされない |
| cMask_BinaryFixed | B | 1つの2進数 | Lazarus拡張 Delphiではサポートされない |
| cMask_SetStart | [ | セットの始まり(もしEnableSets = Trueなら) | Lazarus拡張 Delphiではサポートされない |
| cMask_SetEnd | ] | セットの終わり(もしif EnableSets = Trueなら) | Lazarus拡張 Delphiではサポートされない |
| cMask_SetNegate | ! | セットの否定(セットの内側で始まりに用いられたならば) | Lazarus拡張 Delphiではサポートされない |
| cMask_SetOptional | セットをオプションとする、そのため空を許容する(もしセットの内側で始まりに用いられたならば、セットは否定されない) | ||
| cMask_NoLeadingBlanks | ! | データの始まりの空白を除く、さもなくば後ろの空白を除く |
検証の際の例外を避ける
ユーザーがTMaskEditを離れる(もしくは↵ Enterを押す)時に、コントロールは編集マスク(EditMask)に沿って入力を検証する。
デフォルトは検証が失敗するとEDBEditError例外が発生する。
もし、この例外を捕捉したければ、これをOnException イベントのApplication'sで行わなければならない。
ValidationErrorModeプロパティをmvemEventに設定し、検証エラーをTMaskEditの OnValidationErrorイベントで捕捉すれば、検証の際の例外を避けることができる。
これはTMaskEditのLazarus拡張で、Delphi互換では「ない」ことに注意。
EditMaskのサンプルファイル
TMaskEdit.EditMaskのプロパティエディタはサンプルファイルを入力することをサポートしている。
DelphiサンプルのEditMaskファイル(.dem)はすでに長い間サポートされており、Lazarus 4.0はLazarusサンプルEditMask(.lem)が加えられた。
後者はより寛容な文法で、ホワイトスペースは重要ではない(言い換えればそれは無視される)。
著作権の関係からLazarusはサンプルEditMaskそのものを配布しない。
EditMaskファイルの文法
サンプルEditMaskファイルは平文テキストファイルで、それぞれのサンプルEditMaskが1行に定義されている。
それぞれの行はパイプシンボルで3つのフィールドに分けられている。Delphiサンプルファイル(*.dem)はスペースに囲われてなければならない
//で始まる行は無視される。これを自身のサンプルEditMaskファイルのコメントとして加えることができる。
LazarusはファイルはUTF-8でエンコードされているものとみなすことに注意すること。
| フィールド名 | 意味 |
|---|---|
| キャプション | プロパティエディタに表示されるサンプルエディットマスクの名前 |
| 例 | エディットマスクに対するテキスト例(*) |
| エディットマスク | サンプルエディットマスク |
- 凡例テキストをつけるとき、サンプルエディットマスクのMaskSaveとSpaceCharフィールドは無視される(そしてそれぞれFalse、空白文字(#32)に設定される)。これはDelphi互換性のためになされている
以下のサンプルファイルの行を考えてみること:
IPv4 value | 128255255032 | !999.999.999.999;1;_
これは"IPv4 value"をキャプションに、"128.255.255.032"をプロパティエディタのリストボックス例に表示する(クオートは除く)。
以下も参照のこと
- TMaskEdit doc
- TEdit - A basic field
- TLabeledEdit - An edit field like a TEdit with a label
- TSpinEdit - An edit field for integers defined numbers range limits
- TFloatSpinEdit - An edit field for tiles floating-point numbers with defined numbers range limits
- TEditButton - An edit field like a TEdit with an attached button as a TSpeedBtn
- TFileNameEdit - An edit field with attached TOpenDialog, to enter a file name
- TDirectoryEdit - An edit field with attached TSelectDirectoryDialog, to enter a file path
- TDateEdit - An edit field with attached TCalendarDialog (calendar), to enter a date
- TCalcEdit - An input field with attached TCalculatorDialog (Calculator), to enter a number
- TTIEdit - An RTTI capable input field
From the Free Pascal wiki, page "TMaskEdit/ja", as the Internet Archive kept it on 2025-05-15, last changed on 2024-09-23. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
