customrowheightdemomain.pas

来自「DevExpress ExpressQuantumGrid Suite v5.9」· PAS 代码 · 共 123 行

PAS
123
字号
unit CustomRowHeightDemoMain;

{$I ..\..\cxVer.inc}

interface

uses
  Windows, Forms, Messages, SysUtils, Classes, ActnList, ImgList, Controls, Menus,
  StdCtrls, cxButtons, cxCheckBox, cxContainer, cxEdit, cxTextEdit,
  cxMaskEdit, cxSpinEdit, ExtCtrls, cxGridLevel, cxGridCustomTableView,
  cxGridCardView, cxGridDBCardView, cxClasses, cxControls,
  cxGridCustomView, cxGrid, ComCtrls, cxStyles, cxCustomData, cxGraphics,
  cxFilter, cxData, DB, cxDBData, cxDataStorage, cxLookAndFeelPainters,
  cxLookAndFeels, cxHyperLinkEdit, cxImageComboBox, cxDBLookupComboBox,
  cxMemo, cxImage, cxGridTableView, cxGridDBTableView;

type
  TCustomRowHeightDemoMainForm = class(TForm)
    mmMain: TMainMenu;
    miAbout: TMenuItem;
    miFile: TMenuItem;
    miOptions: TMenuItem;
    miExit: TMenuItem;
    sbMain: TStatusBar;
    lbDescrip: TLabel;
    LookAndFeelController: TcxLookAndFeelController;
    Grid: TcxGrid;
    tvFilms: TcxGridDBTableView;
    tvFilmsCAPTION: TcxGridDBColumn;
    tvFilmsPLOTOUTLINE: TcxGridDBColumn;
    tvFilmsPHOTO: TcxGridDBColumn;
    lvFilms: TcxGridLevel;
    miPictureZoom: TMenuItem;
    miZoom100perc: TMenuItem;
    miZoom75perc: TMenuItem;
    miZoom50perc: TMenuItem;
    miZoom25perc: TMenuItem;
    procedure miAboutClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure miZoomClick(Sender: TObject);
    procedure tvFilmsGetCellHeight(Sender: TcxCustomGridTableView;
      ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
      ACellViewInfo: TcxGridTableDataCellViewInfo; var AHeight: Integer);
  private
    FCurrentZoom: Integer;
    function GetZoomByMenuItem(AMenuItemIndex: Integer): Integer;
  public
    constructor Create(AOwner: TComponent); override;
  end;

var
  CustomRowHeightDemoMainForm: TCustomRowHeightDemoMainForm;

implementation

{$R *.dfm}

uses
  {$IFDEF DELPHI6}
  Variants,
  {$ENDIF}
  CustomRowHeightDemoData, Dialogs, AboutDemoForm, Graphics, cxVariants;

constructor TCustomRowHeightDemoMainForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FCurrentZoom := 50;
end;

procedure TCustomRowHeightDemoMainForm.miAboutClick(Sender: TObject);
begin
  ShowAboutDemoForm;
end;

procedure TCustomRowHeightDemoMainForm.miExitClick(Sender: TObject);
begin
  Close;
end;

procedure TCustomRowHeightDemoMainForm.miZoomClick(Sender: TObject);
begin
  TMenuItem(Sender).Checked := True;
  FCurrentZoom := GetZoomByMenuItem(TMenuItem(Sender).MenuIndex);
  tvFilms.SizeChanged;
end;

procedure TCustomRowHeightDemoMainForm.tvFilmsGetCellHeight(
  Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
  AItem: TcxCustomGridTableItem;
  ACellViewInfo: TcxGridTableDataCellViewInfo; var AHeight: Integer);
var
  AEditValue: Variant;
  APicture: TPicture;
begin
  if AItem <> tvFilmsPHOTO then
  begin
    AHeight := 0;
    Exit;
  end;
  AEditValue := ARecord.Values[tvFilmsPHOTO.Index];
  if VarIsStr(AEditValue) then
  begin
    APicture := TPicture.Create;
    try
      LoadPicture(APicture,
        TcxImageProperties(tvFilmsPHOTO.Properties).GraphicClass, AEditValue);
      AHeight := APicture.Height;
      AHeight := AHeight * FCurrentZoom div 100;
    finally
      APicture.Free;
    end;
  end;
end;

function TCustomRowHeightDemoMainForm.GetZoomByMenuItem(AMenuItemIndex: Integer): Integer;
const
  Zoom: array[0..3] of Integer = (100, 75, 50, 25);
begin
  Result := Zoom[AMenuItemIndex];
end;

end.

⌨️ 快捷键说明

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