Page 1 of 1
Single Popup for multiple screens.
Posted: Sat Sep 20, 2014 5:09 am
by UncleJoe89
Hi,
I am trying to create one popup screen and use it to pass values to different external tags.
Instead of creating several different popup windows, Can I create just one, and use it for all the external tags.
Cheers
John
Re: Single Popup for multiple screens.
Posted: Mon Mar 18, 2019 9:53 am
by donatzx
This is a very dated post, but I was also trying to do this recently and eventually got it to work.
I've created a single popup called "Select_Station" that contains 4 buttons which is called in 3 different locations from my HMI screen. As an on-click action, a variable "Popup_StationType" is set to a value of 1, 2, or 3 to determine where in the HMI the popup was called from.
The comparison method could become quite bulky depending on the number of times the popup needs to be reused, but it works.
Code: Select all
namespace Neo.ApplicationFramework.Generated
{
using System.Windows.Forms;
using System;
using System.Drawing;
using Neo.ApplicationFramework.Tools;
using Neo.ApplicationFramework.Common.Graphics.Logic;
using Neo.ApplicationFramework.Controls;
using Neo.ApplicationFramework.Interfaces;
public partial class Select_Station
{
//the value of Popup_StationType is set on button click to call popup
//stationNum indicates which button was pressed inside of the popup
//the appropriate tag is set to stationNum after a comparison of Popup_StationType
void SetStation(int stationNum)
{
if (Globals.Tags.Popup_StationType.Value == 1)
{
Globals.Tags.FeedConfig_InfeedStationNum.Value = stationNum;
}
else if (Globals.Tags.Popup_StationType.Value == 2)
{
Globals.Tags.FeedConfig_OutfeedStationNum.Value = stationNum;
}
else if (Globals.Tags.Popup_StationType.Value == 3)
{
Globals.Tags.OpConfig_StationNum.Value = stationNum;
}
}
//the value is passed into stationNum
void Button_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(1);
}
void Button1_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(2);
}
void Button2_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(3);
}
void Button3_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(4);
}
}
}
Re: Single Popup for multiple screens.
Posted: Wed Mar 27, 2019 8:53 am
by donatzx
This can be done by setting up a function in your popup window's script.
Here's an example:
Code: Select all
public partial class Select_Station
{
//the value of Popup_StationType is set on button click to call popup
//stationNum indicates which button was pressed inside of the popup (4 choices)
//the appropriate tag is set to stationNum after a comparison of Popup_StationType
void SetStation(int stationNum)
{
if (Globals.Tags.Popup_StationType.Value == 1)
{
Globals.Tags.FeedConfig_InfeedStationNum.Value = stationNum;
}
else if (Globals.Tags.Popup_StationType.Value == 2)
{
Globals.Tags.FeedConfig_OutfeedStationNum.Value = stationNum;
}
else if (Globals.Tags.Popup_StationType.Value == 3)
{
Globals.Tags.OpConfig_StationNum.Value = stationNum;
}
}
//the value is passed into stationNum
void Button_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(1);
}
void Button1_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(2);
}
void Button2_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(3);
}
void Button3_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
SetStation(4);
}
}