============================================================================== 【 名  称 】NumberEdit コントロール 【バージョン】Version 1.35.0 【 対応OS 】Windows Vista/XP/2000 【 対応言語 】Delphi 2009/2007/2006/2005 (Win32のみ) 【 著作権者 】みず 【 開発言語 】D2007版: CodeGear Delphi 2007 for Win32 Professional D2009版: CodeGear Delphi 2009 Enterprise 【テスト環境】D2007版: Windows Vista Ultimate SP1 + Delphi2007 Pro D2009版: Windows Vista Ultimate SP1 + Delphi2009 Ent 【 配布File 】NumberEdit013500.zip 【 種  別 】フリーソフト、Delphiコンポーネント 【 転載条件 】後述の利用規程を参照 ============================================================================== ------------------------------------------------------------------------------ 1.概要 ------------------------------------------------------------------------------ 数値入力専用のEditコンポーネントです。 ------------------------------------------------------------------------------ 2.特長 ------------------------------------------------------------------------------ 数値入力に便利な、次の機能を備えています。  ●3桁ごとのコンマを付ける  ●16進数で入力する  ●小数点以下の桁数指定 ------------------------------------------------------------------------------ 3.ファイル構成 ------------------------------------------------------------------------------ アーカイブには以下のフォルダとファイルが含まれます。  (ルートフォルダ)   NumberEdit.txt ドキュメント(このファイル)  (2007フォルダ) - Delphi2007、およびそれ以前のバージョン向け   NumberEdit.dcr コンポーネントリソース   NumberEdit.pas メインのユニットファイル(Delphi2007版)  (2009フォルダ) - Delphi2009向け   NumberEdit.dcr コンポーネントリソース   NumberEdit.pas メインのユニットファイル(Delphi2009版) ------------------------------------------------------------------------------ 4.インストール ------------------------------------------------------------------------------ アーカイブを適切に展開し、Delphiのパスが通ったフォルダにファイルをコピーします。 Delphiのバージョンによってコピーするファイルが異なりますので、注意してください。 任意のパッケージに NumberEdit.pas を追加して、パッケージをインストールします。 (バージョンアップする場合) 旧バージョンのファイルを新バージョンで上書き後、パッケージを開いてコンパイルし ます。 ------------------------------------------------------------------------------ 5.アンインストール ------------------------------------------------------------------------------ NumberEditをインストールしたパッケージから、NumberEditのファイルを削除して、パ ッケージを再コンパイルします。 ------------------------------------------------------------------------------ 6.使用方法 ------------------------------------------------------------------------------ ビジュアルコンポーネントです。フォーム等に貼り付けて使用します。 ------------------------------------------------------------------------------ 7.TNumberEditメンバ ------------------------------------------------------------------------------ (凡例) ●:プロパティ ○:メソッド ▲:イベント D2007:Delphi2007版のみ D2009:Delphi2009版のみ ● property Alignment: TAlignment; [published] コントロール内での数値の位置揃え方法を指定します。デフォルトはtaRightJustifyで す。 ● property AllowKeys: Boolean; [published] 矢印キーの上下で数値を増減できるかどうかを指定します。Trueの場合、矢印キーで数 値をインクリメント、デクリメントできます。数値の蔵原料はIncrementプロパティで 指定します。 ● property AsInt64: Int64; [public] Valueプロパティの数値をInt64型で扱うためのプロパティです。読み取り、書き込みの 両方が可能です。 ● property AsInteger: Integer; [public] Valueプロパティの数値をInteger型で扱うためのプロパティです。読み取り、書き込み の両方が可能です。 同様のプロパティにIntValueプロパティがありますが、IntValueプロパティは下位互換 のために残しており、通常はこのAsIntegerプロパティを使用してください。 ● property AsText: string; [public][読み取り専用] Valueプロパティの数値を、文字列で取得するためのプロパティです。AsTextプロパテ ィは、CommaプロパティやFixedプロパティの設定に関わりなく、単純に数値を文字列表 現したものを取得します。CommaやFixedプロパティに従って書式化した文字列を取得す るには、FormattedTextプロパティを使用します。 ● property Comma: Boolean; [published] 数値に3桁ごとのコンマを付けるかどうかを指定します。Trueを指定すると、3桁ごとに コンマを付けます。コンマに使用する文字は、形式変数のThousandSeparatorから取得 します。ThousandSeparatorに'#0'を設定している場合、CommaプロパティをTrueにして もコンマが付きません。 このプロパティのデフォルトはFalseです。 ● property Figure: Integer; [published] 小数点以下の精度、または16進数の表示桁数を示します。NumberTypeプロパティによっ て、Figureの意味が異なります。 NumberTypeがntDecimalの場合、Figureは小数点以下の精度を示します。デフォルトは- 1 で、この場合入力したとおりの数値で扱います。Figureプロパティを0以上にすると、 小数点以下の桁数がその精度で扱われます。Figureで指定した桁以下の小数は、 RoundModeプロパティに従って丸められます。Figureプロパティを0以上に設定し、 FixedプロパティをTrueにすると、固定小数点で表示できるようになります。 NumberTypeがntHexの場合、16進数の表示桁数を示します。Figureに2以上を指定すると、 16進数の桁数がFigureの桁数に満たない場合、数値の先頭に0を表示して桁数を調整し ます。Figureが1以下の場合、先頭の0を表示しません。 ● property Fixed: Boolean; [published] 固定小数点で表示するかどうかを示します。FixedをTrueにすると、小数点以下が常に Figureプロパティの桁数で表示されるようになります。固定小数点で表示するには、 Figureプロパティを0以上に設定している必要があります。Figureプロパティが負の場 合、Fixedの設定は無効になります。 デフォルトはFalseです。 ● property FormattedText: string; [public][読み取り専用] Valueプロパティの数値を、書式化した文字列で取得します。CommaプロパティやFixed プロパティが設定されている場合、その設定に従って文字列を書式化します。 単純に数値を文字列にしたものを取得するには、代わりにAsTextプロパティを使用しま す。FormattedTextプロパティは読み取り専用です。 ● property Increment: Extended; [published] 矢印キーを押したときの、Valueプロパティの増減量を指定します。0を指定すると、矢 印キーを押してもValueプロパティが変化しなくなります。また、AllowKeysプロパティ がFalseの場合、Incrementプロパティは無効です。デフォルトは 1 です。 ● property IntValue: Integer; [public][読み取り専用] 入力した数値を整数型で取得します。小数点以下はRoundModeプロパティに従って丸め られます。コンポーネントにコードから数値を入力するには、AsIntegerプロパティや Valueプロパティを使用します。 このプロパティは下位互換のために残しており、通常はAsIntegerプロパティを使用し てください。 ● property Limit: Boolean; [published] 入力する数値を、MinプロパティとMaxプロパティで指定した範囲に限定するかどうかを 示します。デフォルトはFalseで、Min、Maxプロパティに関係なく値を入力できます。 Min、Maxのどちらを有効にするかは、LimitOptionsプロパティで決まります。Limitを Trueにしても、LimitOptionsプロパティが指定されていないときは、範囲を限定できま せん。LimitをTrueにして、LimitOptionsプロパティを適切に設定すると、入力する数 値を限定できます。 ただし、ZeroEnabledプロパティがTrueのときは、Min、Maxプロパティがどのように設 定されていても、0を入力できます。 ● property LimitOptions: TLimitOptions; [published] 入力する数値の最大値、最小値のどちらを有効にするかを決定します。LimitOptionsは 集合型のプロパティで、下記の値のどちらか、または両方を指定できます。   loMax 最大値をMaxプロパティの値に制限する   loMin 最小値をMinプロパティの値に制限する 入力値の制限を有効にするには、LimitプロパティをTrueに指定し、LimitOptionsに適 切な値を指定します。LimitプロパティがFalseの場合、LimitOptionsの設定は無効にな ります。 ● property Max: Extended; [published] 入力可能な最大の数値を指定します。LimitプロパティがTrueのとき、Maxよりも大きい 数値を入力できません。Maxより大きい数値を入力すると、自動的にMaxプロパティと同 じ値に変更します。 ただし、ZeroEnabledプロパティがTrueのときは、Maxプロパティが0より小さく設定さ れていても、0を入力できるようになります。 LimitプロパティがFalseの場合、Maxプロパティは無効です。 ● property MaxIntLength: Integer; [published] 10進数入力時に、整数部分の最大桁数を指定します。MaxIntLengthプロパティで指定し た桁数を超える整数は入力できません。この桁数には、正負記号、3桁ごとのコンマを 含みません。0を指定すると、桁数の制限がなくなります。 このプロパティは16進数の入力時では無効です。 ● property Min: Extended; [published] 入力可能な最小の数値を指定します。LimitプロパティがTrueのとき、Minよりも小さい 数値を入力できません。Minより小さい数値を入力すと、自動的にMinプロパティと同じ 値に変更します。 ただし、ZeroEnabledプロパティがTrueのときは、Minプロパティが0より大きく設定さ れていても、0を入力できるようになります。 LimitプロパティがFalseの場合、Minプロパティは無効です。 ● property NumberType: TNumberType; [published] 入力できる数値の種類を、10進数、または16進数から選択します。デフォルトは ntDecimalで、10進数の数値を入力できます。ntHexを指定すると16進数を入力できます。 ntDecimalのときに入力可能な文字は、0〜9の数字、+、-、及び小数点です。 ntHexでは、0〜9の数字、a〜f、A〜Fの英字小文字と大文字です。また、ValidMinusプ ロパティがTrueの場合は - も使用できます。ntHexを指定した場合、扱える数値は整数 だけになります。ValidMinusプロパティがTrueの場合、最大16桁の16進数を入力できま す。また、ValidMinusプロパティがFalseの場合、最大8桁の16進数を入力できます。         ▲ property OnArrowKeyChange: TArrowKeyEvent; [published] ArrowKeysプロパティがTrueの場合に、矢印キーの上下を押して数値を変更しようとし たとき生成されます。Directionパラメータは数値が増減する方向を示し、矢印キーの 向きと一致します。NewValueパラメータは、変更後のValueプロパティの値を表します。 NewValueパラメータをイベントハンドラで変更し、増減量を調整できます。 ▲ property OnChange: TNotifyEvent; [published] ユーザーがキーボードから数値を入力したり、コードからValueプロパティの値を変更 したりすると生成されます。 ● property RoundMode: TRoundMode; [published] 小数部を丸めるときの、丸め方法を指定します。小数部が丸められるのは、Figureプロ パティに0以上を指定した場合と、IntValueプロパティを使用したときです。 RoundModeプロパティには以下の値を指定できます。   rmDown 切り捨て   rmRound 四捨五入   rmUp 切り上げ デフォルトはrmDownです。 ● property ValidMinus: Boolean; [published] 16進数の負数にマイナス記号を使用するかどうかを指定します。Trueを指定すると、最 上位ビットが1でも正の数として認識し、負数を表すにはマイナス記号を先頭に付けま す。 ValidMinusがFalseの場合、マイナス記号を使用できません。内部的には16進数を Integer型として扱い、最上位ビットが1のときに負数を意味します。 ValidMinusがTrueの場合、内部的には16進数をInt64型として扱います。したがって、 16桁の16進数を入力したとき最上位ビットが1だと、実際の数値は正負が逆転します。 16進数の入力で、内部的なデータ型で扱える範囲をオーバーした場合、範囲エラーが発 生します。 ● property Value: Extended; [published] ユーザーが入力した数値を示します。プログラムのコードからValueプロパティに数値 を直接入力できます。 Valueプロパティの値はFigureプロパティの精度で保持します。また、Limitプロパティ がTrueの場合、Minより小さい値、及びMaxより大きい値は保持できません。 ただし、ZeroEnabledプロパティがTrueのときは、Limitプロパティ、Minプロパティ、 Maxプロパティの設定に関係なく、Valueプロパティに0を設定できるようになります。 ● property Wrap: Boolean; [published] 矢印キーを押してValueプロパティがMaxプロパティを超えようとした場合、またはMin プロパティより小さい値になる場合の動作を指定します。 Trueの場合、Maxを超えると自動的にMinへと値が変化し、反対にMinより小さくなると Maxへ値が変化します。デフォルトはFalseです。 ● property ZeroEnabled: Boolean; [published] 0(ゼロ)を入力できるかどうかを指定します。ZeroEnabledプロパティがTrueのとき、 LimitプロパティやMinプロパティ、Maxプロパティで値の範囲を制限していても、必ず 0を入力できます。 ZeroEnabledプロパティがFalseのときは、MinからMaxの範囲に0がなければ、0を入力で きません。 ● property ZeroVisible: Boolean; [published] 表示される数値が0のとき、この0を表示するかどうかを示します。ZeroVisibleがTrue の場合、0がそのまま表示されます。Falseにすると、0の場合に何も表示されなくなり ます。デフォルトはTrueです。 ------------------------------------------------------------------------------ 8.サポート ------------------------------------------------------------------------------ ソフトウェアの感想、意見、バグ報告などはホームページへお願いします。    flow of water http://wblue.web.infoseek.co.jp/ ------------------------------------------------------------------------------ 9.利用規程 ------------------------------------------------------------------------------ (使用条件)   本コンポーネントはフリーソフトです。本コンポーネントを、作成するアプリケー   ションに自由に組み込むことができます。アプリケーションの種類は問いません。 (免責事項)   本コンポーネントを使用したいかなる結果に対しても、作者は免責とします。本コ   ンポーネントを入手、あるいは使用されたことによって発生するリスクは、すべて   使用者が負うものとします。 (配布条件)   ●アプリケーションの配布     本コンポーネントを組み込んだアプリケーションの配布は、一切制限しません。     また、配布に関してロイヤリティを求めることも一切ありません。   ●コンポーネントの再配布     ○本コンポーネントの再配布       オリジナルに一切の改変を加えない状態であれば、事前の許可なく再配布       することを認めます。ここでいう改変とは、ソースプログラムの修正、       アーカイブ形式の変更、独自ファイルの追加なども含めます。     ○派生したカスタムコンポーネントの配布       本コンポーネントから派生したカスタムコンポーネントは、本コンポーネ       ントのソースを含まない形であれば自由に配布できます。     ○本コンポーネントを修正(改造)したコンポーネントの配布       本コンポーネントを修正(改造)したコンポーネントは、以下のいずれか       の方法でソースを含まないようにすれば自由に配布できます。         ・アプリケーションに組み込み、アプリケーションを配布する         ・コンパイル済みパッケージとして配布する (サポート)   本ソフトウェアの不具合の修正、使用者からの要望への対応などのサポートは実施   しますが、作者にその義務はないものとします。 (規程の変更)   この規程の内容は予告なしに変更することがあります。 ------------------------------------------------------------------------------ 10.履歴 ------------------------------------------------------------------------------ ●1.0-1.31  - 省略 ●1.32.0  - 矢印キーで数値を変更できるようにし、AllowKeys、Increment、Wrapプロパティを   追加した。 ●1.33.0  - 矢印キーで数値を変更しようとしたとき、OnArrowKeyChangeイベントが発生するよ   うにした。 ●1.33.1  - MaxIntLengthプロパティが1以上のとき、数字以外の文字が入力できるようになり、   例外が発生する不具合を修正。 ●1.34.0  - ZeroEnabledプロパティの追加。  - ParentColor、ParentFont、ParentShowHintプロパティのスコープをPublishedに変   更。 ●1.35.0  - Delphi2009に対応。  - 以下のプロパティ、およびイベントを追加。    Align, BevelEdges, BevelInner, BevelKind, BevelOuter, BevelWidth,    DoubleBuffered(D2009のみ), DragCursor, DragKind, DragMode, ImeName,    OEMConvert, ParentDoubleBuffered(D2009のみ), TextHint(D2009のみ),    OnMouseActivate, OnMouseEnter, OnMouseLeave