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

📄 fchild.pas

📁 FlexGraphics是一套创建矢量图形的VCL组件
💻 PAS
字号:
unit fChild;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, FlexBase;

type
  TFlexChildForm = class(TForm)
    Flex: TFlexPanel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormActiveChange(Sender: TObject);
    procedure FlexPanel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    FFilename: string;
    FNewDocument: boolean;
    FClosing: boolean;
    FOnActiveChange: TNotifyEvent;
    procedure SetFilename(const Value: string);
  public
    { Public declarations }
    destructor Destroy; override;
    property  Filename: string read FFileName write SetFilename;
    property  NewDocument: boolean read FNewDocument write FNewDocument;
    property  OnActiveChange: TNotifyEvent read FOnActiveChange
      write FOnActiveChange;
  end;

var
  FlexChildForm: TFlexChildForm;

implementation

uses FlexUtils, FlexControls, Main;

{$R *.DFM}

// TFlexChildForm /////////////////////////////////////////////////////////////

procedure TFlexChildForm.FormCreate(Sender: TObject);
begin
 FNewDocument := true;
 Flex.InDesign := true;
 Flex.History.Active := true;
end;

destructor TFlexChildForm.Destroy;
begin
 inherited;
 FormActiveChange(Self);
end;

procedure TFlexChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Color := EditMainForm.Color;
 Flex.Visible := false;
 Screen.Cursor := crHourGlass;
 try
  Flex.UnselectAll;
  Flex.EmptyDocument;
 finally
  Screen.Cursor := crDefault;
 end;
 Action := caFree;
end;

procedure TFlexChildForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var ModalRes: integer;
begin
 CanClose := true;
 if FClosing or not Flex.Modified then exit;
 ModalRes := MessageDlg('Save changes to '+ExtractFileName(FFilename)+'?',
   mtWarning, [mbYes, mbNo, mbCancel], 0);
 case ModalRes of
  mrYes:
    if not EditMainForm.SaveChanges(Self) then
     CanClose := false;
  mrNo:
    ;
  mrCancel:
    CanClose := false;
 end;
 FClosing := CanClose;
end;

procedure TFlexChildForm.FormActiveChange(Sender: TObject);
begin
 if Assigned(FOnActiveChange) then FOnActiveChange(Self);
end;

procedure TFlexChildForm.FlexPanel1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 if Sender = Flex then begin
  Flex.SetFocus;
  if not Flex.Focused then Windows.SetFocus(Flex.Handle);
 end;
end;

procedure TFlexChildForm.SetFilename(const Value: string);
begin
 if Value = FFilename then exit;
 FFileName := Value;
 Caption := ExtractFileName(FFilename);
 FNewDocument := not FileExists(FFileName);
end;

procedure TFlexChildForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key = VK_MENU) and (Flex.ToolMode = ftmSelect) and
    not Assigned(Flex.CreatingControlClass) then
  Flex.ToolMode := ftmPan;
end;

procedure TFlexChildForm.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key = VK_MENU) and
   ((Flex.ToolMode = ftmPan) or (Flex.ToolMode = ftmPanning)) then
  Flex.ToolMode := ftmSelect;
end;

end.

⌨️ 快捷键说明

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