⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cxvgrid.pas

📁 delphi的的三方控件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure SetOptions(Value: TcxEditorRowPropertiesOptions);
    procedure SetRepositoryItem(Value: TcxEditRepositoryItem);
    procedure SetValue(const Value: Variant);
    // events delegation
    function GetOnGetEditingProperties: TcxVerticalGridGetEditPropertiesEvent;
    function GetOnGetEditProperties: TcxVerticalGridGetEditPropertiesEvent;
    procedure SetOnGetEditingProperties(Value: TcxVerticalGridGetEditPropertiesEvent);
    procedure SetOnGetEditProperties(Value: TcxVerticalGridGetEditPropertiesEvent);
  protected
    function GetInplaceEditContainerClass: TcxCellEditClass; virtual;
    procedure DoGetDisplayTextEvent(ARecordIndex: Integer; var Text: string); virtual;
    property EditContainer: TcxCellEdit read FEditContainer;
    property EditViewData: TcxCustomEditViewData read GetEditViewData;
    property IEditorPropertiesContainer: IcxEditorPropertiesContainer
      read GetIEditorPropertiesContainer implements IcxEditorPropertiesContainer;
    property DataBinding: TcxItemDataBinding read GetDataBinding write SetDataBinding;
    property Options: TcxEditorRowPropertiesOptions read GetOptions write SetOptions;
    property Value: Variant read GetValue write SetValue;
    property OnGetDisplayText: TcxVerticalGridGetDisplayTextEvent read FOnGetDisplayText write FOnGetDisplayText;
    property OnGetEditProperties: TcxVerticalGridGetEditPropertiesEvent read GetOnGetEditProperties write SetOnGetEditProperties;
    property OnGetEditingProperties: TcxVerticalGridGetEditPropertiesEvent read GetOnGetEditingProperties write SetOnGetEditingProperties;
  public
    constructor CreateEx(ARow: TcxCustomRow); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    property DisplayEditProperties[Index: Integer]: TcxCustomEditProperties read GetDisplayEditProperty;
    property DisplayTexts[Index: Integer]: string read GetDisplayText;
    property EditPropertiesClass: TcxCustomEditPropertiesClass read GetEditPropertiesClass write SetEditPropertiesClass;
    property ItemIndex: Integer read GetItemIndex;
    property ItemLink: TObject read GetItemLink;
    property Values[Index: Integer]: Variant read GetValueByIndex;
  published
    property EditPropertiesClassName: string read GetEditPropertiesClassName write SetEditPropertiesClassName;
    property EditProperties: TcxCustomEditProperties read GetEditProperties write SetEditProperties;
    property RepositoryItem: TcxEditRepositoryItem read GetRepositoryItem write SetRepositoryItem;
  end;

  TcxEditorRowPropertiesClass = class of TcxCustomEditorRowProperties;

  { TcxEditorRowProperties }

  TcxEditorRowProperties = class(TcxCustomEditorRowProperties)
  public
    procedure Assign(Source: TPersistent); override;
  published
    property DataBinding;
    property Options;
    property Value;
    property OnGetDisplayText;
    property OnGetEditProperties;
    property OnGetEditingProperties;
  end;

  { TcxCustomEditorRow }

  TcxCustomEditorRow = class(TcxCustomRow)
  private
    FEditPropertiesEvents: TNotifyEvent;
    FPropertiesEvents: TNotifyEvent;
    function GetProperties: TcxCustomEditorRowProperties;
    function GetStyles: TcxEditorRowStyles;
    procedure SetProperties(Value: TcxCustomEditorRowProperties);
    procedure SetStyles(Value: TcxEditorRowStyles);
  protected
    function CanFocus: Boolean; override;
    function EditContainer: TcxCellEdit;
    function GetDefaultHeight: Integer; override;
    function GetEditContainer(ACellIndex: Integer): TcxCellEdit; override;
    function GetEditContainerCount: Integer; override;
    function GetPropertiesClass: TcxRowPropertiesClass; override;
    function GetStylesClass: TcxvgCustomRowStylesClass; override;
    procedure SetParentComponent(Value: TComponent); override;
    procedure SetVerticalGrid(Value: TcxCustomVerticalGrid); override;
    property Styles: TcxEditorRowStyles read GetStyles write SetStyles;
    property Properties: TcxCustomEditorRowProperties read GetProperties write SetProperties;
  public
    function CreateHeaderInfo: TcxCustomRowHeaderInfo; override;
    function CreateViewInfo: TcxCustomRowViewInfo; override;
  published
    property EditPropertiesEvents: TNotifyEvent read FEditPropertiesEvents write FEditPropertiesEvents;
    property Options;
    property PropertiesEvents: TNotifyEvent read FPropertiesEvents write FPropertiesEvents;
  end;

  { TcxEditorRow }

  TcxEditorRow = class(TcxCustomEditorRow)
  private
    function GetProperties: TcxEditorRowProperties;
    procedure SetProperties(Value: TcxEditorRowProperties);
  protected
    function GetPropertiesClass: TcxRowPropertiesClass; override;
  published
    property Expanded;
    property Height;
    property Options;
    property Properties: TcxEditorRowProperties read GetProperties write SetProperties;
    property Styles;
    property Visible;
  end;

  { TcxMultiEditorRow }

  TSeparatorKind = (skVertLine, skString);

  { TSeparatorInfo }

  TSeparatorInfo = record
    Width: Integer;
    Kind: TSeparatorKind;
    Caption: string;
    TextFlags: Integer;
    ViewParams: TcxViewParams;
  end;

  { TcxMultiEditorRowPropertiesOptions }

  TcxMultiEditorRowPropertiesOptions = class(TcxCustomEditContainerItemOptions)
  published
    property Editing;
    property Filtering;
    property Focusing;
    property IncSearch;
    property ShowEditButtons;
    property TabStop;
  end;

  { TcxCollectionItemEditorRowProperties }

  TcxCollectionItemEditorRowProperties = class(TcxCustomEditorRowProperties)
  private
    FEditPropertiesEvents: TNotifyEvent;
    FWidth: Integer;
    function GetOptions: TcxMultiEditorRowPropertiesOptions;
    procedure SetOptions(Value: TcxMultiEditorRowPropertiesOptions);
    procedure SetWidth(Value: Integer);
  protected
    function GetDisplayName: string; override;
    function GetOwner: TPersistent; override;
    property Options: TcxMultiEditorRowPropertiesOptions read GetOptions write SetOptions;
  public
    constructor CreateEx(ARow: TcxCustomRow); override;
    procedure Assign(Source: TPersistent); override;
  published
    property EditPropertiesEvents: TNotifyEvent read FEditPropertiesEvents write FEditPropertiesEvents;
    property Width: Integer read FWidth write SetWidth default 50;
  end;

  { TcxEditorRowItemProperties }

  TcxEditorRowItemProperties = class(TcxCollectionItemEditorRowProperties)
  public
    procedure Assign(Source: TPersistent); override;
  published
    property DataBinding;
    property Options;
    property Value;
    property OnGetDisplayText;
    property OnGetEditProperties;
    property OnGetEditingProperties;
  end;

  { TcxEditorPropertiesCollection }

  TcxEditorPropertiesCollection = class(TCollection)
  private
    FRow: TcxCustomMultiEditorRow;
    function GetItem(Index: Integer): TcxEditorRowItemProperties;
  protected
    function GetCollectionItemClass: TCollectionItemClass; virtual;
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(ARow: TcxCustomMultiEditorRow); reintroduce; virtual;
    function Add: TcxEditorRowItemProperties;
    function GetNamePath: string; override;
    property Items[Index: Integer]: TcxEditorRowItemProperties read GetItem; default;
    property Row: TcxCustomMultiEditorRow read FRow;
  end;

  TcxEditorPropertiesCollectionClass = class of TcxEditorPropertiesCollection;

  { TcxMultiEditorRowProperties }

  TcxMultiEditorRowProperties = class(TcxCustomRowProperties)
  private
    FFixed: Boolean;
    FEditors: TcxEditorPropertiesCollection;
    FSeparatorAlignmentVert: TcxAlignmentVert;
    FSeparatorKind: TSeparatorKind;
    FSeparatorString: string;
    procedure SetFixed(Value: Boolean);
    procedure SetSeparatorAlignmentVert(Value: TcxAlignmentVert);
    procedure SetSeparatorKind(Value: TSeparatorKind);
    procedure SetSeparatorString(const Value: string);
  protected
    function GetCollectionClass: TcxEditorPropertiesCollectionClass; virtual;
    function GetOwner: TPersistent; override;
  public
    constructor CreateEx(ARow: TcxCustomRow); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
  published
    property Editors: TcxEditorPropertiesCollection read FEditors write FEditors;
    property Fixed: Boolean read FFixed write SetFixed default False;
    property SeparatorAlignmentVert: TcxAlignmentVert read FSeparatorAlignmentVert
      write SetSeparatorAlignmentVert default vaTop;
    property SeparatorKind: TSeparatorKind read FSeparatorKind
      write SetSeparatorKind default skVertLine;
    property SeparatorString: string read FSeparatorString write SetSeparatorString;
  end;

  { TcxCustomMultiEditorRow }

  TcxCustomMultiEditorRow = class(TcxCustomRow)
  private
    function GetProperties: TcxMultiEditorRowProperties;
    function GetStyles: TcxEditorRowStyles;
    procedure SetProperties(const Value: TcxMultiEditorRowProperties);
    procedure SetStyles(Value: TcxEditorRowStyles);
  protected
    function CanFocus: Boolean; override;
    function GetDefaultHeight: Integer; override;
    function GetEditContainer(ACellIndex: Integer): TcxCellEdit; override;
    function GetEditContainerCount: Integer; override;
    function GetPropertiesClass: TcxRowPropertiesClass; override;
    function GetStylesClass: TcxvgCustomRowStylesClass; override;
    property Styles: TcxEditorRowStyles read GetStyles write SetStyles;
    property Properties: TcxMultiEditorRowProperties read GetProperties write SetProperties;
  public
    function CreateHeaderInfo: TcxCustomRowHeaderInfo; override;
    function CreateViewInfo: TcxCustomRowViewInfo; override;
  end;

  { TcxMultiEditorRow }

  TcxMultiEditorRow = class(TcxCustomMultiEditorRow)
  published
    property Expanded;
    property Height;
    property Options;
    property Properties;
    property Styles;
    property Visible;
  end;

  { TcxVerticalGridRows }

  TcxVerticalGridRows = class
  private
    FList: TList;
    FLockCount: Integer;
    FNextID: Integer;
    FOwner: TcxCustomVerticalGrid;
    FCount: Integer;
    function GetCount: Integer;
    function GetRoot: TcxCustomRow;
    function GetRow(Index: Integer): TcxCustomRow;
    procedure SetRow(Index: Integer; const Value: TcxCustomRow);
  protected
    procedure Add(ARow: TcxCustomRow);
    procedure AddChild(AParent, ARow: TcxCustomRow);
    procedure BeginUpdate;
    procedure Changed(ARebuild: Boolean = False); virtual;
    procedure CheckList;
    procedure Clear;
    procedure EndUpdate;
    function FindRowByID(AID: Integer): TcxCustomRow;
    function FindRowByStoredName(const AName: string): TcxCustomRow;
    function GetNextID: Integer;
    procedure PrepareList;
    procedure Remove(ARow: TcxCustomRow);
    procedure RestoreDefaults;
    procedure UnprepareList;
    property Root: TcxCustomRow read GetRoot;
    property Owner: TcxCustomVerticalGrid read FOwner;
  public
    constructor Create(AOwner: TcxCustomVerticalGrid);
    destructor Destroy; override;
    procedure AssignRows(Source: TcxVerticalGridRows);
    function IndexOf(ARow: TcxCustomRow): Integer;
    property Count: Integer read GetCount;
    property Items[Index: Integer]: TcxCustomRow read GetRow write SetRow; default;
  end;

  TcxvgUnboundLayoutStyle = (ulsBandsView, ulsSingleRecordView);
  TcxvgLayoutStyle = (lsBandsView, lsSingleRecordView, lsMultiRecordView);

  { TBandInfoList }

  TBandInfo = record
    BandIndex: Integer;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -