From: Oliver G. <og...@us...> - 2002-12-24 09:40:22
|
Update of /cvsroot/jvcl/jvcl/source In directory sc8-pr-cvs1:/tmp/cvs-serv3135 Modified Files: JvDatePickerEdit.pas JvDBDatePickerEdit.pas Log Message: Made TJvCustomCheckedMaskEdit a descendant of TJvCustomMaskEdit Streamlined the focus change event interfaces in TJvCustomMaskEdit and descendants and related compos: [ATTENTION! Streaming Interface change!] Renamed events OnLoseFocus > OnKillFocus OnGetFocus > OnSetFocus Renamed methods LoseFocus > DoKillFocus GetFocus > DoSetFocus Added focus change events to TJvCustomMonthCalendar Index: JvDatePickerEdit.pas =================================================================== RCS file: /cvsroot/jvcl/jvcl/source/JvDatePickerEdit.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JvDatePickerEdit.pas 4 Nov 2002 11:55:03 -0000 1.2 --- JvDatePickerEdit.pas 24 Dec 2002 09:40:19 -0000 1.3 *************** *** 17,21 **** Contributor(s): Peter Thörnqvist. ! Last Modified: 2002-11-04 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, --- 17,21 ---- Contributor(s): Peter Thörnqvist. ! Last Modified: 2002-12-24 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, *************** *** 51,65 **** for two-digit year entries. - -currently there is quite an ugly hack in place to solve an issue with - un/focusing of the calendar control. This would look a whole lot better if it - was implemented at the TJvCustomMonthCalendar level. - - -there is currently no way to manipulate the appearance of the dropdown - calendar. this is due to the fact that I only instantiate the dropdown on - demand. To control the calendar's appearance I would have to store the colors - and possible other settings in some kind of proxy structure which would get - applied to the control upon instantiation. As one of the primary goals was to - maintain the system look and feel, customization of the calendar was simply - not a requirement. } --- 51,54 ---- *************** *** 103,108 **** procedure CalSelect(Sender: TObject; StartDate, EndDate: TDateTime); procedure CalKeyPress(Sender: TObject; var Key: Char); ! procedure CalLoseFocus(const ASender: TObject; ! const AFocusControl: TWinControl); protected procedure DoCancel; --- 92,96 ---- procedure CalSelect(Sender: TObject; StartDate, EndDate: TDateTime); procedure CalKeyPress(Sender: TObject; var Key: Char); ! procedure CalKillFocus(const ASender: TObject; const ANextControl: TWinControl); protected procedure DoCancel; *************** *** 142,145 **** --- 130,134 ---- FNoDateShortcut: TShortcut; FNoDateText: String; + FStoreDate: Boolean; // FMinYear: Word; *************** *** 167,171 **** protected - FStoreDate: Boolean; function IsDateFormatStored: Boolean; function IsNoDateShortcutStored: Boolean; --- 156,159 ---- *************** *** 174,178 **** procedure Change; override; procedure Loaded; override; ! procedure LoseFocus(const AFocusControl: TWinControl); override; procedure KeyDown(var AKey: Word; AShift: TShiftState); override; --- 162,166 ---- procedure Change; override; procedure Loaded; override; ! procedure DoKillFocus(const ANextControl: TWinControl); override; procedure KeyDown(var AKey: Word; AShift: TShiftState); override; *************** *** 198,216 **** procedure RestoreMask; ! property AllowNoDate: Boolean read FAllowNoDate write SetAllowNoDate; property CalendarAppearance: TJvMonthCalAppearance read FCalAppearance write SetCalAppearance; ! property Date: TDateTime read GetDate write SetDate; ! property DateFormat: String read FDateFormat write SetDateFormat; property Dropped: Boolean read GetDropped; ! property EnableValidation: Boolean read GetEnableValidation write FEnableValidation; // property MaxYear: Word read FMaxYear write FMaxYear; // property MinYear: Word read FMinYear write FMinYear; ! property NoDateShortcut: TShortcut read FNoDateShortcut write FNoDateShortcut; ! property NoDateText: String read FNoDateText write SetNoDateText; ! property StoreDate: Boolean read FStoreDate write FStoreDate; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function IsEmpty: Boolean; virtual; end; --- 186,206 ---- procedure RestoreMask; ! property AllowNoDate: Boolean read FAllowNoDate write SetAllowNoDate default True; property CalendarAppearance: TJvMonthCalAppearance read FCalAppearance write SetCalAppearance; ! property Date: TDateTime read GetDate write SetDate stored FStoreDate; ! property DateFormat: String read FDateFormat write SetDateFormat stored IsDateFormatStored; property Dropped: Boolean read GetDropped; ! property EnableValidation: Boolean read GetEnableValidation write FEnableValidation default True; // property MaxYear: Word read FMaxYear write FMaxYear; // property MinYear: Word read FMinYear write FMinYear; ! property NoDateShortcut: TShortcut read FNoDateShortcut write FNoDateShortcut stored IsNoDateShortcutStored; ! property NoDateText: String read FNoDateText write SetNoDateText stored IsNoDateTextStored; ! property StoreDate: Boolean read FStoreDate write FStoreDate default False; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + procedure Clear; override; + function IsEmpty: Boolean; virtual; end; *************** *** 220,224 **** property Dropped; published ! property AllowNoDate default True; property Anchors; property AutoSelect; --- 210,214 ---- property Dropped; published ! property AllowNoDate; property Anchors; property AutoSelect; *************** *** 226,250 **** property BorderStyle; property CalendarAppearance; property CharCase; property Checked; property Color; property Constraints; property Cursor; property Ctl3D; ! property Date stored FStoreDate; ! property DateFormat stored IsDateFormatStored; property DragCursor; property DragKind; property DragMode; property Enabled; ! property EnableValidation default True; property Font; ! property HintColor default clInfoBk; ! property HotTrack default False; // property MaxYear default 2900; // property MinYear default 1900; ! property NoDateShortcut stored IsNoDateShortcutStored; ! property NoDateText stored IsNoDateTextStored; property ParentColor; property ParentFont; property ParentShowHint; --- 216,246 ---- property BorderStyle; property CalendarAppearance; + property Caret; property CharCase; property Checked; + property ClipboardCommands; property Color; property Constraints; property Cursor; property Ctl3D; ! property Date; ! property DateFormat; ! property DisabledColor; ! property DisabledTextColor; property DragCursor; property DragKind; property DragMode; property Enabled; ! property EnableValidation; property Font; ! property GroupIndex; ! property HintColor; ! property HotTrack; // property MaxYear default 2900; // property MinYear default 1900; ! property NoDateShortcut; ! property NoDateText; property ParentColor; + property ParentCtl3d; property ParentFont; property ParentShowHint; *************** *** 252,257 **** property ReadOnly; property ShowHint; ! property ShowCheckbox default False; ! property StoreDate default False; property TabOrder; property Visible; --- 248,253 ---- property ReadOnly; property ShowHint; ! property ShowCheckbox; ! property StoreDate; property TabOrder; property Visible; *************** *** 268,276 **** property OnEnter; property OnExit; - property OnGetFocus; property OnKeyDown; property OnKeyPress; property OnKeyUp; ! property OnLoseFocus; property OnMouseDown; property OnMouseEnter; --- 264,271 ---- property OnEnter; property OnExit; property OnKeyDown; property OnKeyPress; property OnKeyUp; ! property OnKillFocus; property OnMouseDown; property OnMouseEnter; *************** *** 278,282 **** property OnMouseMove; property OnMouseUp; ! property OnParentColorChanged; property OnStartDrag; end; --- 273,278 ---- property OnMouseMove; property OnMouseUp; ! property OnParentColorChange; ! property OnSetFocus; property OnStartDrag; end; *************** *** 295,299 **** ! { TLucaCustomDatePickerEdit } procedure TJvCustomDatePickerEdit.ButClick(Sender: TObject); --- 291,295 ---- ! { TJvCustomDatePickerEdit } procedure TJvCustomDatePickerEdit.ButClick(Sender: TObject); *************** *** 307,311 **** procedure TJvCustomDatePickerEdit.CalChange(Sender: TObject); begin ! Text := DateToText(FDropFo.SelDate); end; --- 303,307 ---- procedure TJvCustomDatePickerEdit.CalChange(Sender: TObject); begin ! Text := DateToText(FDropFo.SelDate); end; *************** *** 315,318 **** --- 311,319 ---- end; + procedure TJvCustomDatePickerEdit.Clear; + begin + Checked := False; + end; + procedure TJvCustomDatePickerEdit.CloseUp; begin *************** *** 505,522 **** begin if(InternalChanging) then Exit; ! ! inherited SetChecked(not IsEmpty); ! if(IsEmpty) then ! begin ! if not(csDesigning in ComponentState) then begin ! ClearMask; ! Text := NoDateText; end; ! end ! else ! begin ! RestoreMask; ! Text:= DateToText( Date) end; end; --- 506,528 ---- begin if(InternalChanging) then Exit; ! ! BeginInternalChange; ! try ! inherited SetChecked(not IsEmpty); ! if(IsEmpty) then begin ! if not(csDesigning in ComponentState) then ! begin ! ClearMask; ! Text := NoDateText; ! end; ! end ! else ! begin ! RestoreMask; ! Text:= DateToText( Self.Date) end; ! finally ! EndInternalChange; end; end; *************** *** 748,758 **** end; ! procedure TJvCustomDatePickerEdit.LoseFocus(const AFocusControl: TWinControl); var lDate: TDateTime; begin ! if (AFocusControl <> NIL) ! and(AFocusControl <> FDropFo) ! and(AFocusControl.Owner <> FDropFo) then if(not FDateError) then begin --- 754,764 ---- end; ! procedure TJvCustomDatePickerEdit.DoKillFocus(const ANextControl: TWinControl); var lDate: TDateTime; begin ! if (ANextControl <> NIL) ! and(ANextControl <> FDropFo) ! and(ANextControl.Owner <> FDropFo) then if(not FDateError) then begin *************** *** 807,837 **** - { TUnfocusingMonthCalendar } - - type - TUnfocusingMonthCalendar = class( TJvCustomMonthCalendar) - private - FOnLoseFocus: TJvFocusChangeEvent; - procedure WMKillFocus(var AMessage: TMessage); message WM_KILLFOCUS; - protected - procedure LoseFocus(const AFocusControl: TWinControl); dynamic; - property OnLoseFocus: TJvFocusChangeEvent read FOnLoseFocus - write FOnLoseFocus; - end; - - procedure TUnfocusingMonthCalendar.LoseFocus(const AFocusControl: TWinControl); - begin - if(Assigned(OnLoseFocus)) then - OnLoseFocus(Self, AFocusControl); - end; - - procedure TUnfocusingMonthCalendar.WMKillFocus(var AMessage: TMessage); - begin - inherited; - if(not IsChildOf(AMessage.WParam, Self.Handle)) then - LoseFocus(FindControl(AMessage.WParam)); - end; - - { TLucaDropCalendar } --- 813,816 ---- *************** *** 840,845 **** begin inherited Create(AOwner); ! FCal := TUnfocusingMonthCalendar.CreateWithAppearance(Self, AAppearance); ! with(TUnfocusingMonthCalendar(FCal)) do begin Parent := Self; --- 819,824 ---- begin inherited Create(AOwner); ! FCal := TJvMonthCalendar2.CreateWithAppearance(Self, AAppearance); ! with(TJvMonthCalendar2(FCal)) do begin Parent := Self; *************** *** 847,851 **** OnSelChange := CalSelChange; OnSelect := CalSelect; ! OnLoseFocus := CalLoseFocus; OnKeyPress := CalKeyPress; Visible := True; --- 826,830 ---- OnSelChange := CalSelChange; OnSelect := CalSelect; ! OnKillFocus := CalKillFocus; OnKeyPress := CalKeyPress; Visible := True; *************** *** 857,861 **** begin if(Assigned(FCal)) then ! with(TUnfocusingMonthCalendar(FCal)) do begin OnSelChange := NIL; --- 836,840 ---- begin if(Assigned(FCal)) then ! with(TJvMonthCalendar2(FCal)) do begin OnSelChange := NIL; *************** *** 920,935 **** function TJvDropCalendar.GetSelDate: TDateTime; begin ! result := TUnfocusingMonthCalendar(FCal).DateFirst; end; procedure TJvDropCalendar.SetSelDate(const AValue: TDateTime); begin ! TUnfocusingMonthCalendar(FCal).DateFirst := AValue; end; ! procedure TJvDropCalendar.CalLoseFocus(const ASender: TObject; ! const AFocusControl: TWinControl); begin ! Self.LoseFocus( AFocusControl); end; --- 899,914 ---- function TJvDropCalendar.GetSelDate: TDateTime; begin ! result := TJvMonthCalendar2(FCal).DateFirst; end; procedure TJvDropCalendar.SetSelDate(const AValue: TDateTime); begin ! TJvMonthCalendar2(FCal).DateFirst := AValue; end; ! procedure TJvDropCalendar.CalKillFocus(const ASender: TObject; ! const ANextControl: TWinControl); begin ! Self.DoKillFocus(ANextControl); end; Index: JvDBDatePickerEdit.pas =================================================================== RCS file: /cvsroot/jvcl/jvcl/source/JvDBDatePickerEdit.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvDBDatePickerEdit.pas 5 Oct 2002 11:49:43 -0000 1.1 --- JvDBDatePickerEdit.pas 24 Dec 2002 09:40:19 -0000 1.2 *************** *** 17,21 **** Contributor(s): ______________________________________. ! Last Modified: 2002-10-04 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, --- 17,21 ---- Contributor(s): ______________________________________. ! Last Modified: 2002-12-09 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, *************** *** 75,79 **** procedure Change; override; ! procedure LoseFocus(const AFocusControl: TWinControl); override; procedure SetShowCheckbox(const AValue: Boolean); override; procedure UpdateDisplay; override; --- 75,79 ---- procedure Change; override; ! procedure DoKillFocus(const ANextControl: TWinControl); override; procedure SetShowCheckbox(const AValue: Boolean); override; procedure UpdateDisplay; override; *************** *** 82,86 **** property DataField : String read GetDataField write SetDataField; property DataSource: TDataSource read GetDataSource write SetDataSource; ! property EnforceRequired: Boolean read FEnforceRequired write SetEnforceRequired; public constructor Create(AOwner: TComponent); override; --- 82,86 ---- property DataField : String read GetDataField write SetDataField; property DataSource: TDataSource read GetDataSource write SetDataSource; ! property EnforceRequired: Boolean read FEnforceRequired write SetEnforceRequired default True; public constructor Create(AOwner: TComponent); override; *************** *** 100,104 **** --- 100,106 ---- property AutoSize default False; property BorderStyle; + property Caret; property CharCase; + property ClipboardCommands; property Color; property Constraints; *************** *** 107,124 **** property DataField; property DataSource; ! property DateFormat stored IsDateFormatStored; property DragCursor; property DragKind; property DragMode; property Enabled; ! property EnableValidation default True; ! property EnforceRequired default True; property Font; ! property HintColor default clInfoBk; ! property HotTrack default False; // property MaxYear default 2900; // property MinYear default 1900; ! property NoDateShortcut stored IsNoDateShortcutStored; ! property NoDateText stored IsNoDateTextStored; property ParentColor; property ParentFont; --- 109,129 ---- property DataField; property DataSource; ! property DateFormat; ! property DisabledColor; ! property DisabledTextColor; property DragCursor; property DragKind; property DragMode; property Enabled; ! property EnableValidation; ! property EnforceRequired; property Font; ! property GroupIndex; ! property HintColor; ! property HotTrack; // property MaxYear default 2900; // property MinYear default 1900; ! property NoDateShortcut; ! property NoDateText; property ParentColor; property ParentFont; *************** *** 144,148 **** property OnKeyPress; property OnKeyUp; ! property OnLoseFocus; property OnMouseDown; property OnMouseEnter; --- 149,153 ---- property OnKeyPress; property OnKeyUp; ! property OnKillFocus; property OnMouseDown; property OnMouseEnter; *************** *** 150,154 **** property OnMouseMove; property OnMouseUp; ! property OnParentColorChanged; property OnStartDrag; end; --- 155,160 ---- property OnMouseMove; property OnMouseUp; ! property OnParentColorChange; ! property OnSetFocus; property OnStartDrag; end; *************** *** 225,229 **** end; ! procedure TJvCustomDBDatePickerEdit.LoseFocus(const AFocusControl: TWinControl); begin try --- 231,235 ---- end; ! procedure TJvCustomDBDatePickerEdit.DoKillFocus(const ANextControl: TWinControl); begin try |