📄 fdocprops.pas
字号:
unit fDocProps;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, FlexBase, FlexProps, FlexUtils, RXSpin;
type
TfmDocProps = class(TForm)
panProps: TPanel;
bbOk: TBitBtn;
bbCancel: TBitBtn;
Label1: TLabel;
edTitle: TEdit;
Label2: TLabel;
mmComment: TMemo;
Label3: TLabel;
Label4: TLabel;
bbUserData: TBitBtn;
Label5: TLabel;
edVersion: TEdit;
Label12: TLabel;
sedWidth: TRxSpinEdit;
sedHeight: TRxSpinEdit;
sedConnectorsMinGap: TRxSpinEdit;
chSaveAsBinary: TCheckBox;
chKeepLink: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbUserDataClick(Sender: TObject);
private
{ Private declarations }
FFlex: TFlexPanel;
UserProps: TPropList;
UserData: TUserDataProp;
public
{ Public declarations }
end;
var
fmDocProps: TfmDocProps;
implementation
{$R *.DFM}
procedure TfmDocProps.FormCreate(Sender: TObject);
begin
UserProps := TPropList.Create(Nil);
UserData := TUserDataProp.Create(UserProps, 'User data');
end;
procedure TfmDocProps.FormDestroy(Sender: TObject);
begin
UserProps.Free;
end;
procedure TfmDocProps.FormShow(Sender: TObject);
var Ver: integer;
begin
if (Tag <> 0) and (TObject(Tag) is TFlexPanel) then
FFlex := TFlexPanel(Tag);
if Assigned(FFlex) then begin
edTitle.Text := FFlex.Schemes.Name;
mmComment.Lines.Text := FFlex.Schemes.Hint;
sedWidth.Value := FFlex.DocWidth / PixelScaleFactor;
sedHeight.Value := FFlex.DocHeight / PixelScaleFactor;
UserData.Text := FFlex.Schemes.UserData.Text;
Ver := FFlex.Schemes.VersionProp.Value;
edVersion.Text := Format('%d.%d', [Ver div 100, Ver mod 100]);
sedConnectorsMinGap.Value := FFlex.ConnectorsMinGap / PixelScaleFactor;
chSaveAsBinary.Checked := FFlex.SaveAsBinary;
chKeepLink.Checked := FFlex.Schemes.ConnectorsKeepLinkProp.Value;
end else begin
panProps.Enabled := false;
bbUserData.Enabled := false;
bbOk.Enabled := false;
end;
end;
procedure TfmDocProps.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (ModalResult = mrOk) and Assigned(FFlex) then begin
FFlex.Schemes.Name := edTitle.Text;
FFlex.Schemes.Hint := mmComment.Lines.Text;
FFlex.Schemes.UserData.Text := UserData.Text;
FFlex.DocWidth := Round(sedWidth.Value * PixelScaleFactor);
FFlex.DocHeight := Round(sedHeight.Value * PixelScaleFactor);
FFlex.ConnectorsMinGap := Round(sedConnectorsMinGap.Value * PixelScaleFactor);
FFlex.SaveAsBinary := chSaveAsBinary.Checked;
FFlex.Schemes.ConnectorsKeepLinkProp.Value := chKeepLink.Checked;
ModalResult := mrOk;
end;
Action := caHide;
end;
procedure TfmDocProps.bbUserDataClick(Sender: TObject);
begin
UserData.Edit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -