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 + -
显示快捷键?