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

📄 frxedithighlight.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
字号:
{******************************************}
{ }
{ FastReport v3.0 }
{ Highlight editor }
{ }
{ Copyright (c) 1998-2005 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}

unit frxEditHighlight;

interface

{$I frx.inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, frxClass, ExtCtrls, Buttons, frxCtrls
{$IFDEF Delphi6}
, Variants
{$ENDIF};
  

type
  TfrxHighlightEditorForm = class(TForm)
    OKB:TButton;
    CancelB:TButton;
    ConditionL:TGroupBox;
    ConditionE:TfrxComboEdit;
    FontL:TGroupBox;
    FontColorB:TSpeedButton;
    BoldCB:TCheckBox;
    ItalicCB:TCheckBox;
    UnderlineCB:TCheckBox;
    ColorDialog1:TColorDialog;
    BackgroundL:TGroupBox;
    BackColorB:TSpeedButton;
    TransparentRB:TRadioButton;
    OtherRB:TRadioButton;
    procedure FontColorBClick(Sender:TObject);
    procedure BackColorBClick(Sender:TObject);
    procedure TransparentRBClick(Sender:TObject);
    procedure ConditionEButtonClick(Sender:TObject);
    procedure FormShow(Sender:TObject);
    procedure FormHide(Sender:TObject);
    procedure FormCreate(Sender:TObject);
  private
    FBackColor:TColor;
    FFontColor:TColor;
    FHighlight:TfrxHighlight;
    FMemoView:TfrxCustomMemoView;
    procedure SetGlyph(Button:TSpeedButton; Color:TColor);
  public
    property MemoView:TfrxCustomMemoView read FMemoView write FMemoView;
  end;

implementation

{$R *.DFM}

uses frxRes;

procedure TfrxHighlightEditorForm.FormShow(Sender:TObject);
begin
  FHighlight:= FMemoView.Highlight;
  FBackColor:= FHighlight.Color;
  FFontColor:= FHighlight.Font.Color;

  ConditionE.Text:= FHighlight.Condition;
  BoldCB.Checked:= fsBold in FHighlight.Font.Style;
  ItalicCB.Checked:= fsItalic in FHighlight.Font.Style;
  UnderlineCB.Checked:= fsUnderline in FHighlight.Font.Style;
  SetGlyph(FontColorB, FFontColor);

  if FBackColor = clTransparent then
    TransparentRB.Checked:= True else
    OtherRB.Checked:= True;
  SetGlyph(BackColorB, FBackColor);

  TransparentRBClick(nil);
end;

procedure TfrxHighlightEditorForm.FormHide(Sender:TObject);
var
  fs:TFontStyles;
begin
  if ModalResult = mrOk then
  begin
    FHighlight.Condition:= ConditionE.Text;

    fs:= [];
    if BoldCB.Checked then
      fs:= fs+[fsBold];
    if ItalicCB.Checked then
      fs:= fs+[fsItalic];
    if UnderlineCB.Checked then
      fs:= fs+[fsUnderline];

    FHighlight.Font:= MemoView.Font;
    FHighlight.Font.Style:= fs;
    FHighlight.Font.Color:= FFontColor;
    FHighlight.Color:= FBackColor;
  end;
end;

procedure TfrxHighlightEditorForm.SetGlyph(Button:TSpeedButton; Color:TColor);
var
  bmp:TBitmap;
begin
  bmp:= TBitmap.Create;
  bmp.Width:= 14;
  bmp.Height:= 15;
  with bmp.Canvas do
  begin
    Brush.Color:= clBtnFace;
    FillRect(Rect(0, 0, 14, 15));
    Pen.Color:= clGray;
    Brush.Color:= Color;
    Rectangle(0, 0, 14, 14);
  end;

  Button.Glyph:= bmp;
  bmp.Free;
end;

procedure TfrxHighlightEditorForm.FontColorBClick(Sender:TObject);
begin
  ColorDialog1.Color:= FFontColor;
  if ColorDialog1.Execute then
  begin
    FFontColor:= ColorDialog1.Color;
    SetGlyph(FontColorB, FFontColor);
  end;
end;

procedure TfrxHighlightEditorForm.BackColorBClick(Sender:TObject);
begin
  ColorDialog1.Color:= FBackColor;
  if ColorDialog1.Execute then
  begin
    FBackColor:= ColorDialog1.Color;
    SetGlyph(BackColorB, FBackColor);
  end;
end;

procedure TfrxHighlightEditorForm.TransparentRBClick(Sender:TObject);
begin
  BackColorB.Enabled:= OtherRB.Checked;
  if TransparentRB.Checked then
    FBackColor:= clTransparent;
end;

procedure TfrxHighlightEditorForm.ConditionEButtonClick(Sender:TObject);
var
  s:String;
begin
  s:= TfrxCustomDesigner(Owner).InsertExpression(ConditionE.Text);
  if s<>'' then
    ConditionE.Text:= s;
end;

procedure TfrxHighlightEditorForm.FormCreate(Sender:TObject);
begin
  frxResources.LocalizeForm(Self);
end;

end.

⌨️ 快捷键说明

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