0

TcxDateEdit(DevExpressからの)入力をチェックするルーチンを書いています。数字が入力されると、数字がチェックされ、残りのコンテンツのオートコンプリートが試行されます。この場合、ユーザーが空のTcxDateEditControl に日付を入力すると、現在の月と年が自動的に入力されます。

問題は、ユーザーが数字を入力し、TcxDateEditコントロールに視覚的に追加した後に、このオートコンプリート メソッドを起動する必要があることです。実際の入力を確認できるようにします。しかし、このために、このコントロールが実際に を更新するために使用するメソッドの名前を探していTcxDateEditます。フォーカスが失われたことを意味するメソッドではありません。入力された各キーがこのコントロールのコンテンツとともに文字列変数に追加された後 (またはその間) にコントロールに入力するだけで呼び出されるメソッドを意味します。共通の TEdit コントロールにも同様のメソッドが存在することは確かです。誰かがこのメソッドの名前を教えてくれたら、とても感謝しています。

ありがとうございます!

4

1 に答える 1

1

以下の画像のように、のOnChangeイベントを使用して、求めることが可能ですProperties

TcxDateEdit のプロパティの OnChange イベント

このイベントとEditingText編集用のプロパティを使用すると、次のコードを使用できます。

uses DateUtils, StrUtils;

procedure TForm1.cxDateEdit1PropertiesChange(Sender: TObject);
var
  Month : Word;
  Year  : Word;
  Day : Word;
  BarPos : integer;
  DateEdit : TcxDateEdit;
begin
  DateEdit := (Sender as TcxDateEdit);
  BarPos := Pos('/', DateEdit.EditingText);
  if BarPos > 0 then
  begin
    Month := MonthOf(Now);
    Year  := YearOf(Now);
    Day   := StrToInt(LeftStr(DateEdit.EditingText, BarPos -1 ));
    DateEdit.Date := EncodeDate(Year, Month, Day);
  end;
end;

このコードは、ユーザーが Day を入力すると、現在の月と年を自動的に割り当てますが、要件に合わせて調整できます。

DevExpress ExpressEditors Library のバージョン 6.42 を使用して、Delphi 2006 でこれをテストしました。

于 2013-08-08T08:57:02.307 に答える