unit U_SCSEngineTest; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, PCPanel, PCDrawBox, PCDrawing, PowerCad, StdCtrls, pcMsbar, ComCtrls, ToolWin, PCTypesUtils,DrawObjects,Menus, DlgBase, ExtDlgs, PCLayerDlg, OleCtnrs,buttons, PCgui,GuiStrings, U_Common_Classes, DrawEngine, U_ESCadClasess; type TSCSEngine = class(TObject) FMainForm: TForm; constructor Create(aOwner: TObject); public function GetConnectorImg(aCT: TConnectorType): TFigureGrpMod; function GetOrthoLineImg(aCT: TOrthoLineType): TFigureGrpMod; end; implementation uses U_Common; { TSCSEngine } constructor TSCSEngine.Create(aOwner: TObject); begin FMainForm := TForm(aOwner); end; function TSCSEngine.GetConnectorImg(aCT: TConnectorType): TFigureGrpMod; var BlockFig: TBlock; BitmapFig: TBMPObject; BlockFName: string; BlockID: integer; RectNormal: TRectangle; i: integer; FF: TFigureGrpMod; LayHandle: integer; begin BlockID := ord(aCT); Result := nil; GCadForm.CurrentLayer := 2; LayHandle := GCadForm.PCad.GetLayerHandle(2); Result := TFigureGrpMod.create(LayHandle, GCadForm.PCad); if BlockID > 0 then begin try // if BlockID = 1 then // begin // BlockFName := ExtractFileDir(Application.ExeName) + '\.blk\TempNB.blk'; // BlockFig := TBlock(GCadForm.PCad.InsertBlockwithFileName(2, BlockFName, -100, -100)); // for i := 0 to BlockFig.InFigures.Count - 1 do // Result.AddFigure(TFigure(BlockFig.InFigures[i])); // GCadForm.PCad.Figures.Remove(BlockFig); // end; // if BlockID = 2 then // begin // BlockFName := ExtractFileDir(Application.ExeName) + '\.blk\ConnAsDefault.blk'; // end; except // BlockFName := ExtractFileDir(Application.ExeName) + '\.blk\WA_Default.blk'; // BlockFig := TBlock(GCadForm.PCad.InsertBlockwithFileName(2, BlockFName, -100, -100)); // for i := 0 to BlockFig.InFigures.Count - 1 do // result.AddFigure(TFigure(BlockFig.InFigures[i])); if BlockFig <> nil then GCadForm.PCad.Figures.Remove(BlockFig); end; end; end; function TSCSEngine.GetOrthoLineImg(aCT: TOrthoLineType): TFigureGrpMod; var BlockFig: TBlock; BitmapFig: TBMPObject; BlockFName: string; BlockID: integer; RectNormal: TRectangle; i: integer; FF: TFigureGrpMod; LayHandle: integer; begin BlockID := ord(aCT); Result := nil; GCadForm.CurrentLayer := 2; LayHandle := GCadForm.PCad.GetLayerHandle(2); Result := TFigureGrpMod.create(LayHandle, GCadForm.PCad); if BlockID > 0 then begin try // if BlockID = 1 then // BlockFName := ExtractFileDir(Application.ExeName) + '\.blk\TempNB.blk'; // if BlockID = 2 then // BlockFName := ExtractFileDir(Application.ExeName) + '\.blk\LineAsDefault.blk'; // BlockFig := TBlock(GCadForm.PCad.InsertBlockwithFileName(2, BlockFName, -100, -100)); // result := TFigureGrpMod.create(LayHandle, GCadForm.PCad); // for i := 0 to BlockFig.InFigures.Count - 1 do // begin // result.AddFigure(TFigure(BlockFig.InFigures[i])); // end; // GCadForm.PCad.Figures.Remove(BlockFig); except if BlockFig <> nil then GCadForm.PCad.Figures.Remove(BlockFig); end; end; end; end.