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

📄 frxcustomeditors.pas

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

unit frxCustomEditors;

interface

{$I frx.inc}

uses
  Windows, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms, Menus,
  Dialogs, frxClass, frxDMPClass, frxDsgnIntf
{$IFDEF Delphi6}
, Variants
{$ENDIF};

type
  TfrxViewEditor = class(TfrxComponentEditor)
  public
    procedure GetMenuItems; override;
    function Execute(Tag:Integer; Checked:Boolean):Boolean; override;
  end;

  TfrxCustomMemoEditor = class(TfrxViewEditor)
  public
    procedure GetMenuItems; override;
    function Execute(Tag:Integer; Checked:Boolean):Boolean; override;
  end;

implementation

uses frxEditMemo, frxEditFormat, frxRes;

{ TfrxViewEditor }

function TfrxViewEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  i:Integer;
  c:TfrxComponent;
  v:TfrxView;
begin
  Result:= False;
  for i:= 0 to Designer.SelectedObjects.Count-1 do
  begin
    c:= Designer.SelectedObjects[i];
    if (c is TfrxView) and not (rfDontModify in c.Restrictions) and (Tag in [50..53]) then
    begin
      v:= TfrxView(c);
      case Tag of
        50:if Checked then
             v.ShiftMode:= smAlways else
             v.ShiftMode:= smDontShift;
        51:if Checked then
             v.ShiftMode:= smWhenOverlapped else
             v.ShiftMode:= smDontShift;
        52:v.Visible:= Checked;
        53:v.Printable:= Checked;
      end;

      Result:= True;
    end;
  end;
end;

procedure TfrxViewEditor.GetMenuItems;
var
  v:TfrxView;
begin
  v:= TfrxView(Component);

  AddItem(frxResources.Get('mvShift'), 50, v.ShiftMode = smAlways);
  AddItem(frxResources.Get('mvShiftOver'), 51, v.ShiftMode = smWhenOverlapped);
  AddItem(frxResources.Get('mvVisible'), 52, v.Visible);
  AddItem(frxResources.Get('mvPrintable'), 53, v.Printable);
end;

{ TfrxCustomMemoEditor }

function TfrxCustomMemoEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  i:Integer;
  c:TfrxComponent;
  m:TfrxCustomMemoView;
  DisplayFormat:TfrxFormat;

  function EditFormat:Boolean;
  begin
    with TfrxFormatEditorForm.Create(Designer) do
    begin
      Format.Assign(TfrxCustomMemoView(Component).DisplayFormat);
      Result:= ShowModal = mrOk;
      if Result then
        DisplayFormat.Assign(Format);
      Free;
    end;
  end;

begin
  Result:= inherited Execute(Tag, Checked);

  DisplayFormat:= TfrxFormat.Create;
  try
    if Tag = 1 then
      if not EditFormat then Exit;

    for i:= 0 to Designer.SelectedObjects.Count-1 do
    begin
      c:= Designer.SelectedObjects[i];
      if (c is TfrxCustomMemoView) and not (rfDontModify in c.Restrictions) then
      begin
        m:= TfrxCustomMemoView(c);
        case Tag of
          1:m.DisplayFormat:= DisplayFormat;
          2:m.Memo.Clear;
          3:m.AutoWidth:= Checked;
          4:m.WordWrap:= Checked;
          5:m.SuppressRepeated:= Checked;
          6:m.HideZeros:= Checked;
          7:m.AllowExpressions:= Checked;
          8:m.AllowHTMLTags:= Checked;
          40:if Checked then
               m.StretchMode:= smActualHeight else
               m.StretchMode:= smDontStretch;
          41:if Checked then
               m.StretchMode:= smMaxHeight else
               m.StretchMode:= smDontStretch;
        end;

        Result:= True;
      end;
    end;
  finally
    DisplayFormat.Free;
  end;
end;

procedure TfrxCustomMemoEditor.GetMenuItems;
var
  m:TfrxCustomMemoView;
begin
  m:= TfrxCustomMemoView(Component);

  AddItem(frxResources.Get('mvFormat'), 1);
  AddItem(frxResources.Get('mvClear'), 2);
  AddItem('-',-1);
  AddItem(frxResources.Get('mvAutoWidth'), 3, m.AutoWidth);
  AddItem(frxResources.Get('mvWWrap'), 4, m.WordWrap);
  AddItem(frxResources.Get('mvSuppress'), 5, m.SuppressRepeated);
  AddItem(frxResources.Get('mvHideZ'), 6, m.HideZeros);
  AddItem(frxResources.Get('mvExpr'), 7, m.AllowExpressions);
  if not (m is TfrxDMPMemoView) then
    AddItem(frxResources.Get('mvHTML'), 8, m.AllowHTMLTags);
  AddItem('-',-1);
  AddItem(frxResources.Get('mvStretch'), 40, m.StretchMode = smActualHeight);
  AddItem(frxResources.Get('mvStretchToMax'), 41, m.StretchMode = smMaxHeight);

  inherited;
end;

end.

⌨️ 快捷键说明

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