📄 ucolumns.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 + -