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