From: <ah...@us...> - 2009-05-07 14:53:30
|
Revision: 12305 http://jvcl.svn.sourceforge.net/jvcl/?rev=12305&view=rev Author: ahuser Date: 2009-05-07 14:53:17 +0000 (Thu, 07 May 2009) Log Message: ----------- Fixed: Accessing TJvDropCalendar after it was destroyed. Modified Paths: -------------- trunk/jvcl/run/JvDatePickerEdit.pas Modified: trunk/jvcl/run/JvDatePickerEdit.pas =================================================================== --- trunk/jvcl/run/JvDatePickerEdit.pas 2009-05-05 20:10:29 UTC (rev 12304) +++ trunk/jvcl/run/JvDatePickerEdit.pas 2009-05-07 14:53:17 UTC (rev 12305) @@ -1330,8 +1330,7 @@ DoChange; end; -procedure TJvDropCalendar.CalSelect(Sender: TObject; - StartDate, EndDate: TDateTime); +procedure TJvDropCalendar.CalSelect(Sender: TObject; StartDate, EndDate: TDateTime); begin DoSelect; end; @@ -1382,9 +1381,19 @@ end; procedure TJvDropCalendar.DoSelect; +var + LastCloseOnLeave: Boolean; begin - if Assigned(OnSelect) then - OnSelect(Self); + { Protect against releasing the calendar in the message loop of the + Application.HandleException dialog. } + LastCloseOnLeave := CloseOnLeave; + try + CloseOnLeave := False; + if Assigned(OnSelect) then + OnSelect(Self); + finally + CloseOnLeave := LastCloseOnLeave; + end; end; procedure TJvDropCalendar.DoShow; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-12-06 10:31:56
|
Revision: 12951 http://jvcl.svn.sourceforge.net/jvcl/?rev=12951&view=rev Author: ahuser Date: 2010-12-06 10:31:50 +0000 (Mon, 06 Dec 2010) Log Message: ----------- Many DatePickerEdit control on a form caused the Designer-Guidelines do crash with an AV because it recreated all DatePickerEdits from the CreateWnd method by resetting the dateformat. Modified Paths: -------------- trunk/jvcl/run/JvDatePickerEdit.pas Modified: trunk/jvcl/run/JvDatePickerEdit.pas =================================================================== --- trunk/jvcl/run/JvDatePickerEdit.pas 2010-12-03 15:24:08 UTC (rev 12950) +++ trunk/jvcl/run/JvDatePickerEdit.pas 2010-12-06 10:31:50 UTC (rev 12951) @@ -153,7 +153,7 @@ procedure SetCalAppearance(const AValue: TJvMonthCalAppearance); function GetDate: TDateTime; procedure SetDate(const AValue: TDateTime); - procedure SetDateFormat(const AValue: string); + procedure SetDateFormat(AValue: string); function GetDropped: Boolean; procedure SetNoDateText(const AValue: string); procedure SetNoDateValue(const AValue: TDateTime); @@ -1138,19 +1138,26 @@ UpdateDisplay; end; -procedure TJvCustomDatePickerEdit.SetDateFormat(const AValue: string); +procedure TJvCustomDatePickerEdit.SetDateFormat(AValue: string); begin - FDateFormat := AValue; - if FDateFormat = '' then - FDateFormat := {$IFDEF RTL220_UP}FormatSettings.{$ENDIF RTL220_UP}ShortDateFormat; - DateSeparator := DetermineDateSeparator(FDateFormat); //calls ResetDateFormat implicitly - StoreDateFormat := FDateFormat <> {$IFDEF RTL220_UP}FormatSettings.{$ENDIF RTL220_UP}ShortDateFormat; + if AValue = '' then + AValue := {$IFDEF RTL220_UP}FormatSettings.{$ENDIF RTL220_UP}ShortDateFormat; + if AValue <> FDateFormat then + begin + FDateFormat := AValue; + FDateSeparator := DetermineDateSeparator(FDateFormat); + StoreDateFormat := FDateFormat <> {$IFDEF RTL220_UP}FormatSettings.{$ENDIF RTL220_UP}ShortDateFormat; + ResetDateFormat; + end; end; procedure TJvCustomDatePickerEdit.SetDateSeparator(const AValue: Char); begin - FDateSeparator := AValue; - ResetDateFormat; + if AValue <> FDateSeparator then + begin + FDateSeparator := AValue; + ResetDateFormat; + end; end; { The only purpose of the following overrides is to overcome a known issue in This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2012-05-10 05:38:48
|
Revision: 13296 http://jvcl.svn.sourceforge.net/jvcl/?rev=13296&view=rev Author: ahuser Date: 2012-05-10 05:38:42 +0000 (Thu, 10 May 2012) Log Message: ----------- Fixed FormDesigner Guidelines AV Modified Paths: -------------- trunk/jvcl/run/JvDatePickerEdit.pas Modified: trunk/jvcl/run/JvDatePickerEdit.pas =================================================================== --- trunk/jvcl/run/JvDatePickerEdit.pas 2012-05-07 15:01:25 UTC (rev 13295) +++ trunk/jvcl/run/JvDatePickerEdit.pas 2012-05-10 05:38:42 UTC (rev 13296) @@ -1176,6 +1176,7 @@ procedure TJvCustomDatePickerEdit.SetEditMask(const AValue: string); var OldSep: Char; + Designing: Boolean; begin { if csDesigning in ComponentState then Exit;} @@ -1183,7 +1184,22 @@ OldSep := JclFormatSettings.DateSeparator; JclFormatSettings.DateSeparator := Self.DateSeparator; try - inherited EditMask := AValue; + Designing := False; + if csDesigning in ComponentState then + begin + // If SetEditMask is called from CreateWnd via SetDateFormat, the TMaskEdit.SetCursor emulates + // a Shift+Left/Right key press. The form designer catches the key press and the + // IDE's Designer Guidelines code throws an access violation. + // With this we disable the form designer until "inherted EditMask" was executed. + Designing := True; + SetDesigning(False, False); + end; + try + inherited EditMask := AValue; + finally + if Designing then + SetDesigning(True, False); + end; finally JclFormatSettings.DateSeparator := OldSep; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-06-12 12:47:28
|
Revision: 13320 http://jvcl.svn.sourceforge.net/jvcl/?rev=13320&view=rev Author: obones Date: 2012-06-12 12:47:17 +0000 (Tue, 12 Jun 2012) Log Message: ----------- Mantis 5845: Trigger the event either directly or via the inherited call Modified Paths: -------------- trunk/jvcl/run/JvDatePickerEdit.pas Modified: trunk/jvcl/run/JvDatePickerEdit.pas =================================================================== --- trunk/jvcl/run/JvDatePickerEdit.pas 2012-06-12 12:21:55 UTC (rev 13319) +++ trunk/jvcl/run/JvDatePickerEdit.pas 2012-06-12 12:47:17 UTC (rev 13320) @@ -1267,7 +1267,15 @@ procedure TJvCustomDatePickerEdit.ShowPopup(Origin: TPoint); begin if FPopup is TJvDropCalendar then + begin TJvDropCalendar(FPopup).Show; + if Assigned(OnPopupShown) then + OnPopupShown(Self); + end + else + begin + inherited ShowPopup(Origin); + end; end; procedure TJvCustomDatePickerEdit.UpdateDisplay; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2013-01-04 16:47:05
|
Revision: 13485 http://jvcl.svn.sourceforge.net/jvcl/?rev=13485&view=rev Author: ahuser Date: 2013-01-04 16:46:57 +0000 (Fri, 04 Jan 2013) Log Message: ----------- Delphi XE changed FormatSettings.ShortDateFormat so that it always uses '/' (TFormatSettings.TranslateDateFormat.FixDateFormat) instead of the localized DateSeparator. This broke TJvDatePickerEdit that now always shows '/' if no different DateFormat is specified. Modified Paths: -------------- trunk/jvcl/run/JvDatePickerEdit.pas Modified: trunk/jvcl/run/JvDatePickerEdit.pas =================================================================== --- trunk/jvcl/run/JvDatePickerEdit.pas 2013-01-04 16:41:45 UTC (rev 13484) +++ trunk/jvcl/run/JvDatePickerEdit.pas 2013-01-04 16:46:57 UTC (rev 13485) @@ -1148,13 +1148,22 @@ end; procedure TJvCustomDatePickerEdit.SetDateFormat(AValue: string); +var + UseDefaultDateFormat: Boolean; begin + UseDefaultDateFormat := False; if AValue = '' then + begin AValue := JclFormatSettings.ShortDateFormat; + // XE+ changed ShortDateFormat to always use '/' + FDateSeparator := JclFormatSettings.DateSeparator; + UseDefaultDateFormat := True; + end; if AValue <> FDateFormat then begin FDateFormat := AValue; - FDateSeparator := DetermineDateSeparator(FDateFormat); + if not UseDefaultDateFormat then + FDateSeparator := DetermineDateSeparator(FDateFormat); StoreDateFormat := FDateFormat <> JclFormatSettings.ShortDateFormat; ResetDateFormat; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |