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

📄 fdocprops.pas

📁 FlexGraphics是一套创建矢量图形的VCL组件
💻 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 + -