From: <ah...@us...> - 2010-11-30 19:50:11
|
Revision: 12943 http://jvcl.svn.sourceforge.net/jvcl/?rev=12943&view=rev Author: ahuser Date: 2010-11-30 19:50:00 +0000 (Tue, 30 Nov 2010) Log Message: ----------- Mantis #5429: JvDbGrid Access violation for hint raised on header that occupies two rows Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2010-11-28 22:46:54 UTC (rev 12942) +++ trunk/jvcl/run/JvDBGrid.pas 2010-11-30 19:50:00 UTC (rev 12943) @@ -4303,12 +4303,12 @@ Self.MouseToCell(CursorPos.X, CursorPos.Y, ACol, ARow); //------------------------------------------------------------------------- - // ARow = -1 if 'outside' a valid cell; + // ARow <= -1 if 'outside' a valid cell; // Adjust CursorRect //------------------------------------------------------------------------- if FShowTitleHint or FShowCellHint then begin - if (ARow = -1) or ((ARow >= 1) and not FShowCellHint) then + if (ARow <= -1) or ((ARow >= 1) and not FShowCellHint) then begin if FShowCellHint then begin @@ -4330,7 +4330,7 @@ if dgTitles in Options then Dec(ARow, TitleOffset); - if FShowTitleHint and (ACol >= 0) and (ARow = -1) then + if FShowTitleHint and (ACol >= 0) and (ARow <= -1) then begin AtCursorPosition := False; HintStr := Columns[ACol].FieldName; @@ -4341,14 +4341,14 @@ end; if FShowCellHint and (ACol >= 0) and DataLink.Active and - ((ARow >= 0) or (not FShowTitleHint)) then + ((ARow >= 0) or not FShowTitleHint) then begin AtCursorPosition := False; HintStr := Hint; SaveRow := DataLink.ActiveRecord; try CalcOptions := DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DrawTextBiDiModeFlagsReadingOnly; - if ARow = -1 then + if ARow <= -1 then // can be less than -1 if the column header is multiline (AdtField) begin Canvas.Font.Assign(Columns[ACol].Title.Font); HintStr := Columns[ACol].Title.Caption; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-12-03 15:24:14
|
Revision: 12950 http://jvcl.svn.sourceforge.net/jvcl/?rev=12950&view=rev Author: ahuser Date: 2010-12-03 15:24:08 +0000 (Fri, 03 Dec 2010) Log Message: ----------- Mantis #5433: Access violation when field associated in FieldName of TJvDBGrid don't exists in dataset Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2010-12-01 17:51:36 UTC (rev 12949) +++ trunk/jvcl/run/JvDBGrid.pas 2010-12-03 15:24:08 UTC (rev 12950) @@ -3529,7 +3529,8 @@ end else begin - if WordWrapAllFields or (Field is TStringField) or (FShowMemos and IsMemoField(Field)) then + if (Field <> nil) and + (WordWrapAllFields or (Field is TStringField) or (FShowMemos and IsMemoField(Field))) then begin MemoText := Field.DisplayText; if FShowMemos and IsMemoField(Field) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2011-06-11 10:28:41
|
Revision: 13062 http://jvcl.svn.sourceforge.net/jvcl/?rev=13062&view=rev Author: ahuser Date: 2011-06-11 10:28:35 +0000 (Sat, 11 Jun 2011) Log Message: ----------- Mantis #5543: JVDBGrid accesses Field.OldValue when Dataset.State <> dsEdit Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2011-06-11 10:03:55 UTC (rev 13061) +++ trunk/jvcl/run/JvDBGrid.pas 2011-06-11 10:28:35 UTC (rev 13062) @@ -4630,8 +4630,14 @@ if EscapeKey then begin CloseControl; - if Assigned(SelectedField) and (SelectedField.OldValue <> SelectedField.Value) then - SelectedField.Value := SelectedField.OldValue; + if Assigned(SelectedField) then + begin + // OldValue is only available when State=dsEdit, otherwise it can throw an AV. + if (SelectedField.DataSet.State = dsEdit) and (SelectedField.OldValue <> SelectedField.Value) then + SelectedField.Value := SelectedField.OldValue + else if (SelectedField.DataSet.State = dsInsert) and not SelectedField.IsNull then + SelectedField.Clear; + end; end; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2011-07-22 17:36:55
|
Revision: 13090 http://jvcl.svn.sourceforge.net/jvcl/?rev=13090&view=rev Author: ahuser Date: 2011-07-22 17:36:47 +0000 (Fri, 22 Jul 2011) Log Message: ----------- Applied suggestion from Mantis #5605 Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2011-07-11 05:56:26 UTC (rev 13089) +++ trunk/jvcl/run/JvDBGrid.pas 2011-07-22 17:36:47 UTC (rev 13090) @@ -4382,13 +4382,7 @@ end; end else - begin - { Column cells are empty } - if Width > DefaultColWidth then - Result := DefaultColWidth - else - Result := Columns[FResizeColumnIndex].Width; - end; + Result := DefaultColWidth; end else { Field is not assigned } Result := DefaultColWidth; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-02-24 16:35:28
|
Revision: 13231 http://jvcl.svn.sourceforge.net/jvcl/?rev=13231&view=rev Author: obones Date: 2012-02-24 16:35:22 +0000 (Fri, 24 Feb 2012) Log Message: ----------- Mantis 5757 : Use TJvDBGrid as the cast because it does some special handling with its options. Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-02-24 16:30:12 UTC (rev 13230) +++ trunk/jvcl/run/JvDBGrid.pas 2012-02-24 16:35:22 UTC (rev 13231) @@ -878,7 +878,7 @@ function ForwardMovement: Boolean; begin - Result := dgAlwaysShowEditor in TDBGrid(Grid).Options; + Result := dgAlwaysShowEditor in TJvDBGrid(Grid).Options; end; function Ctrl: Boolean; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-02-27 10:02:41
|
Revision: 13238 http://jvcl.svn.sourceforge.net/jvcl/?rev=13238&view=rev Author: obones Date: 2012-02-27 10:02:30 +0000 (Mon, 27 Feb 2012) Log Message: ----------- Mantis 5806 : Made DefaultDrawColumnCell a virtual method in TJvDBGrid Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-02-27 09:16:08 UTC (rev 13237) +++ trunk/jvcl/run/JvDBGrid.pas 2012-02-27 10:02:30 UTC (rev 13238) @@ -494,6 +494,8 @@ constructor Create(AOwner: TComponent); override; destructor Destroy; override; + + procedure DefaultDrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); virtual; procedure DefaultDataCellDraw(const Rect: TRect; Field: TField; State: TGridDrawState); procedure DisableScroll; procedure EnableScroll; @@ -2894,6 +2896,28 @@ Key := #0; end; +procedure TJvDBGrid.DefaultDrawColumnCell(const Rect: TRect; + DataCol: Integer; Column: TColumn; State: TGridDrawState); +var + MemoText: string; +begin + if Assigned(Column.Field) and + (WordWrapAllFields or (Column.Field is TStringField) or (ShowMemos and IsMemoField(Column.Field))) then + begin + MemoText := Column.Field.DisplayText; + if FShowMemos and IsMemoField(Column.Field) then + begin + // The MemoField's default DisplayText is '(Memo)' but we want the content + if not Assigned(Column.Field.OnGetText) then + MemoText := Column.Field.AsString; + end; + WriteCellText(Rect, 2, 2, MemoText, Column.Alignment, + UseRightToLeftAlignmentForField(Column.Field, Column.Alignment), False); + end + else + inherited DefaultDrawColumnCell(Rect, DataCol, Column, State); +end; + procedure TJvDBGrid.DefaultDataCellDraw(const Rect: TRect; Field: TField; State: TGridDrawState); begin @@ -3499,7 +3523,6 @@ Highlight: Boolean; Bmp: TBitmap; Field, ReadOnlyTestField: TField; - MemoText: string; begin Field := Column.Field; if Assigned(DataSource) and Assigned(DataSource.DataSet) and DataSource.DataSet.Active and @@ -3542,21 +3565,7 @@ end else begin - if (Field <> nil) and - (WordWrapAllFields or (Field is TStringField) or (FShowMemos and IsMemoField(Field))) then - begin - MemoText := Field.DisplayText; - if FShowMemos and IsMemoField(Field) then - begin - // The MemoField's default DisplayText is '(Memo)' but we want the content - if not Assigned(Field.OnGetText) then - MemoText := Field.AsString; - end; - WriteCellText(Rect, 2, 2, MemoText, Column.Alignment, - UseRightToLeftAlignmentForField(Field, Column.Alignment), False); - end - else - DefaultDrawColumnCell(Rect, DataCol, Column, State); + DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; if (Columns.State = csDefault) or not DefaultDrawing or (csDesigning in ComponentState) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-02-27 14:49:27
|
Revision: 13248 http://jvcl.svn.sourceforge.net/jvcl/?rev=13248&view=rev Author: obones Date: 2012-02-27 14:49:17 +0000 (Mon, 27 Feb 2012) Log Message: ----------- Mantis 5013: Don't paint over the picture when there is one Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-02-27 14:29:05 UTC (rev 13247) +++ trunk/jvcl/run/JvDBGrid.pas 2012-02-27 14:49:17 UTC (rev 13248) @@ -2914,7 +2914,7 @@ WriteCellText(Rect, 2, 2, MemoText, Column.Alignment, UseRightToLeftAlignmentForField(Column.Field, Column.Alignment), False); end - else + else if GetImageIndex(Column.Field) < 0 then // Mantis 5013: Must not call inherited drawer, or the text will be painted over inherited DefaultDrawColumnCell(Rect, DataCol, Column, State); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-03-02 15:04:45
|
Revision: 13269 http://jvcl.svn.sourceforge.net/jvcl/?rev=13269&view=rev Author: obones Date: 2012-03-02 15:04:38 +0000 (Fri, 02 Mar 2012) Log Message: ----------- Mantis 5818 : Fixup index Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-03-02 14:49:25 UTC (rev 13268) +++ trunk/jvcl/run/JvDBGrid.pas 2012-03-02 15:04:38 UTC (rev 13269) @@ -3753,6 +3753,11 @@ FCanResizeColumn := State = gsColSizing; // If true, mouse double clicking can resize column. + + // Mantis 5818: the inherited code sometimes gives an invalid index for the column + if Index > FirstVisibleColumn + VisibleColCount then + Index := FirstVisibleColumn + VisibleColCount; + FResizeColumnIndex := Index - 1;// Store the column index to resize. if (State = gsNormal) and (Y <= RowHeights[0]) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2012-06-12 11:39:38
|
Revision: 13316 http://jvcl.svn.sourceforge.net/jvcl/?rev=13316&view=rev Author: obones Date: 2012-06-12 11:39:32 +0000 (Tue, 12 Jun 2012) Log Message: ----------- Mantis 5759: Added CellHintPosition Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-06-12 11:33:51 UTC (rev 13315) +++ trunk/jvcl/run/JvDBGrid.pas 2012-06-12 11:39:32 UTC (rev 13316) @@ -104,6 +104,7 @@ {$ENDIF BCB} TJvDBGridColumnResize = (gcrNone, gcrGrid, gcrDataSet); + TJvDBGridCellHintPosition = (gchpDefault, gchpMouse); TSelectColumn = (scDataBase, scGrid); TTitleClickEvent = procedure(Sender: TObject; ACol: Longint; @@ -291,6 +292,7 @@ FRowResize: Boolean; FRowsHeight: Integer; FTitleRowHeight: Integer; + FCellHintPosition: TJvDBGridCellHintPosition; FCanDelete: Boolean; { Cancel edited record on mouse wheel or when resize column (double-click)} @@ -593,6 +595,10 @@ default JvGridResizeProportionally; property SelectColumnsDialogStrings: TJvSelectDialogColumnStrings read FSelectColumnsDialogStrings write SetSelectColumnsDialogStrings; + + { Determines how cell hint position is calculated, check TJvDBGrid.CMHintShow (Mantis #5759) } + property CellHintPosition: TJvDBGridCellHintPosition read FCellHintPosition write FCellHintPosition default gchpDefault; + { Allows user to delete things using the "del" key } property CanDelete: Boolean read FCanDelete write FCanDelete default True; @@ -4466,11 +4472,15 @@ ACol, ARow, ATimeOut, SaveRow: Integer; AtCursorPosition: Boolean; CalcOptions: Integer; + InitialMousePos: TPoint; HintRect: TRect; begin AtCursorPosition := True; with Msg.HintInfo^ do begin + { Save the position of mouse cursor } + InitialMousePos := Mouse.CursorPos; + HintStr := GetShortHint(Hint); ATimeOut := HideTimeOut; Self.MouseToCell(CursorPos.X, CursorPos.Y, ACol, ARow); @@ -4505,7 +4515,7 @@ if FShowTitleHint and (ACol >= 0) and (ARow <= -1) then begin - AtCursorPosition := False; + AtCursorPosition := FCellHintPosition = gchpMouse; HintStr := Columns[ACol].FieldName; ATimeOut := Max(ATimeOut, Length(HintStr) * C_TIMEOUT); if Assigned(FOnShowTitleHint) and DataLink.Active then @@ -4516,7 +4526,7 @@ if FShowCellHint and (ACol >= 0) and DataLink.Active and ((ARow >= 0) or not FShowTitleHint) then begin - AtCursorPosition := False; + AtCursorPosition := FCellHintPosition = gchpMouse; HintStr := Hint; SaveRow := DataLink.ActiveRecord; try @@ -4569,7 +4579,9 @@ end; if not AtCursorPosition and HintWindowClass.ClassNameIs('THintWindow') then - HintPos := ClientToScreen(CursorRect.TopLeft); + HintPos := ClientToScreen(CursorRect.TopLeft) + else + HintPos := InitialMousePos; end; inherited; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2012-09-27 07:52:44
|
Revision: 13450 http://jvcl.svn.sourceforge.net/jvcl/?rev=13450&view=rev Author: ahuser Date: 2012-09-27 07:52:37 +0000 (Thu, 27 Sep 2012) Log Message: ----------- Mantis #5994: Using mouse can't change the width of column Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-09-26 16:51:47 UTC (rev 13449) +++ trunk/jvcl/run/JvDBGrid.pas 2012-09-27 07:52:37 UTC (rev 13450) @@ -3764,8 +3764,8 @@ FCanResizeColumn := State = gsColSizing; // If true, mouse double clicking can resize column. // Mantis 5818: the inherited code sometimes gives an invalid index for the column - if Index > FirstVisibleColumn + VisibleColCount then - Index := FirstVisibleColumn + VisibleColCount; + if Index > LeftCol + VisibleColCount then + Index := LeftCol + VisibleColCount; FResizeColumnIndex := Index - 1;// Store the column index to resize. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2012-10-12 07:20:42
|
Revision: 13460 http://jvcl.svn.sourceforge.net/jvcl/?rev=13460&view=rev Author: ahuser Date: 2012-10-12 07:20:33 +0000 (Fri, 12 Oct 2012) Log Message: ----------- * Fixed bug with child control background painting * Added GetPaintInfo for derived classes Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-10-08 18:59:55 UTC (rev 13459) +++ trunk/jvcl/run/JvDBGrid.pas 2012-10-12 07:20:33 UTC (rev 13460) @@ -426,8 +426,8 @@ procedure DrawTitleCaption(Canvas: TCanvas; const TextRect: TRect; DrawColumn: TColumn); procedure DoDrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); virtual; procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override; - procedure DrawDataCell(const Rect: TRect; Field: TField; - State: TGridDrawState); override; { obsolete from Delphi 2.0 } + procedure DrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState); override; { obsolete from Delphi 2.0 } + function GetPaintInfo: TJvGridPaintInfo; function BeginColumnDrag(var Origin: Integer; var Destination: Integer; const MousePt: TPoint): Boolean; override; procedure ColumnMoved(FromIndex: Integer; ToIndex: Integer); override; @@ -1755,6 +1755,11 @@ Result := DataLink; end; +function TJvDBGrid.GetPaintInfo: TJvGridPaintInfo; +begin + Result := FPaintInfo; +end; + procedure TJvDBGrid.SetRowResize(Value: Boolean); begin if FRowResize <> Value then @@ -1818,17 +1823,22 @@ R: TRect; Size: TSize; begin - { Fill the area between the two scroll bars. } - Size.cx := GetSystemMetrics(SM_CXVSCROLL); - Size.cy := GetSystemMetrics(SM_CYHSCROLL); - if UseRightToLeftAlignment then - R := Bounds(0, Height - Size.cy, Size.cx, Size.cy) + if Param = 0 then // don't optimize for painting child control backgrounds + begin + { Fill the area between the two scroll bars. } + Size.cx := GetSystemMetrics(SM_CXVSCROLL); + Size.cy := GetSystemMetrics(SM_CYHSCROLL); + if UseRightToLeftAlignment then + R := Bounds(0, Height - Size.cy, Size.cx, Size.cy) + else + R := Bounds(Width - Size.cx, Height - Size.cy, Size.cx, Size.cy); + Canvas.Brush.Color := Color; + Canvas.FillRect(R); + + Result := True; + end else - R := Bounds(Width - Size.cx, Height - Size.cy, Size.cx, Size.cy); - Canvas.Brush.Color := Color; - Canvas.FillRect(R); - - Result := True; + Result := inherited DoEraseBackground(Canvas, Param); end; procedure TJvDBGrid.Paint; @@ -3099,7 +3109,7 @@ lCellRect.Bottom := lCellRect.Bottom + 2; StyleServices.DrawElement(Canvas.Handle, Details, lCellRect); // draw the indicator - if (Datalink.Active) and (ARow - TitleOffset = Datalink.ActiveRecord) then + if (DataLink.Active) and (ARow - TitleOffset = Datalink.ActiveRecord) then begin // Unfortunatelly the TDBGrid.FIndicators: TImageList is a private field so we have to // call the original painter for the indicator and draw it into a transparent bitmap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2012-10-29 10:27:24
|
Revision: 13466 http://jvcl.svn.sourceforge.net/jvcl/?rev=13466&view=rev Author: ahuser Date: 2012-10-29 10:27:17 +0000 (Mon, 29 Oct 2012) Log Message: ----------- Fixed access violation if DataSet has only Visible=False fields and ReadOnlyCellColor <> clDefault Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2012-10-27 14:54:56 UTC (rev 13465) +++ trunk/jvcl/run/JvDBGrid.pas 2012-10-29 10:27:17 UTC (rev 13466) @@ -3551,7 +3551,7 @@ Highlight := (gdSelected in State) and ((dgAlwaysShowSelection in Options) or Focused); GetCellProps(Column, Canvas.Font, NewBackgrnd, Highlight or ActiveRowSelected); if not Highlight and (ReadOnlyCellColor <> clDefault) and - (not Field.CanModify or not CanEditCell(Field)) then + (Field <> nil) and (not Field.CanModify or not CanEditCell(Field)) then begin if (gdSelected in State) and (Focused xor MultiSelect) then Canvas.Brush.Color := NewBackgrnd This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2013-02-04 09:07:36
|
Revision: 13499 http://jvcl.svn.sourceforge.net/jvcl/?rev=13499&view=rev Author: ahuser Date: 2013-02-04 09:07:28 +0000 (Mon, 04 Feb 2013) Log Message: ----------- OnSelectColumns was triggered even if the mouse was pressed somewhere else Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2013-01-30 13:10:01 UTC (rev 13498) +++ trunk/jvcl/run/JvDBGrid.pas 2013-02-04 09:07:28 UTC (rev 13499) @@ -255,6 +255,7 @@ FPostOnEnterKey: Boolean; FSelectColumn: TSelectColumn; FTitleArrow: Boolean; + FTitleArrowDown: Boolean; FTitlePopup: TPopupMenu; FOnShowTitleHint: TJvTitleHintEvent; FOnTitleArrowMenuEvent: TNotifyEvent; @@ -2409,6 +2410,10 @@ LastCell.X := Col; LastCell.Y := Row; + if (Button = mbLeft) and FTitleArrow and (Cell.X = 0) and (Cell.Y = 0) and + (dgTitles in Options) and (dgIndicator in Options) then + FTitleArrowDown := True; + if (Button = mbRight) and (dgTitles in Options) and (dgIndicator in Options) and (Cell.Y = 0) then @@ -2671,10 +2676,13 @@ FGridState := gsNormal; end; - if FTitleArrow and (Button = mbLeft) and - (dgTitles in Options) and (dgIndicator in Options) and - (Cell.X = 0) and (Cell.Y = 0) and (Columns.Count > 0) then - ShowSelectColumnClick; // Selection of columns + if FTitleArrowDown and (Button = mbLeft) then + begin + FTitleArrowDown := False; + if FTitleArrow and (dgTitles in Options) and (dgIndicator in Options) and + (Cell.X = 0) and (Cell.Y = 0) and (Columns.Count > 0) then + ShowSelectColumnClick; // Selection of columns + end; if (Button = mbLeft) and (FGridState = gsColSizing) then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2013-05-25 12:24:35
|
Revision: 13517 http://jvcl.svn.sourceforge.net/jvcl/?rev=13517&view=rev Author: ahuser Date: 2013-05-25 12:24:24 +0000 (Sat, 25 May 2013) Log Message: ----------- Mantis #6069: TJvDBGrid.CalcSizingState Modified Paths: -------------- trunk/jvcl/run/JvDBGrid.pas Modified: trunk/jvcl/run/JvDBGrid.pas =================================================================== --- trunk/jvcl/run/JvDBGrid.pas 2013-05-25 12:09:03 UTC (rev 13516) +++ trunk/jvcl/run/JvDBGrid.pas 2013-05-25 12:24:24 UTC (rev 13517) @@ -3767,10 +3767,10 @@ end; procedure TJvDBGrid.CalcSizingState(X, Y: Integer; var State: TGridState; - var Index: Longint; var SizingPos, SizingOfs: Integer; - var FixedInfo: TGridDrawInfo); + var Index: Longint; var SizingPos, SizingOfs: Integer; var FixedInfo: TGridDrawInfo); var Coord: TGridCoord; + DrawInfo: TGridDrawInfo; begin inherited CalcSizingState(X, Y, State, Index, SizingPos, SizingOfs, FixedInfo); @@ -3778,14 +3778,18 @@ if not (dgColumnResize in Options) and not (csDesigning in ComponentState) then Exit; - FCanResizeColumn := State = gsColSizing; // If true, mouse double clicking can resize column. - // Mantis 5818: the inherited code sometimes gives an invalid index for the column - if Index > LeftCol + VisibleColCount then - Index := LeftCol + VisibleColCount; + { Mantis 5818: Index-out-of-range error when there is only one visible column partially displayed } + CalcDrawInfo(DrawInfo); + if (DrawInfo.Horz.FullVisBoundary = DrawInfo.Horz.FixedBoundary) then + Index := Index - 1; // Index from inherited code has the value of 2. - FResizeColumnIndex := Index - 1;// Store the column index to resize. + { Store the column index to resize } + if dgIndicator in Options then + FResizeColumnIndex := Index - 1 + else + FResizeColumnIndex := Index; // Mantis 6061 if (State = gsNormal) and (Y <= RowHeights[0]) then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |