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

📄 ucolumns.pas

📁 Korea, a data table control 韩国控件的DEMO 值得学习
💻 PAS
字号:
unit UColumns;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  URGrids, ExtCtrls, ComCtrls, Db, DBTables, StdCtrls, Buttons, ExtDlgs;

type
  TfrmColumns = class(TForm)
    pgMain: TPageControl;
    Splitter1: TSplitter;
    grdMain: TRealGrid;
    tabTitle: TTabSheet;
    tblMain: TTable;
    tblMainSpeciesNo: TFloatField;
    tblMainCategory: TStringField;
    tblMainCommon_Name: TStringField;
    tblMainSpeciesName: TStringField;
    tblMainLengthcm: TFloatField;
    tblMainLength_In: TFloatField;
    tblMainNotes: TMemoField;
    tblMainGraphic: TGraphicField;
    Label1: TLabel;
    chkTitleClicking: TCheckBox;
    edTitleCaption: TEdit;
    grpTitleAlignment: TRadioGroup;
    grpTitleLayout: TRadioGroup;
    chkTitleWordWrap: TCheckBox;
    dlgOpenImg: TOpenPictureDialog;
    GroupBox1: TGroupBox;
    Panel1: TPanel;
    imgTitle: TImage;
    cmLoadTitleImage: TSpeedButton;
    grpTitleImageLayout: TRadioGroup;
    tabCell: TTabSheet;
    memoMain: TMemo;
    Splitter2: TSplitter;
    grpAlignment: TRadioGroup;
    grpLayout: TRadioGroup;
    chkWordWrap: TCheckBox;
    grpFitStyle: TRadioGroup;
    Label2: TLabel;
    edPrefix: TEdit;
    Label3: TLabel;
    edSuffix: TEdit;
    cmTitleColor: TSpeedButton;
    cmTitleFont: TSpeedButton;
    cmColor: TSpeedButton;
    cmFont: TSpeedButton;
    dlgColor: TColorDialog;
    dlgFont: TFontDialog;
    grdMargins: TRealGrid;
    Label4: TLabel;
    chkAutoSize: TCheckBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure grdMainGetImage(AColumn: TwMemColumn; ARow: Integer;
      Image: TBitmap);
    procedure grdMainColumnTitleClick(AColumn: TwColumn);
    procedure FormShow(Sender: TObject);
    procedure grdMainColEnter(Sender: TObject);
    procedure grpTitleAlignmentClick(Sender: TObject);
    procedure edTitleCaptionKeyPress(Sender: TObject; var Key: Char);
    procedure edTitleCaptionExit(Sender: TObject);
    procedure grpTitleLayoutClick(Sender: TObject);
    procedure chkTitleWordWrapClick(Sender: TObject);
    procedure chkTitleClickingClick(Sender: TObject);
    procedure cmLoadTitleImageClick(Sender: TObject);
    procedure grpAlignmentClick(Sender: TObject);
    procedure grpLayoutClick(Sender: TObject);
    procedure chkWordWrapClick(Sender: TObject);
    procedure grpFitStyleClick(Sender: TObject);
    procedure edPrefixKeyPress(Sender: TObject; var Key: Char);
    procedure edPrefixExit(Sender: TObject);
    procedure edSuffixKeyPress(Sender: TObject; var Key: Char);
    procedure edSuffixExit(Sender: TObject);
    procedure cmTitleColorClick(Sender: TObject);
    procedure cmTitleFontClick(Sender: TObject);
    procedure cmColorClick(Sender: TObject);
    procedure cmFontClick(Sender: TObject);
    procedure grdMarginsAfterPost(Sender: TObject);
    procedure grpTitleImageLayoutClick(Sender: TObject);
    procedure chkAutoSizeClick(Sender: TObject);
  private
    procedure SelectData;
    procedure SetProperties;
    procedure InitMarginGrid(AGrid: TRealGrid);

  public
  end;

implementation

{$R *.DFM}

uses URTypes;

const
  GD_SPECIES_NO   = 0;
  GD_CATEGORY     = 1;
  GD_COMMON_NAME  = 2;
  GD_SPECIES_NAME = 3;
  GD_LENGTH_CM    = 4;
  GD_LENGTH_IN    = 5;
  GD_NOTES        = 6;
  GD_GRAPHIC      = 7;

  Description = 'TwCustomGrid狼 阿 拿烦狼 加己殿篮 TwColumn 努贰胶俊辑 沥狼邓聪促.' + #13#10 +
                'TwColumn篮 拿烦狼 Header(鸥捞撇) 康开苞 包访等 TwColumnTitle, ' +
                'Footer 康开苞 包访等 TwColumnFooter 按眉甸阑 器窃钦聪促.' + #13#10 +
                '肚茄, TRealGrid 殿 TwCustomGrid甫 拌铰茄 弊府靛甸篮 阿磊狼 鞘夸俊 蝶扼 ' +
                'TwColumn阑 拌铰茄 喊档狼 拿烦努贰胶甫 沥狼钦聪促.' +
                '抗甫甸绢 TRealGrid狼 拿烦 努贰胶绰 拿烦狼 磊丰屈殿阑 沥狼茄 TwMemColumn涝聪促.' + #13#10 +
                '咯扁俊辑绰 葛电 弊府靛俊 傍烹利牢 夸家甸 漂洒, 拿烦 鸥捞撇苞 单捞磐伎 甸俊 ' +
                '包茄 夸家甸阑 措帆 家俺钦聪促. ' +
                'TwColumn篮 捞 寇俊 腹篮 扁瓷利 夸家甸阑 器窃窍绊 乐嚼聪促.' + #13#10 +
                '拿烦Footer俊 包秦辑绰 促弗 镑俊辑 家俺且 巴涝聪促.';

(*** Private Methods ***)
procedure TfrmColumns.SelectData;
begin
  with tblMain, grdMain do
  begin
    Open;

    while not EOF do
    begin
      AddRow;

      Cells[GD_SPECIES_NO  , RowCount - 1].AsString := Fields[GD_SPECIES_NO  ].AsString;
      Cells[GD_CATEGORY    , RowCount - 1].AsString := Fields[GD_CATEGORY    ].AsString;
      Cells[GD_COMMON_NAME , RowCount - 1].AsString := Fields[GD_COMMON_NAME ].AsString;
      Cells[GD_SPECIES_NAME, RowCount - 1].AsString := Fields[GD_SPECIES_NAME].AsString;
      Cells[GD_LENGTH_CM   , RowCount - 1].AsFloat  := Fields[GD_LENGTH_CM   ].AsFloat;
      Cells[GD_LENGTH_IN   , RowCount - 1].AsFloat  := Fields[GD_LENGTH_IN   ].AsFloat;
      Cells[GD_NOTES       , RowCount - 1].AsString := Fields[GD_NOTES       ].AsString;
      //Cells[GD_GRAPHIC     , RowCount - 1].AsString := Fields[GD_GRAPHIC     ].AsString;

      Next;
    end;

    //Close;
  end;
end;

procedure TFrmColumns.SetProperties;
begin
  with grdMain.SelectedColumn do
  begin
    // Title
    with Title do
    begin
      edTitleCaption.Text           := Caption;
      chkTitleClicking.Checked      := Clicking;
      chkTitleWordWrap.Checked      := WordWrap;
      grpTitleAlignment.ItemIndex   := Ord(Alignment);
      grpTitleLayout.ItemIndex      := Ord(Layout);
      imgTitle.Picture.Bitmap       := Image;
      grpTitleImageLayout.ItemIndex := Ord(ImageLayout);
    end;

    // Column
    grpAlignment.ItemIndex := Ord(Alignment);
    grpLayout.ItemIndex    := Ord(Layout);
    chkWordWrap.Checked    := WordWrap;
    grpFitStyle.ItemIndex  := Ord(FitStyle);
    edPrefix.Text          := Prefix;
    edSuffix.Text          := Suffix;
    chkAutoSize.Checked    := AutoSize;

    with grdMargins do
    begin
      Cells[1, 0].AsLong := MarginLeft;
      Cells[1, 1].AsLong := MarginTop;
      Cells[1, 2].AsLong := MarginRight;
      Cells[1, 3].AsLong := MarginBottom;
    end;
  end;
end;

procedure TfrmColumns.InitMarginGrid(AGrid: TRealGrid);
begin
  with AGrid do
  begin
    Cells[0, 0].AsString := 'Left';
    Cells[0, 1].AsString := 'Top';
    Cells[0, 2].AsString := 'Right';
    Cells[0, 3].AsString := 'Bottom';
  end;
end;

(*** Event Handlers ***)
procedure TfrmColumns.FormCreate(Sender: TObject);
begin
  memoMain.Lines.Text := Description;
  InitMarginGrid(grdMargins);
  SelectData;
  pgMain.ActivePage := tabTitle;
end;

procedure TfrmColumns.FormShow(Sender: TObject);
begin
  grdMain.SetFocus;
  SetProperties;
end;

procedure TfrmColumns.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TfrmColumns.grdMainGetImage(AColumn: TwMemColumn; ARow: Integer;
  Image: TBitmap);
begin
  if AColumn.Index = GD_GRAPHIC then
  begin
    tblMain.Locate('Species No', grdMain.Cells[GD_SPECIES_NO, ARow].AsString, []);
    Image.Assign(tblMain.Fields[GD_GRAPHIC]);
  end;
end;

procedure TfrmColumns.grdMainColumnTitleClick(AColumn: TwColumn);
begin
  ShowMessage(AColumn.Title.Caption + ' Clicked.');
end;

procedure TfrmColumns.grdMainColEnter(Sender: TObject);
begin
  SetProperties;
end;

procedure TfrmColumns.edTitleCaptionKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
  begin
    grdMain.SelectedColumn.Title.Caption := edTitleCaption.Text;
    Key := #0;
  end;
end;

procedure TfrmColumns.edTitleCaptionExit(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.Caption := edTitleCaption.Text;
end;

procedure TfrmColumns.chkTitleClickingClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.Clicking := chkTitleClicking.Checked;
end;

procedure TfrmColumns.chkTitleWordWrapClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.WordWrap := chkTitleWordWrap.Checked;
end;

procedure TfrmColumns.grpTitleAlignmentClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.Alignment := TAlignment(grpTitleAlignment.ItemIndex);
end;

procedure TfrmColumns.grpTitleLayoutClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.Layout := TTextLayout(grpTitleLayout.ItemIndex);
end;

procedure TfrmColumns.cmLoadTitleImageClick(Sender: TObject);
begin
  if dlgOpenImg.Execute then
  begin
    imgTitle.Picture.Bitmap.LoadFromFile(dlgOpenImg.FileName);
    grdMain.SelectedColumn.Title.Image := imgTitle.Picture.Bitmap;
  end;
end;

procedure TfrmColumns.grpTitleImageLayoutClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Title.ImageLayout := TwImageLayout(grpTitleImageLayout.ItemIndex);
end;

procedure TfrmColumns.grpAlignmentClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Alignment := TAlignment(grpAlignment.ItemIndex);
end;

procedure TfrmColumns.grpLayoutClick(Sender: TObject);
begin
  grdMain.SelectedColumn.Layout := TTextLayout(grpLayout.ItemIndex);
end;

procedure TfrmColumns.chkWordWrapClick(Sender: TObject);
begin
  grdMain.SelectedColumn.WordWrap := chkWordWrap.Checked;
end;

procedure TfrmColumns.grpFitStyleClick(Sender: TObject);
begin
  grdMain.SelectedColumn.FitStyle := TwFitStyle(grpFitStyle.ItemIndex);
end;

procedure TfrmColumns.edPrefixKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    grdMain.SelectedColumn.Prefix := edPrefix.Text;
    Key := #0;
  end;
end;

procedure TfrmColumns.edPrefixExit(Sender: TObject);
begin
  grdMain.SelectedColumn.Prefix := edPrefix.Text;
end;

procedure TfrmColumns.edSuffixKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    grdMain.SelectedColumn.Suffix := edSuffix.Text;
    Key := #0;
  end;
end;

procedure TfrmColumns.edSuffixExit(Sender: TObject);
begin
  grdMain.SelectedColumn.Suffix := edSuffix.Text;
end;

procedure TfrmColumns.cmTitleColorClick(Sender: TObject);
begin
  dlgColor.Color := grdMain.SelectedColumn.Title.Color;
  if dlgColor.Execute then
    grdMain.SelectedColumn.Title.Color := dlgColor.Color;
end;

procedure TfrmColumns.cmTitleFontClick(Sender: TObject);
begin
  dlgFont.Font := grdMain.SelectedColumn.Title.Font;
  if dlgFont.Execute then
    grdMain.SelectedColumn.Title.Font := dlgFont.Font;
end;

procedure TfrmColumns.cmColorClick(Sender: TObject);
begin
  dlgColor.Color := grdMain.SelectedColumn.Color;
  if dlgColor.Execute then
    grdMain.SelectedColumn.Color := dlgColor.Color;
end;

procedure TfrmColumns.cmFontClick(Sender: TObject);
begin
  dlgFont.Font := grdMain.SelectedColumn.Font;
  if dlgFont.Execute then
    grdMain.SelectedColumn.Font := dlgFont.Font;
end;

procedure TfrmColumns.grdMarginsAfterPost(Sender: TObject);
begin
  with grdMargins, grdMain.SelectedColumn do
  begin
    Post;

    MarginLeft   := Cells[1, 0].AsLong;
    MarginTop    := Cells[1, 1].AsLong;
    MarginRight  := Cells[1, 2].AsLong;
    MarginBottom := Cells[1, 3].AsLong;
  end;
end;

procedure TfrmColumns.chkAutoSizeClick(Sender: TObject);
begin
  grdMain.SelectedColumn.AutoSize := chkAutoSize.Checked;
end;

end.
 

⌨️ 快捷键说明

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