RobotStudio event

Hide project in ABB menu


How can I make a ScreenMaker project that isn't visible under the ABB menu or call a screen with UIShow that isn't a mainscreen?
Why isn't there a MsgBox in the ScreenMaker toolbox?
 
// M Johnson

Comments

  • Hello Johnson,
     

    1. In RobotStudio ScreenMaker 5.13.02 there is an option in the properties dialog of ScreenMaker project where in the application can be hidden from ABB Menu. Select the None option.

     

    image

     


    2. If you want to launch ScreenMaker application it can be done like this for example

     

    if (this.iTpsSite.LaunchView("TpsViewCustomApp.gtpu.dll", "ABB.Robotics.SDK.Views.MainScreen", null, true, out this.cookieUser)!= true) {
    GTPUMessageBox.Show(this, null,"Could not start User application");
    return;
    }

     

    Where ABB.Robotics.SDK.Views.MainScreen is the screen which has been set as mainscreen in ScreenMaker application.

     

    You can also refer to the link mentioned below to get more information:


     

    You could set any of the screens in your application as mainscreen and use it in UIShow. The basic reason for doing this is to know the entry point of the application.

     

    3. This is more of a question - How would you like to use the message box in your application if it existed ?

     

    Thanks
  • Thanks for a quick answer!
     

    1. Ok I'm running 5.13.01 so I will uggrade.

     

    2. I would like to launch a screen that isn't a mainscreen since I don't want my prodject to be seen in the ABB menu - answer 1 will help me doing this.

     

    3. For example an signal is missing when rapid-code is running. Then I want to show a message box where the operator have some choices like 'Retry', 'Skip', 'Abort'.

    (This is what I'm trying to achive with the answer 1 and 2 that you gave me - but in a different way where I've made my own MsgBox.)

    Do you have a solution?
  • Hello,

    There exists a functionality in ScreenMaker where you could popup a message box before executing an event. But it is not available as a seperate control that could be part of toolbox.

    Based on the scenario you have mentioned above it looks like you would like to display cetain messages to the user based on error or missing conditions while rapid code is executing through ScreenMaker.

    If you have created your own message box than you could try to add it as a third party control into toolbox and use it. http://forums.robotstudio.com/forum_topics.asp?FID=32

     

    Thanks

     
  • Hi again,
     

    I've made some tests now and it works...but does not look so good.

    I have created a new project that has only a 'homemade' messagebox with two buttons 'Ok' and Abort'.

    But when I call this screen via UIShow a new tab opens in the bottom of the Flexpendant until you have given your answer ('Ok' or 'Abort').

    Another thing is that I would like to show this screen/messagebox in front of my already opened window, not as a new window.

     

    Is there really no way to open a screen that isn't a mainscreen or open a standard messagebox?

     

    In your first reply - answer 2, do you mean that this code can open a window from the rapid code? (some signs are C#)
    M Johnson2011-01-25 13:54:32
  • Hi,
     

    It seems that you are trying to launch a System Message Box (which is not attached to any other Screen or TpsView, and which comes to the front as a modal window).

     

    This is not supported in ScreenMaker, since ScreenMaker relies on having a Tps Application, and all controls and message box are shown inside this Tps Application (whicn automatically adds a button in the task bar).

     

    Have you tried doing using the FP SDK?

     

    BR/Carlos
    Carlos Martinez
    ABB
  • Hi Carlos,
     

    No I'm not launching a system message box. I'm using a screen in a project created with SM 5.13.03

    One solution on my problem would be to launch a system message box to get the right look! I don't want the automatically added button in the task bar.

    Another soulotion would be to be able to open a screen that isn't a mainscreen via UIShow.

    Do you know a way to do this??
    M Johnson2011-01-25 15:40:56
  • Hi ...
     

    Sorry, I was trying to say that you are trying to launch a system message box. This is not available in the ScreenMaker.

     

    We might find different ways of opening a screen that is not your main screen; however, this will still have a button in the taskbar, and this message box will not remain in the top of other windows.

     

    Have you look at FP SDK? You could create an invisible control that could be listening to different events and from there launch a GTPUMessageBox.

     

    BR
    Carlos Martinez
    ABB
  • Hi again,
     

    You say we might find different ways of opening a screen that is not your main screen. Do you know a way to do this from the rapid code?

    I have a mainscreen in a project that is always open. From this screen I start, stop programrunning and so on.

    What I want to do in this project is to create another subscreen that I can call via the rapid code. In this way there will not be another button in the taskbar since the mainscreen in the project is allready open.

    Do you understand what I mean?

     

    I have made some things in FP SDK but it takes so much longer time then in SM so the best way would be if it's possible to make it work in SM.

     

    // M Johnson
    M Johnson2011-01-25 21:02:01
  • Hi, <?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    I understand more your scenario. Let's assume two user interfaces:

     

    Using the GTPU Message Box.

     

    As Abhishek said, SM only provides a GTPU Message Box as a warning before executing an event. You could add an EventTrigger to all your screens inside the SM project (so all windows are listening to this event); this evenTrigger could be triggered by the change of a RAPID or signal data. Inside its Events Panel, you could enable the warning message box. The limitation here is that the text of the MessageBox can't be link to a RAPID date, so it is static.

     

    Using your home-made Message Box.

     

    Add an EventTrigger to all screens inside your SM project. In its Event Panel, you can add the action to open your home-made Message Box. Here you can link all texts to RAPID data.

     

    Hope this proposal is different to your previous attempts

     

    BR

    Carlos Martinez
    ABB
  • Hi Carlos,
     

    I can't understand how to create a EventTrigger to open the screen I want.

    Can you guide me?

     

    //M Johnson
  • I meant to say "ActionTrigger" instead or "EventTrigger"  ... <?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    1.    The ActionTrigger is a component that you can add to your screen. Since this is a non-UI component, it will appear at the bottom of your Screen Designer window.

     

    2.    After selecting the actiontrigger, on the properties window you can bind of property ?_oValue?__ to a RAPID or signal data. This component will be listening to any changes in that data.

     

    3.    On the properties window, you can see the events (thunder) of this component. The ?_oTrigger?__ event is fired every time the data changes. Here you can command to show the warning message or open your home-made Message Box.

     

    Remember that this action will be listening to any change in the item. You could turn on or off its functionality by Enable or Disable it (you can bind this a RAPID boolean data)

    Hope this quick guide helps

    Carlos Martinez
    ABB