preload

DotNetFactory interface functions (6) – Create GUI Form

Posted by Albert Gareev on Jun 17, 2009 | Categories: DotNetClassesSource code

Parent page: Service Functions – DotNetFactory (QTP, VBScript)

Creating .NET objects from VBScript/QTP

You can create a basic Form and assign required properties within one line by calling the function below. The function has one mandatory parameter (which though is initialized by default if empty) and a set of optional parameters provided in the Dictionary object.

Currently supported optional parameters:

Form Width and Height.

Form Coordinates – Left, Top.

  • p.locksize – Specify whether the Form is resizable by the user.
  • p.lockview – Specify whether the Form is maximizable/minimizable.
  • p.startpos – Specify start postion (CenterScreen or Manual).

Note 1. If start position is not set to Manual window location won’t be affected by your custom Left/Top settings. It will be set in accordance with the current default window position provided by the Operating System.

Note 2. You may code as many optional parameters as required. Just follow the established syntax and keep in mind that parameter index for Dictionary must be unique – otherwise it will overwrite the previous parameter.

References

For the complete .NET Form Class reference please visit:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form(VS.80).aspx

Used resources

Service Functions – String (QTP, VBScript)

Implementing optional and default parameters

 Create Form


 Public Function CreateForm(ByVal sTitle, ByVal objParameter)
    Dim intWidth, intHeight, intLeft, intTop
    Dim boolLockSize, boolLockView, sStartPosition
    Dim FormSize
    Dim objForm, objStartPos

  'Verify parameters
  If TypeName (objParameter) <>  "Dictionary" Then
   Set objParameter = CreateObject("Scripting.Dictionary")
  End If

  If sTitle = "" Then sTitle = "Form"

  intWidth = InitLong(objParameter.Item("p.width"), 500)
  intHeight = InitLong(objParameter.Item("p.height"), 300)
  intLeft = InitLong(objParameter.Item("p.left"), 100)
  intTop = InitLong(objParameter.Item("p.top"), 100)

  boolLockSize = InitBool(objParameter.Item("p.locksize"), TRUE)
  boolLockView = InitBool(objParameter.Item("p.lockview"), FALSE)

  sStartPosition = UCase(objParameter.Item("p.startpos"))

  Set objForm = DotNetFactory.CreateInstance("System.Windows.Forms.Form", "System.Windows.Forms")
  Set objStartPos = DotNetFactory.CreateInstance("System.Windows.Forms.FormStartPosition","System.Windows.Forms")

  objForm.Text = sTitle

  Select Case sStartPosition
   Case "CENTERSCREEN"
    objForm.StartPosition = objStartPos.CenterScreen
   Case "MANUAL"
    objForm.StartPosition = objStartPos.Manual
   Case Else
    objForm.StartPosition = objStartPos.WindowsDefaultLocation
  End Select

  objForm.Width = intWidth
  objForm.Height = intHeight
  objForm.Left = intLeft
  objForm.Top = intTop

  If boolLockSize Then
   Set FormSize = objForm.Size
   Set objForm.MinimumSize = FormSize
   Set objForm.MaximumSize = FormSize
  End If

  If boolLockView Then
   objForm.MaximizeBox = FALSE
   objForm.MinimizeBox = FALSE
  End If

  Set objStartPos = Nothing

  Set CreateForm = objForm
 End Function

Example


Set objForm = CreateForm("Test Setup", AssociateParameters("p.startpos = CenterScreen, p.width = 400, p.height = 300, p.locksize = Yes, p.lockview = Yes"))


Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.