名前 題名 ▼ Mr.XRAYさん > > おかげ様で勉強させて頂いております.あまり勉強したくないけど.ホホホッ. > > 画面をみると DFMコンバータ というのが... > で,ものはついでにと Delphi 5 でもやってみました. > > TplDateEdit のソースコードの修正が必要です. > バージョン判定で,一番下のバージョンのコードだけ残して後は削除. > それでもエラーが発生したので適時修正. > > TplDateEditPicker は,Delphi 6 の時と同じ修正,変更. > カレンダの表示位置の制御では,TScreen.MonitorFromPoint が使えないですね. > このカレンダの表示位置のコードは,画面左端と下端の時だけなので, > この部分を削除して,以下のようにしてみました. > カレンダの文字の色は変えた方がいいような気もします. > > しかし,Delphi ってスゴイですね. > 謎全さんの Delphi 2 用のコンポーネントだって,修正すれば,Delphi XE で > 使えるますからね. > > > //----------------------------------------------------------------------------- > // TplDateEditの右側に配置したOnMouseDownイベント処理 > // ここでカレンダーを載せたフォームの表示,非表示を切り替える > //----------------------------------------------------------------------------- > procedure TplDateEditPicker.OnMouseDownEventBtnCalendar(Sender: TObject; > Button: TMouseButton; Shift: TShiftState; X, Y: Integer); > var > CalendarFormPos : TPoint; > ParentForm : TCustomForm; > begin > if Assigned(FCalendarForm) then begin > if FCalendarForm.Visible then begin > FCalendarForm.Close; > CloseUpCalendar(1); > exit; > end; > end; > > CalendarFormPos := TWinControl(Parent).ClientToScreen(Point(Self.Left, Self.Top)); > if not Assigned(FCalendarForm) then begin > //カレンダーを表示するフォームとコントロール類を生成 > CreateFormAndControls(CalendarFormPos); > end; > > > //必要であればTMonitorやMultiMonユニットの関数類を使用して表示位置を設定する > > FCalendarForm.Top := CalendarFormPos.Y + Self.Height; > FCalendarForm.Left := CalendarFormPos.X; > FCalendarForm.Show; > > FCalendar.StartOfWeek := FStartOfWeek; > FCalendar.SetFocus; > > //TCalendarのOnChangeイベントを発生させる > FCalendar.CalendarDate := Self.Date; > > ParentForm := GetParentForm(Self); > PostMessage(ParentForm.Handle, WM_NCACTIVATE, 1, 0); > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link