View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003908 | JEDI VCL | 00 JVCL Components | public | 2006-09-17 05:00 | 2006-09-19 07:52 |
Reporter | ykami | Assigned To | obones | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | Daily / GIT | ||||
Target Version | Fixed in Version | 3.30 | |||
Summary | 0003908: JvListView - Font breaks when Column Order is changed. | ||||
Description | When the FullDrag property is made true, and the leftmost column order is changed, Font becomes amusing. (ViewStyle = vsReport) It is thought that the cause of this problem is in no call of the CustomDrawSubItem method when SubItem is 0. (in TCustomListView.CNNotify) BDS 2006+XP SP2 Rev.10925 | ||||
Additional Information | An attached patch is dirty fix. | ||||
Tags | No tags attached. | ||||
2006-09-17 05:00
|
FontFix.patch (3,393 bytes)
*** Org\JvListView.pas Fri Sep 15 01:06:06 2006 --- JvListView.pas Sun Sep 17 19:32:40 2006 *************** *** 68,74 **** // TJvSortMethod = (smAutomatic, smAlphabetic, smNonCaseSensitive, smNumeric, smDate, smTime, smDateTime, smCurrency); TJvOnProgress = procedure(Sender: TObject; Progression, Total: Integer) of object; ! TJvListViewCompareGroupEvent = procedure(Sender: TObject; Group1, Group2: TJvListViewGroup; var Compare: Integer) of object; TJvListItems = class(TListItems, IJvAppStorageHandler, IJvAppStoragePublishedProps) private --- 68,74 ---- // TJvSortMethod = (smAutomatic, smAlphabetic, smNonCaseSensitive, smNumeric, smDate, smTime, smDateTime, smCurrency); TJvOnProgress = procedure(Sender: TObject; Progression, Total: Integer) of object; ! TJvListViewCompareGroupEvent = procedure(Sender: TObject; Group1, Group2: TJvListViewGroup; var Compare: Integer) of object; TJvListItems = class(TListItems, IJvAppStorageHandler, IJvAppStoragePublishedProps) private *************** *** 377,382 **** --- 377,383 ---- procedure WMNCCalcSize(var Msg: TWMNCCalcSize); message WM_NCCALCSIZE; procedure LVMDeleteColumn(var Msg: TMessage); message LVM_DELETECOLUMN; procedure LVMInsertColumn(var Msg: TMessage); message LVM_INSERTCOLUMN; + procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY; procedure InsertItem(Item: TListItem); override; function IsCustomDrawn(Target: TCustomDrawTarget; Stage: TCustomDrawStage): Boolean; {$IFDEF COMPILER6_UP} override; {$ENDIF} *************** *** 466,472 **** UnitVersioning: TUnitVersionInfo = ( RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $'; Revision: '$Revision: 10925 $'; ! Date: '$Date: 2006-09-01 17:49:37 +0900 (金, 01 9 2006) $'; LogPath: 'JVCL\run' ); {$ENDIF UNITVERSIONING} --- 467,473 ---- UnitVersioning: TUnitVersionInfo = ( RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $'; Revision: '$Revision: 10925 $'; ! Date: '$Date: 2006-09-01 17:49:37 +0900 (釁E 01 9 2006) $'; LogPath: 'JVCL\run' ); {$ENDIF UNITVERSIONING} *************** *** 957,962 **** --- 958,986 ---- FOnVerticalScroll(Self); end; + procedure TJvListView.CNNotify(var Message: TWMNotify); + begin + + with Message do + if NMHdr^.code = NM_CUSTOMDRAW then + begin + with PNMCustomDraw(NMHdr)^ do + begin + if (dwDrawStage and CDDS_SUBITEM <> 0) and + (PNMLVCustomDraw(NMHdr)^.iSubItem = 0) then + begin + PNMLVCustomDraw(NMHdr)^.iSubItem := -1; + inherited; + PNMLVCustomDraw(NMHdr)^.iSubItem := 0; + Exit; + end; + end; + end; + + inherited; + + end; + procedure TJvListView.ColClick(Column: TListColumn); type TParamSort = record *************** *** 2099,2104 **** --- 2123,2133 ---- function TJvListView.CustomDrawSubItem(Item: TListItem; SubItem: Integer; State: TCustomDrawState; Stage: TCustomDrawStage): Boolean; begin + // Even if TListView and difference SubItem are 0, + // CustomDrawSubItem is generated. + if SubItem = -1 then + SubItem := 0; + if (Stage = cdPrePaint) and Assigned(Item) then begin Canvas.Font := TJvListItem(Item).Font; |
|
Please provide the zipped sources of a sample application showing this. |
2006-09-17 09:58
|
JvListViewFontProblem.ZIP (7,102 bytes) |
|
I Attached project that was able to reproduce it. Steps to Reproduce: 1: Execute Project1.exe 2: Drag Column1 at the right of Column2. This problem doesn't occur in the state of default of TListView. However, when the font of Canvas is changed in OnCustomDrawItem/SubItem, I think that it occurs. |
Date Modified | Username | Field | Change |
---|---|---|---|
2006-09-17 05:00 | ykami | New Issue | |
2006-09-17 05:00 | ykami | File Added: FontFix.patch | |
2006-09-17 09:30 | obones | Note Added: 0010137 | |
2006-09-17 09:30 | obones | Status | new => feedback |
2006-09-17 09:58 | ykami | File Added: JvListViewFontProblem.ZIP | |
2006-09-17 10:18 | ykami | Note Added: 0010138 | |
2006-09-19 07:52 | obones | Status | feedback => resolved |
2006-09-19 07:52 | obones | Fixed in Version | => Daily / SVN |
2006-09-19 07:52 | obones | Resolution | open => fixed |
2006-09-19 07:52 | obones | Assigned To | => obones |