GetRect

GetRect



Prompts the user to click 2 points on the active plan to define a rectangle and returns the coordinates in p1 and p2.

Returns 1 if the function is successful or 0 if the user cancels.



Syntax:

Procedure: GetRect(Var p1x: double; Var p1y: double; Var p2x: double; Var p2y: double; Hint: String): Integer;

Code Reference:

    1. Create a New Form application
    2. Add a button to the form
    3. Add PlanSwift to reference (Planswift9_tlb in the uses)
    4. Copy code to button onclick event


API Calls

Delphi

Using PlanSwift Object Model
// PlanSwift Code:
var
  x1, x2, y1, y2: double;
begin
  if GetRect(x1, y1, x2, y2, 'Click each corner of a rectangle.') = 1 then
    begin
      Showmessage('Draw rectangle here');
    end
  else
    begin
      Showmessage('Canceled');
    end;
end;

//FreshDesk Code:
procedure TForm1.psGetRect(Sender: TObject);
var
  ps: IPlanSwift;
  Est,sect,Area: IItem;
  psline: ILine;
  pt1,pt2: IPoint;
begin
  //Get Planswift Interface
  ps := CoPlanswift.Create;
  //Place planswift into update mode
  ps.BeginUpdate;
  // Get the Takeoff Folder (Estimating Tab in Planswift);
  Est := ps.GetItem('Job\Takeoff');
  //Create a New Area Item in the Estimating Tab
  Area := Est.NewItem('Area','Get Rect Demo');
  //Create a new Section for the Area
  sect := Area.NewSection('Get Rect Demo Section');
  //Call the Get Rect functions
  psline := ps.GetRect('Draw Area');
  //Get the two points from the iLine Returned by the GetRect function
  pt1 := psline.Point1;
  pt2 := psline.Point2;
  //Add Points to section to create a box
  sect.NewPoint(pt1.X,pt1.y);
  sect.NewPoint(pt2.X,pt1.y);
  sect.NewPoint(pt2.X,pt2.y);
  sect.NewPoint(pt1.X,pt2.y);
  sect.NewPoint(pt1.X,pt1.y);
  //EndUpdate;
  ps.EndUpdate;
  //Free the Planswift Interface
  ps := nil;
end;

C#

Using IItem Object Model
public class PlanswiftApi
{
    private PlanSwift Planswift { get; }
    public PlanSwiftApi()
    {
        Planswift = new PlanSwift();
    }
}
Using PlanSwift Object Model
Coming soon


VB/VBA (OLE)

Using IItem Object Model
Coming soon
Using PlanSwift Object Model
Coming soon