[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
(*============================================================================*
| The Internet Explorer release of COMCTL32.DLL introduced a number of new |
| styles. These aren't documented anywhere yet by Microsoft, although they |
| do appear in the latest COMMCTRL.H supplied with VC4.2. The styles mostly |
| only work when the ViewStyle property is set to vsReport. |
| |
| The new styles are: |
| GridLines Displays thin, gray, horizontal and vertical lines |
| separating rows and columns. |
| |
| SubItemImages Displays images against sub-items as well as items. |
| |
| CheckBoxes Displays a check box at the start of each row. |
| |
| TrackSelect Colours the item as you drag the mouse over it. |
| Automatically selects the item if you leave the mouse |
| on it. |
| |
| HeaderDragDrop Enables drag/drop from the report header. |
| |
| FullRowSelect Highlights the entire row when you select it instead of |
| just the first column data. |
| |
| OneClickActivate ?? |
| TwoClickActivate ?? |
| |
| Note that this component doesn't do anything except set the appropriate |
| styles - so some styles may not be particularly useful. |
| |
| Colin Wilson. colin@wilsonc.demon.co.uk, or 100114.3641@compuserve.com |
*============================================================================*)
unit cmpExtendedListView;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;
const
LVM_FIRST = $1000;
LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
type
TExtendedStyles = (lvexGridLines, lvexSubItemImages, lvexCheckBoxes, lvexTrackSelect,
lvexHeaderDragDrop, lvexFullRowSelect, lvexOneClickActivate, lvexTwoClickActivate);
TExtendedStyleRange = lvexGridLines..lvexTwoClickActivate;
TExtendedStyleSet = set of TExtendedStyleRange;
const
LVS_EX_Styles : array [TExtendedStyleRange] of Integer = (
$00000001, $00000002, $00000004, $00000008,
$00000010, $00000020, $00000040, $00000080);
type
TExtendedListView = class(TListView)
private
fExtendedStyle : TExtendedStyleSet;
procedure SetExtendedStyle (value : TExtendedStyleSet);
protected
procedure CreateWnd; override;
published
property ExtendedStyle : TExtendedStyleSet read fExtendedStyle write SetExtendedStyle;
end;
procedure Register;
implementation
procedure TExtendedListView.SetExtendedStyle (value : TExtendedStyleSet);
var
exStyle : Integer;
i : TExtendedStyleRange;
begin
if HandleAllocated then
begin
exStyle := 0;
for i := Low (TExtendedStyleRange) to High (TExtendedStyleRange) do
if i in value then exStyle := exStyle or LVS_EX_STYLES [i];
SendMessage(Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, exStyle)
end;
fExtendedStyle := value;
Refresh
end;
procedure TExtendedListView.CreateWnd;
begin
inherited CreateWnd;
SetExtendedStyle (fExtendedStyle);
end;
procedure Register;
begin
RegisterComponents('Samples', [TExtendedListView]);
end;
end.
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]