IUiWorkspaceEventArgs.Workspace

Syntax

Workspace: IWorkspace;

Description

The Workspace property determines a workspace.

Example

Executing the example requires that the repository contains a form and a workspace with WORKSPACE identifier. Place the Button, WorkspaceBox, UiWorkspaceObject components named Button1, WorkspaceBox1, UiWorkspaceObject1.

Add links to the Andy, Drawing, Fore, ExtCtrls, Forms, MathFin, Metabase, and Workspace system assemblies.

Class TESTForm: Form
    Button1: Button;
    UiWorkspaceObject1: UiWorkspaceObject;
    WorkspaceBox1: WorkspaceBox;
    
    Sub IUIWORKSPACEEVENTARGS_WORKSPACEFormOnCreate(Sender: Object; Args: IEventArgs);
    Var
        Mb: IMetabase;
        Workspace: IMetabaseObjectDescriptor;
    Begin
        // Get workspace
        Mb := MetabaseClass.Active;
        Workspace := Mb.ItemById("WORKSPACE").Edit;
        // Set object opening parameters on form
        UiWorkspaceObject1.Active := True;
        UiWorkspaceObject1.Object := Workspace;
        UiWorkspaceObject1.OperationMode := UiMetabaseObjectOperationMode.Edit;
        WorkspaceBox1.Source := UiWorkspaceObject1 As IWorkspaceSource;
    End Sub IUIWORKSPACEEVENTARGS_WORKSPACEFormOnCreate;

    // Print workspace on button click
    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Var
        Printer: IGxDocumentPrinter;
        w: IGxDocument;
    Begin
        // Get printer for printing
        Printer := GxPrinters.DefaultPrinter As IGxDocumentPrinter;
        w := (UiWorkspaceObject1 As IDocumentSource).GetDocument;
        // Print workspace
        w.Print(Printer, -1, -1"");
    End Sub Button1OnClick;

    // Set up the event that will occur after workspace print
    Sub UiWorkspaceObject1OnAfterPrintWorkspace(Sender: Object; Args: IUiWorkspaceEventArgs);
    Var
        ui: IWxWorkspace;
        shapesCount, i: Integer;
        shape: IWxShape;
    Begin
        // Enter name of workspace for print
        Debug.WriteLine("OnAfterPrintWorkspace - Form");
        // Get workspace
        ui := Args.Workspace As IWxWorkspace;
        // Get collection of shapes and their number
        With shapes: ui.Shapes Do
            shapesCount := shapes.Count;
            For i := 0 To shapesCount - 1 Do
                // Get the current shape
                shape := shapes.Item(i);
                shape.Style.BeginUpdate;
                // Generate random color and apply it to the shape
                With r: Math.RandBetween(0255As Integer, g: Math.RandBetween(0255As Integer, b: Math.RandBetween(0255As Integer Do
                    shape.Style.BackgroundBrushBackColor := New GxColor.CreateRGB(r, g, b);
                End With;
                shape.Style.EndUpdate;
            End For;
        End With;
    End Sub UiWorkspaceObject1OnAfterPrintWorkspace;
End Class TESTForm;

After executing the example, the workspace with the WORKSPACE identifier is printed on button click. After the workspace is printed, shape color is changed for a random one.

See also:

IUiWorkspaceEventArgs