| This example creates a modeless dialog owned by Scorpion. 
		 Pressing the button activates a timer and changes button and status 
		text. 
		 The dialog is created in Central Start and lives until Scorpion is 
		terminated. The Status window is visible while Scorpion is in running 
		mode. The form denies closing in the Closing event. Central Start print ' Central Start '
# Import Section
import CLR
import CLR.System.Windows.Forms as WinForms
from CLR.System.Drawing import Size, Point
import CLR.System
from CLR.System.Reflection import Assembly
Assembly.LoadWithPartialName("OwnedForm")
from CLR.Tordivel import OwnedForm
# Class definition
class MyForm( OwnedForm):
  INTERVAL_SEC = 1 #interval for reading data and performing calculations
  NOOFINTERVALS = 10
  # constructor
  def __init__(self,hwnd):
  
    # Set window style
    self.Text = "Status Window"
    self.MaximizeBox = 0
    self.MinimizeBox = 0
    self.ShowInTaskbar = 0
    self.Closing += self.ClosingHandler
    self.AutoScaleBaseSize = Size(5, 13)
    self.ClientSize = Size(400, 64);
    h = WinForms.SystemInformation.CaptionHeight
    self.MinimumSize = Size(400, (64 + h))
    # Create timer
    self.resetTimer = WinForms.Timer()
    self.resetTimer.Interval = self.INTERVAL_SEC*1000
    # Register the event handlers
    self.resetTimer.Tick += self.resetTimer_Tick
    # Create the Start button
    self.startStopButton = WinForms.Button()
    self.startStopButton.Location = Point( 312, 8 )
    self.startStopButton.Size = Size( 80, 25 )
    self.startStopButton.TabIndex = 1
    self.startStopButton.Text = "Start test"
 
    # Register the Start button event handler
    self.startStopButton.Click += self.startStopButton_Click
    #  Create the textbox
    self.textBox = WinForms.TextBox()
    self.textBox.TabIndex = 2
    self.textBox.Size = Size(296, 25)
    self.textBox.Location = Point(8, 10)
    self.textBox.ReadOnly = True
    self.textBox.Text = "Test not running";
    # Add the controls to the form
    self.AcceptButton = self.startStopButton
    self.Controls.Add( self.startStopButton );
    self.Controls.Add( self.textBox );
    def startStopButton_Click(self, sender, args):
      # Start Button click event handler
      if self.startStopButton.Text == "Start test":
        self.resetTimer.Enabled = True # activate timer
        self.startStopButton.Text = "Stop test"
        self.textBox.Text = "Scorpion running";
        ExecuteCmd('LogMsg','Msg=Start;Level=2') # show trace in Scorpion System Log
      elif 
        self.startStopButton.Text == "Stop test":
        self.resetTimer.Enabled = False # deactivate timer
        self.startStopButton.Text = "Start test"
        self.textBox.Text = "Scorpion not running"; # show trace in Scorpion System Log
        ExecuteCmd('LogMsg','Msg=Stop;Level=2')
  def ClosingHandler(self, sender, args):
    # Handles the Resize event
    args.Cancel = 1 # deny close request
  def resetTimer_Tick(self, sender, args):
    t = self.textBox.Text + "."
    if len(t) == 80:
      self.textBox.Text = "Test running";
    else:
     self.textBox.Text = t;
  def run(self):
    WinForms.Application.Run(self)
# create  MyForm class
print ' create testform '
dTestForm = MyForm(GetResultPanel().handle) # create a from with Scorpion as owner
dTestForm.Show() # show dialog 
dTestForm.Visible=0 # hide dialogAction.BeforeStart
 Script;dTestForm.Visible=1 # show dialog while running Action.AfterStop Script;dTestForm.Visible=0 # hide dialog while not running |