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

📄 wfunionui.pas

📁 业生产并行开发过程 工作流流程编辑器参考源码 采用dxflowchart编写
💻 PAS
字号:
unit WfUnionUI;

interface

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

type
  TfWfUnionUI = class(TForm)
    Button1: TButton;
    Button2: TButton;
    lbUnions: TListBox;
    Panel1: TPanel;
  end;
  
var
  fWfUnionUI: TfWfUnionUI;

function SelectUnion(Chart : TdxFlowChart; Obj : TdxFcObject) : TdxFcObject;

implementation

uses WfEditorUI;

{$R *.DFM}

function SelectUnion(Chart : TdxFlowChart; Obj : TdxFcObject) : TdxFcObject;
var FirstObj : TdxFcObject;
    AText : String;
    i, j : integer;
    FFind : Boolean;
begin
  Result := nil;
  with TfWfUnionUI.Create(nil) do begin
    lbUnions.Clear;
    if Obj = nil then begin
      FirstObj := nil;
      repeat
        FirstObj := fWfEditorUI.FindAllUnions(Chart, FirstObj);
        if FirstObj <> nil then begin
           AText := '组合 '+ IntToStr(fWfEditorUI.GetNumberByUnion(Chart, FirstObj));
           if FirstObj.Text <> '' then AText := AText+' ( '+FirstObj.Text+' )';
           lbUnions.Items.AddObject(AText, FirstObj);
        end;
      until FirstObj = nil;
    end;
    if Obj <> nil then begin
      for i := 0 to Chart.SelectedObjectCount - 1 do
        if fWfEditorUI.IsChildItemInUnion(Chart, Chart.SelectedObjects[i]) then begin
          FirstObj := nil;
          repeat
            FirstObj := fWfEditorUI.FindUnions(Chart, FirstObj, Chart.SelectedObjects[i]);
            if FirstObj <> nil then begin
              FFind := False;
              for j := 0 to lbUnions.Items.Count - 1 do
                if lbUnions.Items.Objects[j] = FirstObj then begin
                  FFind := True;
                  break;
                end;
              if not FFind then begin
                AText := '组合 '+ IntToStr(fWfEditorUI.GetNumberByUnion(Chart, FirstObj));
                if FirstObj.Text <> '' then AText := AText+' ( '+FirstObj.Text+' )';
                lbUnions.Items.AddObject(AText, FirstObj);
              end;
            end;
          until FirstObj = nil
        end;
      lbUnions.Sorted := False;
      lbUnions.Sorted := True;
    end;
    if ShowModal = mrOK then
      if lbUnions.ItemIndex <> -1 then Result := TdxFcObject(lbUnions.Items.Objects[lbUnions.ItemIndex]);
    Free;
  end;
end;

end.

⌨️ 快捷键说明

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