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

📄 stylessimpledemoedit.pas

📁 DevExpress.ExpressQuantumGrid控件组
💻 PAS
字号:
unit StylesSimpleDemoEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls, cxControls, cxContainer, cxEdit,
  cxMaskEdit, cxButtonEdit, cxStyles, cxTextEdit, ExtDlgs;

type
  TStylesSimpleDemoEditForm = class(TForm)
    ColorDialog: TColorDialog;
    FontDialog: TFontDialog;
    btnOK: TButton;
    nbtCancel: TButton;
    DesignGroupBox: TGroupBox;
    lbColor: TLabel;
    lbTextColor: TLabel;
    lbFont: TLabel;
    btnedFont: TcxButtonEdit;
    btnedTextColor: TcxButtonEdit;
    btnedColor: TcxButtonEdit;
    lbColorValue: TLabel;
    lbTextColorValue: TLabel;
    btnedBitmap: TcxButtonEdit;
    lbBitmap: TLabel;
    imgExample: TImage;
    OpenPictureDialog: TOpenPictureDialog;
    procedure btnedTextColorKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure nbtCancelClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure btnedColorPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure btnedFontPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnedBitmapPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    HoldColor: TColor;
    HoldTextColor: TColor;
    HoldFont: TFont;
    HoldBitmap: TBitmap;
    FSampleBitmap: TBitmap;
    FStyle: TcxStyle;
    procedure SaveStyleParams;
    procedure RestoreStyleParams;
    procedure RefreshStyleInfo;
  public
   property CurrentStyle: TcxStyle read FStyle;
  end;

 function ChangeStyle(AStyle: TcxStyle) : boolean;


implementation

{$R *.dfm}


function ChangeStyle(AStyle: TcxStyle) : boolean;
begin
 with TStylesSimpleDemoEditForm.Create(Application) do
  try
    FStyle := AStyle;
    Caption := 'Edit Style - ' + AStyle.Name;
    Result := ShowModal = mrOk;
  finally
    Free;
  end;
end;

procedure TStylesSimpleDemoEditForm.btnedTextColorKeyPress(Sender: TObject;
  var Key: Char);
begin
  Key := #0;
end;

procedure TStylesSimpleDemoEditForm.FormShow(Sender: TObject);
begin
  SaveStyleParams;
  RefreshStyleInfo;
end;

procedure TStylesSimpleDemoEditForm.RefreshStyleInfo;
begin
  btnedColor.Style.Color := CurrentStyle.Color;
  lbColorValue.Caption := ColorToString(CurrentStyle.Color);

  btnedTextColor.Style.Color := CurrentStyle.TextColor;
  lbTextColorValue.Caption := ColorToString(CurrentStyle.TextColor);

  btnedFont.Text := CurrentStyle.Font.Name;


  FSampleBitmap.Canvas.Brush.Style := bsSolid;
  if CurrentStyle.Bitmap.Empty then
  begin
    FSampleBitmap.Canvas.Brush.Color := CurrentStyle.Color;
    btnedBitmap.Text := '(none)';
  end
  else
  begin
    FSampleBitmap.Canvas.Brush.Bitmap := CurrentStyle.Bitmap;
    btnedBitmap.Text := '(bitmap)';
  end;
  FSampleBitmap.Canvas.FillRect(Rect(0, 0, FSampleBitmap.Width, FSampleBitmap.Height));
  FSampleBitmap.Canvas.Brush.Style := bsClear;
  FSampleBitmap.Canvas.Font.Assign(CurrentStyle.Font);
  FSampleBitmap.Canvas.Font.Color := CurrentStyle.TextColor;
  FSampleBitmap.Canvas.TextOut(10, 10, 'Style sample here.');
  imgExample.Picture.Bitmap := FSampleBitmap;

end;

procedure TStylesSimpleDemoEditForm.nbtCancelClick(Sender: TObject);
begin
  RestoreStyleParams;
end;

procedure TStylesSimpleDemoEditForm.RestoreStyleParams;
begin
  CurrentStyle.Color := HoldColor;
  CurrentStyle.TextColor := HoldTextColor;
  CurrentStyle.Font := HoldFont;
  CurrentStyle.Font.Assign(HoldFont);
  CurrentStyle.Bitmap := HoldBitmap;
  CurrentStyle.Bitmap.Assign(HoldBitmap);
end;

procedure TStylesSimpleDemoEditForm.SaveStyleParams;
begin
  HoldColor := CurrentStyle.Color;
  HoldTextColor := CurrentStyle.TextColor;
  HoldFont.Assign(CurrentStyle.Font);
  HoldBitmap.Assign(CurrentStyle.Bitmap);
end;

procedure TStylesSimpleDemoEditForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   if ModalResult <> mrOK then
     RestoreStyleParams;
end;

procedure TStylesSimpleDemoEditForm.btnedColorPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
   if ColorDialog.Execute then
  begin
     if TComponent(Sender).Tag = 0 then
       CurrentStyle.Color := ColorDialog.Color
     else
       CurrentStyle.TextColor := ColorDialog.Color;
     RefreshStyleInfo;
  end;
end;

procedure TStylesSimpleDemoEditForm.btnedFontPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  FontDialog.Font.Assign(CurrentStyle.Font);
  if FontDialog.Execute then
  begin
    CurrentStyle.Font := FontDialog.Font;
    RefreshStyleInfo;
  end;
end;

procedure TStylesSimpleDemoEditForm.FormCreate(Sender: TObject);
begin
  Position := poScreenCenter;
  HoldFont := TFont.Create;
  HoldBitmap := TBitmap.Create;
  FSampleBitmap := Tbitmap.Create;
  FSampleBitmap.Width := imgExample.Width;
  FSampleBitmap.Height := imgExample.Height;
  imgExample.Picture.Bitmap := FSampleBitmap;
end;

procedure TStylesSimpleDemoEditForm.btnedBitmapPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  case AButtonIndex of
    0:
    begin
      if OpenPictureDialog.Execute then
        CurrentStyle.Bitmap.LoadFromFile(OpenPictureDialog.FileName);
    end;
    1:
    begin
      CurrentStyle.Bitmap.FreeImage;
      CurrentStyle.Bitmap.ReleaseHandle;
      CurrentStyle.AssignedValues := CurrentStyle.AssignedValues - [svBitmap];
    end;
  end;
  RefreshStyleInfo;
end;

procedure TStylesSimpleDemoEditForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  HoldFont.Free;
  HoldBitmap.Free;
  FSampleBitmap.Free;
end;

end.

⌨️ 快捷键说明

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