📄 fworkfloweditor.pas
字号:
{***************************************************************************}
{ Diagram Studio }
{ for Delphi & C++Builder }
{ version 2.2 }
{ }
{ written by TMS Software }
{ copyright ?2003-2007 }
{ Email : info@tmssoftware.com }
{ Web : http://www.tmssoftware.com }
{ }
{ The source code is given as is. The author is not responsible }
{ for any possible damage done due to the use of this code. }
{ The components can be freely used in any application. The complete }
{ source code remains property of the author and may not be distributed, }
{ published, given or sold in any form as such. No parts of the source }
{ code can be included in any other component or application without }
{ written authorization of the author. }
{***************************************************************************}
unit fWorkflowEditor;
interface
uses
Windows, Messages, SysUtils,
{$IFNDEF VER130}
Variants,
{$ENDIF}
Classes, Graphics, Controls, Forms,
Dialogs, atDiagram, ExtCtrls, DiagramExtra, ImgList, StdCtrls, Menus,
ActnList, DiagramActns, ComCtrls, ToolWin,
DgrSelectors, DgrCombo, wsClasses, wsBlocks, LiveFlowChart,
LiveDiagram;
type
TfmWorkflowEditor = class(TForm)
ImageList1: TImageList;
MainMenu1: TMainMenu;
Edittext1: TMenuItem;
Edit1: TMenuItem;
ActionList1: TActionList;
DiagramEditText1: TDiagramEditText;
File1: TMenuItem;
Opendiagram1: TMenuItem;
Savediagram1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Copyasimage1: TMenuItem;
Print1: TMenuItem;
DiagramSelectAll1: TDiagramSelectAll;
DiagramCopy1: TDiagramCopy;
DiagramCut1: TDiagramCut;
DiagramPaste1: TDiagramPaste;
Edit2: TMenuItem;
DiagramDelete1: TDiagramDelete;
Cut1: TMenuItem;
Copy1: TMenuItem;
Paste1: TMenuItem;
Delete1: TMenuItem;
Selectall1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Newdiagram1: TMenuItem;
N1: TMenuItem;
StatusBar1: TStatusBar;
Preview1: TMenuItem;
PrintDialog1: TPrintDialog;
DiagramSetZoom1: TDiagramSetZoom;
DiagramViewLeftRuler1: TDiagramViewLeftRuler;
DiagramViewTopRuler1: TDiagramViewTopRuler;
DiagramSetZoom2: TDiagramSetZoom;
DiagramSetZoom3: TDiagramSetZoom;
DiagramSetZoom4: TDiagramSetZoom;
DiagramSetZoom5: TDiagramSetZoom;
DiagramSetZoom6: TDiagramSetZoom;
DiagramSetZoom7: TDiagramSetZoom;
View1: TMenuItem;
Leftruler1: TMenuItem;
Topruler1: TMenuItem;
N2: TMenuItem;
Zoom1: TMenuItem;
N1001: TMenuItem;
N5: TMenuItem;
N3001: TMenuItem;
N1501: TMenuItem;
N751: TMenuItem;
N501: TMenuItem;
N251: TMenuItem;
N101: TMenuItem;
PopupMenu1: TPopupMenu;
DiagramShapeColor1: TDiagramShapeColor;
DiagramLineColor1: TDiagramLineColor;
DiagramBlockPicture1: TDiagramBlockPicture;
DiagramArrowShape1: TDiagramArrowShape;
DiagramArrowShape2: TDiagramArrowShape;
DiagramArrowShape3: TDiagramArrowShape;
DiagramArrowShape4: TDiagramArrowShape;
DiagramArrowShape5: TDiagramArrowShape;
DiagramArrowShape6: TDiagramArrowShape;
DiagramArrowShape7: TDiagramArrowShape;
DiagramArrowShape8: TDiagramArrowShape;
DiagramArrowShape9: TDiagramArrowShape;
DiagramArrowShape10: TDiagramArrowShape;
DiagramArrowShape11: TDiagramArrowShape;
DiagramArrowShape12: TDiagramArrowShape;
DiagramShapeColor11: TMenuItem;
DiagramLineColor11: TMenuItem;
Sourcearrow1: TMenuItem;
Targetarrow1: TMenuItem;
None1: TMenuItem;
Solidarrow1: TMenuItem;
Linearrow1: TMenuItem;
Ellipse1: TMenuItem;
Rectangle1: TMenuItem;
Diamond1: TMenuItem;
None2: TMenuItem;
Solidarrow2: TMenuItem;
Linearrow2: TMenuItem;
Ellipse2: TMenuItem;
Rectangle2: TMenuItem;
Diamond2: TMenuItem;
TabControl1: TTabControl;
DiagramToolBar1: TDiagramToolBar;
DiagramBlockPicture11: TMenuItem;
acHasArrow: TAction;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton10: TToolButton;
acNewDiagram: TAction;
acOpenDiagram: TAction;
acSaveDiagram: TAction;
acPrintDiagram: TAction;
acPreviewDiagram: TAction;
ToolButton9: TToolButton;
ToolButton13: TToolButton;
Shapecolor1: TMenuItem;
Linecolor1: TMenuItem;
Picture1: TMenuItem;
Sourcearrow2: TMenuItem;
Targetarrow2: TMenuItem;
None3: TMenuItem;
Solidarrow3: TMenuItem;
Linearrow3: TMenuItem;
Ellipse3: TMenuItem;
Rectangle3: TMenuItem;
Diamond3: TMenuItem;
None4: TMenuItem;
Solidarrow4: TMenuItem;
Linearrow4: TMenuItem;
Ellipse4: TMenuItem;
Rectangle4: TMenuItem;
Diamond4: TMenuItem;
N6: TMenuItem;
DiagramSendToBack1: TDiagramSendToBack;
DiagramBringToFront1: TDiagramBringToFront;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
N7: TMenuItem;
N8: TMenuItem;
DiagramBringToFront11: TMenuItem;
DiagramSendToBack11: TMenuItem;
DiagramControlFont1: TDiagramControlFont;
ToolButton16: TToolButton;
Font1: TMenuItem;
N9: TMenuItem;
Font2: TMenuItem;
Edittext2: TMenuItem;
DiagramGrid1: TDiagramGrid;
Grid1: TMenuItem;
DiagramGradientSetting1: TDiagramGradientSetting;
Gradient1: TMenuItem;
DiagramShadow1: TDiagramShadow;
DiagramUndoAction1: TDiagramUndoAction;
DiagramRedoAction1: TDiagramRedoAction;
N10: TMenuItem;
Undo1: TMenuItem;
DiagramRedoAction11: TMenuItem;
acAutomaticNodes: TAction;
N11: TMenuItem;
Automaticnodes1: TMenuItem;
ToolButton19: TToolButton;
DgrZoomSelector1: TDgrZoomSelector;
btCheck: TToolButton;
Workflow1: TMenuItem;
Variables1: TMenuItem;
DiagramConnectionId1: TDiagramConnectionId;
DiagramConnectionId2: TDiagramConnectionId;
DiagramConnectionId3: TDiagramConnectionId;
Attachments1: TMenuItem;
LiveDiagram1: TWorkflowDiagram;
ToolBar2: TToolBar;
DgrColorSelector1: TDgrColorSelector;
DgrGradientDirectionSelector1: TDgrGradientDirectionSelector;
DgrBrushStyleSelector1: TDgrBrushStyleSelector;
DgrShadowSelector1: TDgrShadowSelector;
DgrPenStyleSelector1: TDgrPenStyleSelector;
DgrPenColorSelector1: TDgrPenColorSelector;
DgrPenWidthSelector1: TDgrPenWidthSelector;
DgrTextColorSelector1: TDgrTextColorSelector;
ToolButton12: TToolButton;
DiagramToolBar2: TDiagramToolBar;
ToolButton11: TToolButton;
DgrFontSelector1: TDgrFontSelector;
DgrFontSizeSelector1: TDgrFontSizeSelector;
procedure Copyasimage1Click(Sender: TObject);
procedure LiveDiagram1Modified(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure TabControl1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure acHasArrowUpdate(Sender: TObject);
procedure acNewDiagramExecute(Sender: TObject);
procedure acOpenDiagramExecute(Sender: TObject);
procedure acSaveDiagramExecute(Sender: TObject);
procedure acPrintDiagramExecute(Sender: TObject);
procedure acPreviewDiagramExecute(Sender: TObject);
procedure acHasArrowExecute(Sender: TObject);
procedure acAutomaticNodesExecute(Sender: TObject);
procedure acAutomaticNodesUpdate(Sender: TObject);
procedure btCheckClick(Sender: TObject);
procedure LiveDiagram1DControlDblClick(Sender: TObject;
ADControl: TDiagramControl);
procedure Variables1Click(Sender: TObject);
procedure LiveDiagram1LinkAdded(Sender: TObject;
ADControl: TDiagramControl; ALink: TCustomDiagramLine;
ALinkPoint: TLinkPoint);
procedure LiveDiagram1LinkRemoved(Sender: TObject;
ADControl: TDiagramControl; ALink: TCustomDiagramLine;
ALinkPoint: TLinkPoint);
procedure LiveDiagram1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Attachments1Click(Sender: TObject);
private
FOnSaveDiagram: TNotifyEvent;
FLastUnlinkedLine: TCustomDiagramLine;
FLastUnlinkedBlock: TDiagramControl;
procedure WorkflowSave(Sender: TObject);
procedure HideFileBasedOptions;
procedure EditTransition(ALine: TCustomDiagramLine);
procedure Localize;
protected
procedure Loaded; override;
private
{ Private declarations }
FModified: boolean;
FWorkDef: TWorkflowDefinition; //temporary variable to know which workflow definition is being edited
procedure SetModified(Value: boolean);
procedure SetDiagramDefaults;
property OnSaveDiagram: TNotifyEvent read FOnSaveDiagram write FOnSaveDiagram;
public
{ Public declarations }
procedure EditWorkflowDiagram(AWorkDef: TWorkflowDefinition);
end;
implementation
uses
wsRes, wsMain, fVariableEditor, fTransitionEditor, fAttachmentEditor;
{$R *.dfm}
procedure TfmWorkflowEditor.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := not FModified or
(MessageDlg(_str(SConfirmCloseAndDiscard), mtInformation,
[mbOk, mbCancel],0) = mrOk);
end;
procedure TfmWorkflowEditor.SetModified(Value: boolean);
begin
FModified := Value;
if FModified then
StatusBar1.Panels[0].Text := _str(SModified)
else
StatusBar1.Panels[0].Text := '';
end;
procedure TfmWorkflowEditor.LiveDiagram1Modified(Sender: TObject);
begin
SetModified(True);
end;
procedure TfmWorkflowEditor.Copyasimage1Click(Sender: TObject);
begin
LiveDiagram1.CopyBitmapToClipboard;
end;
procedure TfmWorkflowEditor.TabControl1Change(Sender: TObject);
begin
if (TabControl1.TabIndex = 0) or (TabControl1.Tabs.Count <= 0) then
DiagramToolBar1.Category := ''
else
DiagramToolBar1.Category := TabControl1.Tabs[TabControl1.TabIndex];
end;
procedure TfmWorkflowEditor.FormCreate(Sender: TObject);
var
c: integer;
SL: TStringList;
ATab: string;
begin
TabControl1.Tabs.Add(_str(SAllObjects));
{Remove base live diagram blocks}
c := 0;
while c < RegDControlList.Count do
begin
if Pos('workflow', lowercase(RegDControlList[c].Category)) = 0 then
RegDControlList[c].Free
else
inc(c);
end;
{add objects to the toolbar}
SL := TStringList.Create;
SL.Add(_str(SAllObjects));
try
for c := 0 to RegDControlList.Count - 1 do
begin
ATab := RegDControlList[c].Category;
if (ATab <> '') and (SL.IndexOf(ATab) = -1) then
SL.Add(RegDControlList[c].Category);
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -