mimi

解決


datatimepicker初期値  2010-01-14 09:04:19  No: 36968

datatimepickerに-1をいれると1899/1/1のような値が表示されますが、これをdatatimepickerに日付が何も入っていない状態することは、date型だから不可能なのでしょうか?


DEKO  2010-01-14 10:12:39  No: 36969

こんにちは。

> date型だから不可能なのでしょうか?
そうなりますね。

procedure TForm1.SetDate(aDate: TDateTime);
begin
  DateTimePicker1.ShowCheckBox := True;
  if aDate = -1 then
    DateTimePicker1.Date := Date
  else
    DateTimePicker1.Date := aDate;
  DateTimePicker1.Checked := (aDate <> -1);
end;

ShowCheckBox を True に設定しておき、
チェックボックスのチェックの有無で "空の日付かどうか" を表現するしかないように思えます。


通りすがり  2010-01-16 01:15:07  No: 36970

こんなことしてみましたが、。。。

procedure TForm1.SetDate(SDate: String);
var
  ADate: TDateTime;
begin
  if TryStrToDate(SDate,ADate) then
  begin
    DateTimePicker1.Format := '';
    DateTimePicker1.DateTime := ADate;
  end
  else
    DateTimePicker1.Format := ' ';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if DateTimePicker1.Format=' ' then
    ShowMessage( 'DateTimePicker Date is NULL' )
  else
    ShowMessage( 'DateTimePicker Date is '
      +FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date) );
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetDate('dummy');
end;

procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
  SetDate(FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date));
end;


mimi  2010-01-16 21:58:59  No: 36971

date関数を使って、現在の日付を表示するようにしました。
御二方、ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加