流程图

流程图

procedure TForm1.Button1Click(Sender: TObject);
//设计流程图
var
  LEditor: TFChartEditor;  //uses dxFcEdit
begin
  LEditor := TFChartEditor.Create(nil);
  try
    LEditor.Caption := '编辑业务流程图';
    LEditor.Chart.Images := cxImageList1;
    LEditor.Chart.LoadFromFile(ExtractFilePath(Application.ExeName) + 'flow.flc');
    LEditor.ShowModal;
  finally
    LEditor.Free;
  end;
end;

procedure TForm1.dxFlowChart1DblClick(Sender: TObject);
var
  LObj: TdxFcObject;
//  tab: tcxtabsheet;
begin
  LObj := dxFlowChart1.SelectedObject;
  if LObj = nil then
    Exit;
  if LObj.Data = nil then
    Exit;
//  fMain.LoadBPL(pitem(obj.Data).bplname);
//  tab := fMain.GetTabsheet(pitem(obj.Data).funcname);
//  if tab <> nil then
//    fMain.PageControl1.ActivePage := tab
//  else
//    fMain.LoadPlugin(pitem(obj.Data).formclassname, pitem(obj.Data).funcname, pitem(obj.Data).bplname);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeFlow;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  dxFlowChart1.Images := cxImageList1;
  dxFlowChart1.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'flow.flc');
  setFlow;
end;

procedure TForm1.FreeFlow;
var
  i: integer;
  LObj: TdxFcObject;
begin
  if dxFlowChart1.ObjectCount = 0 then Exit;
  for i := 0 to dxFlowChart1.ObjectCount - 1 do
  begin
     LObj := dxFlowChart1.Objects[i];
   // if LObj.Data <> nil then
   //   Dispose(pitem(LObj.Data));
  end;
end;

procedure TForm1.SetFlow;
var
  i: Integer;
  LObj: TdxFcObject;
 // p: pitem;
begin
  for i := 0 to dxFlowChart1.ObjectCount - 1 do
  begin
    LObj := dxFlowChart1.Objects[i];
//    if dmDB.cdsFunction.Locate('funcname', VarArrayOf([LObj.Text]), []) then
//    begin
//      New(p);
//      p.bplname := dmDB.cdsFunction.FieldByName('bplname').Text;
//      p.funcname := LObj.Text;
//      p.formclassname := dmDB.cdsFunction.FieldByName('formname').Text;
//      LObj.Data := p;
//    end;
  end;
end;

 

posted @ 2025-05-03 16:49  delphi中间件  阅读(46)  评论(0)    收藏  举报