|
元号選択式日付時刻入力コンポーネント
プロパティ |
| 動作確認等 |
図は Windows XP(SP3) + Delphi 7 Pro で作成 |
| 凡例 |
■ published
□ public
▲ ReadOnly |
| 元号選択時の AutoSelect プロパティ値による違い (結構悩みました)。どちらも通常のコンボボックスとは配色が違います。通常のコンボボックスでは、リストの背景色が Color プロパティの値、選択中の Item の色は clHighlight となっています。 |
 |
図1
AutoSelect = True の場合
- リストの背景色は FocusedColor プロパティの色
- リスト内の選択中の Item は clHighlight の値
- 右は選択終了後
|
 |
図2
AutoSelect = False の場合
- リストの背景色は Color プロパティの色
- リスト内の選択中の Item は FocusedColor の色
- 右は選択終了後
- FocusedColor が clWhite の時は通常のコンボボックスと同じ配色
|
EditStyle の値と入力表示コントロールの対応表です。
日付部 (年月日) だけを表示した場合は、DateTime には日付 (整数部) のみが格納されます。
時刻部のみを表示した場合は、DateTime には時刻の値 (小数点以下の値) のみを格納するようになっています。 |
| desYearMonthDayHMS |
年, 月, 日, 時, 分, 秒 |
 |
| desYearMontHM |
年, 月, 日, 時, 分 |
 |
| desYearH |
年, 月, 日, 時 |
 |
| desYearMonthDay |
年, 月, 日 (デフォルト) |
 |
| desYearMonth |
年, 月 |
 |
| desYear |
年 |
 |
| desHourMinuteSecond |
時, 分, 秒 |
 |
| desHourMinute |
時, 分 |
 |
| desHour |
時 |
 |
| 以下のプロパティは読出し専用で、全て public なプロパティとなっています。これらの値を取得する際、入力日付が不正または範囲外の時はサイレント例外が発生します。この時、整数値のプロパティは 0、文字列のプロパティは空文字となります。和暦では、例えば、昭和70年1月1日を入力した時は、平成7年1月1日 (1995年1月1日) を返し、エラーとはなりません。 |
| ▲ Year |
Integer |
西暦年の値 |
| ▲ Month |
Integer |
月の値
EditStyle が desYear の時は常に 1 |
| ▲ Day |
Integer |
日の値
EditStyle が desYear と desYearMonth のときは常に1 |
| ▲ YearStr |
String |
西暦年の文字列 |
| ▲ MonthStr |
String |
月の値の文字列
EditStyle が desYear の時は常に '1'
|
| ▲ DayStr |
String |
日の値の文字列
EditStyle が desYear と desYearMonth の時は常に '1' |
| ▲ GengoYear |
Integer |
和暦年の値 |
| ▲ GengoYearStr |
String |
和暦年の文字列 |
| ▲ GengoStr |
String |
元号の文字列 |
| ▲ Hour |
Integer |
時の値 |
| ▲ Minute |
Integer |
分の値 |
| ▲ Second |
Integer |
秒の値 |
| ▲ HourStr |
String |
時の文字列 |
| ▲ MinuteStr |
String |
分の文字列 |
| ▲ SecondStr |
String |
秒の文字列 |
| ▲ AmpmStr |
String |
午前か午後の文字列
午前午後の選択コンポボックス非表示の時は空文字 |
| 各プロパティは、Delphi の他のデータベース対応コンポーネントと同じ機能です。TplDBDateEdit 専用です。 |
| ■ ReadOnley |
Boolean |
True にすると表示専用となる |
| ■ DataSouce |
TDataSource |
データソース。リストからも選択可能 |
| ■ Field |
String |
フィールド名。リストからも選択可能 |
リスト1
日付型 (TData) に null や nil は代入できないが、データベースの日付フィルードには、以下の様に nil を設定することができる。 |
Table1.FieldByName('項目名').Assign(nil);
| 各入力用コントロールへのアクセスのためのプロパティです。使用例として、常に平成の年しか入力できないようにする例です。 |
 |
元号選択リスト部分が編集不可 |
| GengoCombo |
TComboBox |
元号選択用のコンボボックス |
| YearEdit |
TplDateEditEdit |
年の入力用コントロール |
| MonthEdit |
TplDateEditEdit |
月の入力用コントロール |
| DayEdit |
TplDateEditEdit |
日の入力用コントロール |
| AmpmCombo |
TComboBox |
午前午後選択用のコンボボックス |
| HourEdit |
TplDateEditEdit |
時の入力用コントロール |
| MinuteEdit |
TplDateEditEdit |
分の入力用コントロール |
| SecondEdit |
TplDateEditEdit |
秒の入力用コントロール |
リスト2
常に平成の年しか入力できないようにする例 |
procedure TForm1.FormCreate(Sender: TObject);
begin
//以下の設定は、表示コントロール等を変更すると無効
with plDateEdit1.GengoCombo do begin
Enabled := False;
Color := plDateEdit1.YearLabel.Color;
ItemIndex := 1;
end;
end;
| 各入力用コントロールの右側のラベルへのアクセスのためのプロパティです。例えば下のコードを実行すると、以下のような配色になります。 |
| YearLabel |
TplDateEditLabel |
年のラベル |
| MonthLabel |
TplDateEditLabel |
月のラベル |
| DayLabel |
TplDateEditLabel |
日のラベル |
| HourLabel |
TplDateEditLabel |
時のラベル |
| MinuteLabel |
TplDateEditLabel |
分のラベル |
| SecondLabel |
TplDateEditLabel |
秒のラベル |
procedure TForm1.FormCreate(Sender: TObject);
begin
with plDateEdit1 do begin
YearLabel.Color := $004D5F6A;
MonthLabel.Color := $004D5F6A;
DayLabel.Color := $004D5F6A;
YearLabel.Font.Color := clWhite;
MonthLabel.Font.Color := clWhite;
DayLabel.Font.Color := clWhite;
end;
end;
|