DirViewColProperties.pas 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. unit DirViewColProperties;
  2. interface
  3. uses
  4. Classes, ComCtrls, IEListView;
  5. type
  6. TCustomDirViewColProperties = class(TIEListViewColProperties);
  7. resourcestring
  8. SDirViewNameCol = 'Name';
  9. SDirViewSizeCol = 'Size';
  10. SDirViewTypeCol = 'Type';
  11. SDirViewChangedCol = 'Changed';
  12. SDirViewAttrCol = 'Attr';
  13. SDirViewExtCol = 'Ext';
  14. const
  15. DirViewColumns = 6;
  16. DefaultDirViewCaptions: array[0..DirViewColumns-1] of Pointer =
  17. (@SDirViewNameCol, @SDirViewSizeCol, @SDirViewTypeCol, @SDirViewChangedCol,
  18. @SDirViewAttrCol, @SDirViewExtCol);
  19. DefaultDirViewWidths: array[0..DirViewColumns-1] of Integer =
  20. (150, 80, 125, 130, 45, 20);
  21. DefaultDirViewAlignments: array[0..DirViewColumns-1] of TAlignment =
  22. (taLeftJustify, taRightJustify, taLeftJustify, taLeftJustify,
  23. taLeftJustify, taLeftJustify);
  24. DefaultDirViewVisible: array[0..DirViewColumns-1] of Boolean =
  25. (True, True, True, True, True, False);
  26. type
  27. TDirViewCol = (dvName, dvSize, dvType, dvChanged, dvAttr, dvExt);
  28. TDirViewColProperties = class(TCustomDirViewColProperties)
  29. private
  30. function StoreAlignment(Index: Integer): Boolean;
  31. function StoreCaption(Index: Integer): Boolean;
  32. function StoreWidth(Index: Integer): Boolean;
  33. function GetSortDirColumn: TDirViewCol;
  34. procedure SetSortDirColumn(Value: TDirViewCol);
  35. public
  36. constructor Create(DirView: TCustomListView);
  37. published
  38. property SortAscending;
  39. property SortDirColumn: TDirViewCol read GetSortDirColumn write SetSortDirColumn default dvName;
  40. property NameCaption: string index dvName read GetCaptions write SetCaptions stored StoreCaption;
  41. property NameWidth: Integer index dvName read GetWidths write SetWidths stored StoreWidth;
  42. property NameVisible: Boolean index dvName read GetVisible write SetVisible default True;
  43. property NameAlignment: TAlignment index dvName read GetAlignments write SetAlignments stored StoreAlignment;
  44. property SizeCaption: string index dvSize read GetCaptions write SetCaptions stored StoreCaption;
  45. property SizeWidth: Integer index dvSize read GetWidths write SetWidths stored StoreWidth;
  46. property SizeVisible: Boolean index dvSize read GetVisible write SetVisible default True;
  47. property SizeAlignment: TAlignment index dvSize read GetAlignments write SetAlignments stored StoreAlignment;
  48. property TypeCaption: string index dvType read GetCaptions write SetCaptions stored StoreCaption;
  49. property TypeWidth: Integer index dvType read GetWidths write SetWidths stored StoreWidth;
  50. property TypeVisible: Boolean index dvType read GetVisible write SetVisible default True;
  51. property TypeAlignment: TAlignment index dvType read GetAlignments write SetAlignments stored StoreAlignment;
  52. property ChangedCaption: string index dvChanged read GetCaptions write SetCaptions stored StoreCaption;
  53. property ChangedWidth: Integer index dvChanged read GetWidths write SetWidths stored StoreWidth;
  54. property ChangedVisible: Boolean index dvChanged read GetVisible write SetVisible default True;
  55. property ChangedAlignment: TAlignment index dvChanged read GetAlignments write SetAlignments stored StoreAlignment;
  56. property AttrCaption: string index dvAttr read GetCaptions write SetCaptions stored StoreCaption;
  57. property AttrWidth: Integer index dvAttr read GetWidths write SetWidths stored StoreWidth;
  58. property AttrVisible: Boolean index dvAttr read GetVisible write SetVisible default True;
  59. property AttrAlignment: TAlignment index dvAttr read GetAlignments write SetAlignments stored StoreAlignment;
  60. property ExtCaption: string index dvExt read GetCaptions write SetCaptions stored StoreCaption;
  61. property ExtWidth: Integer index dvExt read GetWidths write SetWidths stored StoreWidth;
  62. property ExtVisible: Boolean index dvExt read GetVisible write SetVisible default True;
  63. property ExtAlignment: TAlignment index dvExt read GetAlignments write SetAlignments stored StoreAlignment;
  64. end; { TDirViewColProperties }
  65. implementation
  66. uses
  67. SysUtils, CommCtrl, ListViewColProperties, CustomDirView, PasTools;
  68. { TDirViewColProperties }
  69. constructor TDirViewColProperties.Create(DirView: TCustomListView);
  70. var
  71. Index: Integer;
  72. begin
  73. inherited Create(DirView, DirViewColumns);
  74. for Index := 0 to Count-1 do
  75. begin
  76. Captions[Index] := LoadResString(DefaultDirViewCaptions[Index]);
  77. Visible[Index] := DefaultDirViewVisible[Index];
  78. Widths[Index] := DefaultDirViewWidths[Index];
  79. Alignments[Index] := DefaultDirViewAlignments[Index];
  80. end;
  81. end;
  82. procedure TDirViewColProperties.SetSortDirColumn(Value: TDirViewCol);
  83. begin
  84. SortColumn := Integer(Value);
  85. end;
  86. function TDirViewColProperties.GetSortDirColumn: TDirViewCol;
  87. begin
  88. Result := TDirViewCol(SortColumn);
  89. end;
  90. function TDirViewColProperties.StoreAlignment(Index: Integer): Boolean;
  91. begin
  92. Result := (Alignments[Index] <> DefaultDirViewAlignments[Index]);
  93. end;
  94. function TDirViewColProperties.StoreCaption(Index: Integer): Boolean;
  95. begin
  96. Result := (Captions[Index] <> LoadResString(DefaultDirViewCaptions[Index]));
  97. end;
  98. function TDirViewColProperties.StoreWidth(Index: Integer): Boolean;
  99. begin
  100. Result := (Widths[Index] <> DefaultDirViewWidths[Index]);
  101. end;
  102. end.