Page 1 of 1

Can I pass a variable from one tab to another in a panel?

Posted: Sun Jun 13, 2021 1:11 am
by Columbo
Is it possible to pass a variable from one tab to another tab in a PanelGadget?

Re: Can I pass a variable from one tab to another in a panel?

Posted: Sun Jun 13, 2021 2:38 am
by BarryG
What do you mean? PanelGadgets don't hold variables.

Re: Can I pass a variable from one tab to another in a panel?

Posted: Sun Jun 13, 2021 2:52 am
by Columbo
I have a Paneladget with 4 tabs. In the first tab I have a number of StringGadgets. In the second tab I also have a number of StringGadgets. I would like to be able to get the text from one of the string Gadgets in the first tab, and place it into one of the StringGadgets in the second tab. I assumed that I would get the text from the first StringGadget and place it into a Global variable,
Example

Code: Select all

lname = GetGadgetText(#lastname)
and then when the second tab is opened, the contents of the variable from the first tab would be copied into one of the StringGadgets in the second tab.
Example

Code: Select all

SetGadgetText(#lastname, lname)

Re: Can I pass a variable from one tab to another in a panel?

Posted: Sun Jun 13, 2021 2:55 am
by BarryG
Columbo wrote: Sun Jun 13, 2021 2:52 amI would like to be able to get the text from one of the string Gadgets in the first tab, and place it into one of the StringGadgets in the second tab.
I see. And your example was correct, too. But you can also do it like this if you don't want to use a variable:

Code: Select all

SetGadgetText(targetgad,GetGadgetText(sourcegad))
Your app doesn't care which gadget belongs to which panel.

Re: Can I pass a variable from one tab to another in a panel?

Posted: Sun Jun 13, 2021 5:04 pm
by Columbo
Thanks Barry, I tried that but it does not work. The fields in each Tab are set up in a container. I'm wondering if that somehow affects copying GadgetText from one Tab to another?

Here is how the panel is set up.

Code: Select all

PanelGadget(#mainPanel, centerPanel, 25, 1040, 630)    ;was 120
   ;--------[ Get Member ]------------------
  AddGadgetItem(#mainPanel, -1, "Get Member", 0)
  ContainerGadget(#containerGet, 8, 8, 1020, 590, #PB_Container_Single)
  ;----------------{ Setup Labels ]----------------
  TextGadget(#labelGetFirstName, 20, 60, 75, 20, "First Name      : ")
  TextGadget(#labelGetLastName, 20, 90, 75, 20, "Last Name      : ")
  TextGadget(#labelGetAddress, 20, 120, 75, 20, "Address          : ")
  TextGadget(#labelGetAptNo, 20, 150, 75, 20, "Apt No.           : ")
  TextGadget(#labelGetCity, 20, 180, 75, 20, "City                 :")
  TextGadget(#labelGetProvince, 20, 210, 75, 20, "Province         :")
  TextGadget(#labelGetPostalCode, 20, 240, 75, 20, "Postal Code    :")
  TextGadget(#labelGetPhoneNo, 20, 270, 75, 20, "Phone No       :")
  TextGadget(#labelGetGender, 20, 300, 75, 20, "Gender            :")
  TextGadget(#labelGetEmployeeNo, 20, 330, 75, 20, "Employee No.  :")
  TextGadget(#labelGetSeniorityDate, 20, 360, 75, 20, "Seniority Date. :")
  TextGadget(#labelGetDeptNo, 450, 60, 75, 20, "Dept. No.      : ")
  TextGadget(#labelGetDeptAddress, 450, 90, 75, 20, "Address         : ")
  TextGadget(#labelGetDeptCity, 450, 120, 75, 20, "City                : ")
  TextGadget(#labelGetDeptProvince, 450, 150, 75, 20, "Province        : ")
  TextGadget(#labelGetDeptPostalCode, 450, 180, 80, 20, "Postal Code   : ")
  TextGadget(#labelGetDeptPhoneNo, 450, 210, 75, 20, "Phone No.     : ")
    
   ;----------------{ Setup Gadgets Tab 1 ]----------------
  StringGadget(#getFirstName, 100, 60, 90, 20, "")
  StringGadget(#getLastName, 100, 90, 110, 20, "")
  StringGadget(#getAddress, 100, 120, 160, 20, "")
  StringGadget(#getAptNo, 100, 150, 60, 20, "")
  StringGadget(#getCity, 100, 180, 160, 20, "")
  StringGadget(#getProvince, 100, 210, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#getPostalCode, 100, 240, 75, 20, "")
  StringGadget(#getPhoneNo, 100, 270, 90, 20, "")
  TextGadget(#labelGetPhoneFormat, 200, 275, 115, 20, "(# # #)  # # # - # # # #")
  StringGadget(#getGender, 100, 300, 20, 20, "")
  StringGadget(#getEmployeeNo, 100, 330, 90, 20, "")
  StringGadget(#getSeniorityDate, 100, 360, 110, 20, "")
  TextGadget(#labelGetSeniorityFormat, 220, 365, 85, 20, "( MM/DD/YYYY )")
  
  StringGadget(#getDeptNo, 525, 60, 60, 20, "")
  StringGadget(#getDeptAddress, 525, 90, 160, 20, "")
  StringGadget(#getDeptCity, 525, 120, 160, 20, "")
  StringGadget(#getDeptProvince, 525, 150, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#getDeptPostalCode, 525, 180, 75, 20, "")
  StringGadget(#getDeptPhoneNo, 525, 210, 90, 20, "")
  CheckBoxGadget(#getHasGrievance,  700, 210, 130, 20, "Has Active Grievance")
  
  TextGadget(#labelGetNotes, 450, 240, 60, 20, "Notes")
  EditorGadget(#getDeptNotes, 450, 260, 550, 250, #PB_Editor_WordWrap)
  
  StringGadget(#Getsearch, 820, 60, 150, 20, "", #SS_CENTERIMAGE)     ;Search Box  (At top right of screen)
  ButtonImageGadget(#GetsearchIcon,  980, 60, 20, 20, ImageID(#img0))   
  ButtonGadget(#GethasGrievanceBtn, 845, 210, 90, 20, "View Grievances")
  DisableGadget(#GethasGrievanceBtn, #True)    
  ButtonGadget(#getMemberBtn, 60, 550, 90, 20, "Get Member")
  ButtonGadget(#cancelGetBtn, 200, 550, 90, 20, "Cancel")
  ButtonGadget(#clearGetMemberBtn, 350, 550, 90, 20, "Clear")
  ButtonGadget(#getMemExitBtn, 870, 550, 90, 20, "Exit")
  SetActiveGadget(#getFirstName)
  CloseGadgetList()
  
  ;--------[ Edit Member ]------------------
  AddGadgetItem(#mainPanel, -1, "Edit Member", 0)
  ContainerGadget(#containerEdit, 8, 8, 1020, 590, #PB_Container_Single)
  
   ;----------------{ Setup Labels ]----------------
  TextGadget(#labelEditFirstName, 20, 60, 75, 20, "First Name      : ")
  TextGadget(#labelEditLastName, 20, 90, 75, 20, "Last Name      : ")
  TextGadget(#labelEditAddress, 20, 120, 75, 20, "Address          : ")
  TextGadget(#labelEditAptNo, 20, 150, 75, 20, "Apt No.           : ")
  TextGadget(#labelEditCity, 20, 180, 75, 20, "City                 :")
  TextGadget(#labelEditProvince, 20, 210, 75, 20, "Province         :")
  TextGadget(#labelEditPostalCode, 20, 240, 75, 20, "Postal Code    :")
  TextGadget(#labelEditPhoneNo, 20, 270, 75, 20, "Phone No       :")
  TextGadget(#labelEditGender, 20, 300, 75, 20, "Gender            :")
  TextGadget(#labelEditEmployeeNo, 20, 330, 75, 20, "Employee No.  :")
  TextGadget(#labelEditSeniorityDate, 20, 360, 75, 20, "Seniority Date. :")
  TextGadget(#labelEditDeptNo, 450, 60, 75, 20, "Dept. No.      : ")
  TextGadget(#labelEditDeptAddress, 450, 90, 75, 20, "Address         : ")
  TextGadget(#labelEditDeptCity, 450, 120, 75, 20, "City                : ")
  TextGadget(#labelEditDeptProvince, 450, 150, 75, 20, "Province        : ")
  TextGadget(#labelEditDeptPostalCode, 450, 180, 80, 20, "Postal Code   : ")
  TextGadget(#labelEditDeptPhoneNo, 450, 210, 75, 20, "Phone No.     : ")
  
   ;----------------{ Setup Gadgets Tab 2 ]----------------
  StringGadget(#editFirstName, 100, 60, 90, 20, "")
  StringGadget(#editLastName, 100, 90, 110, 20, "")
  StringGadget(#editAddress, 100, 120, 160, 20, "")
  StringGadget(#editAptNo, 100, 150, 60, 20, "")
  StringGadget(#editCity, 100, 180, 160, 20, "")
  StringGadget(#editProvince, 100, 210, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#editPostalCode, 100, 240, 75, 20, "")
  StringGadget(#editPhoneNo, 100, 270, 90, 20, "")
  TextGadget(#labelEditPhoneFormat, 200, 275, 115, 20, "(# # #)  # # # - # # # #")
  StringGadget(#editGender, 100, 300, 20, 20, "")
  StringGadget(#editEmployeeNo, 100, 330, 90, 20, "")
  StringGadget(#editSeniorityDate, 100, 360, 110, 20, "")
  TextGadget(#labelEditSeniorityFormat, 220, 365, 85, 20, "( MM/DD/YYYY )")
  
  StringGadget(#editDeptNo, 525, 60, 60, 20, "")
  StringGadget(#editDeptAddress, 525, 90, 160, 20, "")
  StringGadget(#editDeptCity, 525, 120, 160, 20, "")
  StringGadget(#editDeptProvince, 525, 150, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#editDeptPostalCode, 525, 180, 75, 20, "")
  StringGadget(#editDeptPhoneNo, 525, 210, 90, 20, "")
  
  TextGadget(#labelEditNotes, 450, 240, 60, 20, "Notes")
  EditorGadget(#editDeptNotes, 450, 260, 550, 250, #PB_Editor_WordWrap)
  
  StringGadget(#Editsearch, 820, 60, 150, 20, "", #SS_CENTERIMAGE)     ;Search Box  (At top right of screen)
  ButtonImageGadget(#EditsearchIcon,  980, 60, 20, 20, ImageID(#img1))   
  ButtonGadget(#editMemberBtn, 60, 550, 90, 20, "Edit Member")
  ButtonGadget(#cancelEditBtn, 200, 550, 90, 20, "Cancel")
  ButtonGadget(#clearEditMemberBtn, 350, 550, 90, 20, "Clear")
  ButtonGadget(#editMemExitBtn, 870, 550, 90, 20, "Exit")
  CloseGadgetList()

Re: Can I pass a variable from one tab to another in a panel?

Posted: Mon Jun 14, 2021 9:59 pm
by Olli
Hello Columbo,

When do you want to copy a data from a gadget to an other one ? Which condition ? (After a click on a button "copy" ? Every 100 milliseconds ? While a string gadget has been modified ? When the mouse is over an object ? After a drag and drop ? Etc... )



Thank you

Re: Can I pass a variable from one tab to another in a panel?

Posted: Tue Jun 15, 2021 12:01 am
by Columbo
When the user is in Tab1, which has all of the StringGadgets populated, I want it to copy the contents of two StringGadgets in Tab1 to two StringGadgets in Tab2 as soon as the user clicks on Tab2 and Tab2 opens.

Thanks.

Re: Can I pass a variable from one tab to another in a panel?

Posted: Tue Jun 15, 2021 12:53 am
by ChrisR
You should be able to do it with BindGadgetEvent(#mainPanel, @ChangePanelTab(), #PB_EventType_Change)

Code: Select all

Enumeration FormWindow
  #Window_0
EndEnumeration

Enumeration FormGadget
  #mainPanel
  #containerGet
  #labelGetFirstName
  #labelGetLastName
  #labelGetAddress
  #labelGetAptNo
  #labelGetCity
  #labelGetProvince
  #labelGetPostalCode
  #labelGetPhoneNo
  #labelGetGender
  #labelGetEmployeeNo
  #labelGetSeniorityDate
  #labelGetDeptNo
  #labelGetDeptAddress
  #labelGetDeptCity
  #labelGetDeptProvince
  #labelGetDeptPostalCode
  #labelGetDeptPhoneNo
  #getFirstName
  #getLastName
  #getAddress
  #getAptNo
  #getCity
  #getProvince
  #getPostalCode
  #getPhoneNo
  #labelGetPhoneFormat
  #getGender
  #getEmployeeNo
  #getSeniorityDate
  #labelGetSeniorityFormat
  #getDeptNo
  #getDeptAddress
  #getDeptCity
  #getDeptProvince
  #getDeptPostalCode
  #getDeptPhoneNo
  #getHasGrievance
  #labelGetNotes
  #getDeptNotes
  #Getsearch
  #GetsearchIcon
  #GethasGrievanceBtn
  #getMemberBtn
  #cancelGetBtn
  #clearGetMemberBtn
  #getMemExitBtn
  #containerEdit
  #labelEditFirstName
  #labelEditLastName
  #labelEditAddress
  #labelEditAptNo
  #labelEditCity
  #labelEditProvince
  #labelEditPostalCode
  #labelEditPhoneNo
  #labelEditGender
  #labelEditEmployeeNo
  #labelEditSeniorityDate
  #labelEditDeptNo
  #labelEditDeptAddress
  #labelEditDeptCity
  #labelEditDeptProvince
  #labelEditDeptPostalCode
  #labelEditDeptPhoneNo
  #editFirstName
  #editLastName
  #editAddress
  #editAptNo
  #editCity
  #editProvince
  #editPostalCode
  #editPhoneNo
  #labelEditPhoneFormat
  #editGender
  #editEmployeeNo
  #editSeniorityDate
  #labelEditSeniorityFormat
  #editDeptNo
  #editDeptAddress
  #editDeptCity
  #editDeptProvince
  #editDeptPostalCode
  #editDeptPhoneNo
  #labelEditNotes
  #editDeptNotes
  #Editsearch
  #EditsearchIcon
  #editMemberBtn
  #cancelEditBtn
  #clearEditMemberBtn
  #editMemExitBtn
EndEnumeration

Procedure ChangePanelTab()
  If GetGadgetState(EventGadget()) = 1
    SetGadgetText(#editFirstName, GetGadgetText(#getFirstName))
    SetGadgetText(#editLastName, GetGadgetText(#getLastName))
  EndIf
EndProcedure


Procedure Open_Window_0(x = 0, y = 0, width = 1040, height = 656)
  OpenWindow(#Window_0, x, y, width, height, "", #PB_Window_SystemMenu)
  PanelGadget(#mainPanel, 0, 25, 1040, 630)
  AddGadgetItem(#mainPanel, -1, "Get Member")
  ContainerGadget(#containerGet, 0, 0, 1020, 590, #PB_Container_Single)
  TextGadget(#labelGetFirstName, 20, 60, 75, 20, "First Name      : ")
  TextGadget(#labelGetLastName, 20, 90, 75, 20, "Last Name      : ")
  TextGadget(#labelGetAddress, 20, 120, 75, 20, "Address          : ")
  TextGadget(#labelGetAptNo, 20, 150, 75, 20, "Apt No.           : ")
  TextGadget(#labelGetCity, 20, 180, 75, 20, "City                 :")
  TextGadget(#labelGetProvince, 20, 210, 75, 20, "Province         :")
  TextGadget(#labelGetPostalCode, 20, 240, 75, 20, "Postal Code    :")
  TextGadget(#labelGetPhoneNo, 20, 270, 75, 20, "Phone No       :")
  TextGadget(#labelGetGender, 20, 300, 75, 20, "Gender            :")
  TextGadget(#labelGetEmployeeNo, 20, 330, 75, 20, "Employee No.  :")
  TextGadget(#labelGetSeniorityDate, 20, 360, 75, 20, "Seniority Date. :")
  TextGadget(#labelGetDeptNo, 450, 60, 75, 20, "Dept. No.      : ")
  TextGadget(#labelGetDeptAddress, 450, 90, 75, 20, "Address         : ")
  TextGadget(#labelGetDeptCity, 450, 120, 75, 20, "City                : ")
  TextGadget(#labelGetDeptProvince, 450, 150, 75, 20, "Province        : ")
  TextGadget(#labelGetDeptPostalCode, 450, 180, 80, 20, "Postal Code   : ")
  TextGadget(#labelGetDeptPhoneNo, 450, 210, 75, 20, "Phone No.     : ")
  StringGadget(#getFirstName, 100, 60, 90, 20, "")
  StringGadget(#getLastName, 100, 90, 110, 20, "")
  StringGadget(#getAddress, 100, 120, 160, 20, "")
  StringGadget(#getAptNo, 100, 150, 60, 20, "")
  StringGadget(#getCity, 100, 180, 160, 20, "")
  StringGadget(#getProvince, 100, 210, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#getPostalCode, 100, 240, 75, 20, "")
  StringGadget(#getPhoneNo, 100, 270, 90, 20, "")
  TextGadget(#labelGetPhoneFormat, 200, 275, 115, 20, "(# # #)  # # # - # # # #")
  StringGadget(#getGender, 100, 300, 20, 20, "")
  StringGadget(#getEmployeeNo, 100, 330, 90, 20, "")
  StringGadget(#getSeniorityDate, 100, 360, 110, 20, "")
  TextGadget(#labelGetSeniorityFormat, 220, 365, 85, 20, "( MM/DD/YYYY )")
  StringGadget(#getDeptNo, 525, 60, 60, 20, "")
  StringGadget(#getDeptAddress, 525, 90, 160, 20, "")
  StringGadget(#getDeptCity, 525, 120, 160, 20, "")
  StringGadget(#getDeptProvince, 525, 150, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#getDeptPostalCode, 525, 180, 75, 20, "")
  StringGadget(#getDeptPhoneNo, 525, 210, 90, 20, "")
  CheckBoxGadget(#getHasGrievance, 700, 210, 130, 20, "Has Active Grievance")
  TextGadget(#labelGetNotes, 450, 240, 60, 20, "Notes")
  EditorGadget(#getDeptNotes, 450, 260, 550, 250, #PB_Editor_WordWrap)
  StringGadget(#Getsearch, 820, 60, 150, 20, "")
  ButtonImageGadget(#GetsearchIcon, 980, 60, 20, 20, 0)
  ButtonGadget(#GethasGrievanceBtn, 845, 210, 90, 20, "View Grievances")
  ButtonGadget(#getMemberBtn, 60, 550, 90, 20, "Get Member")
  ButtonGadget(#cancelGetBtn, 200, 550, 90, 20, "Cancel")
  ButtonGadget(#clearGetMemberBtn, 350, 550, 90, 20, "Clear")
  ButtonGadget(#getMemExitBtn, 870, 550, 90, 20, "Exit")
  CloseGadgetList()
  AddGadgetItem(#mainPanel, -1, "Edit Member")
  ContainerGadget(#containerEdit, 8, 8, 1020, 590, #PB_Container_Single)
  TextGadget(#labelEditFirstName, 20, 60, 75, 20, "First Name      : ")
  TextGadget(#labelEditLastName, 20, 90, 75, 20, "Last Name      : ")
  TextGadget(#labelEditAddress, 20, 120, 75, 20, "Address          : ")
  TextGadget(#labelEditAptNo, 20, 150, 75, 20, "Apt No.           : ")
  TextGadget(#labelEditCity, 20, 180, 75, 20, "City                 :")
  TextGadget(#labelEditProvince, 20, 210, 75, 20, "Province         :")
  TextGadget(#labelEditPostalCode, 20, 240, 75, 20, "Postal Code    :")
  TextGadget(#labelEditPhoneNo, 20, 270, 75, 20, "Phone No       :")
  TextGadget(#labelEditGender, 20, 300, 75, 20, "Gender            :")
  TextGadget(#labelEditEmployeeNo, 20, 330, 75, 20, "Employee No.  :")
  TextGadget(#labelEditSeniorityDate, 20, 360, 75, 20, "Seniority Date. :")
  TextGadget(#labelEditDeptNo, 450, 60, 75, 20, "Dept. No.      : ")
  TextGadget(#labelEditDeptAddress, 450, 90, 75, 20, "Address         : ")
  TextGadget(#labelEditDeptCity, 450, 120, 75, 20, "City                : ")
  TextGadget(#labelEditDeptProvince, 450, 150, 75, 20, "Province        : ")
  TextGadget(#labelEditDeptPostalCode, 450, 180, 80, 20, "Postal Code   : ")
  TextGadget(#labelEditDeptPhoneNo, 450, 210, 75, 20, "Phone No.     : ")
  StringGadget(#editFirstName, 100, 60, 90, 20, "")
  StringGadget(#editLastName, 100, 90, 110, 20, "")
  StringGadget(#editAddress, 100, 120, 160, 20, "")
  StringGadget(#editAptNo, 100, 150, 60, 20, "")
  StringGadget(#editCity, 100, 180, 160, 20, "")
  StringGadget(#editProvince, 100, 210, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#editPostalCode, 100, 240, 75, 20, "")
  StringGadget(#editPhoneNo, 100, 270, 90, 20, "")
  TextGadget(#labelEditPhoneFormat, 200, 275, 115, 20, "(# # #)  # # # - # # # #")
  StringGadget(#editGender, 100, 300, 20, 20, "")
  StringGadget(#editEmployeeNo, 100, 330, 90, 20, "")
  StringGadget(#editSeniorityDate, 100, 360, 110, 20, "")
  TextGadget(#labelEditSeniorityFormat, 220, 365, 85, 20, "( MM/DD/YYYY )")
  StringGadget(#editDeptNo, 525, 60, 60, 20, "")
  StringGadget(#editDeptAddress, 525, 90, 160, 20, "")
  StringGadget(#editDeptCity, 525, 120, 160, 20, "")
  StringGadget(#editDeptProvince, 525, 150, 90, 20, "Ontario", #PB_String_ReadOnly)
  StringGadget(#editDeptPostalCode, 525, 180, 75, 20, "")
  StringGadget(#editDeptPhoneNo, 525, 210, 90, 20, "")
  TextGadget(#labelEditNotes, 450, 240, 60, 20, "Notes")
  EditorGadget(#editDeptNotes, 450, 260, 550, 250, #PB_Editor_WordWrap)
  StringGadget(#Editsearch, 820, 60, 150, 20, "")
  ButtonImageGadget(#EditsearchIcon, 980, 60, 20, 20, 0)
  ButtonGadget(#editMemberBtn, 60, 550, 90, 20, "Edit Member")
  ButtonGadget(#cancelEditBtn, 200, 550, 90, 20, "Cancel")
  ButtonGadget(#clearEditMemberBtn, 350, 550, 90, 20, "Clear")
  ButtonGadget(#editMemExitBtn, 870, 550, 90, 20, "Exit")
  CloseGadgetList()
  CloseGadgetList()
  BindGadgetEvent(#mainPanel, @ChangePanelTab(), #PB_EventType_Change)
EndProcedure

Open_Window_0()

Repeat
  iEvent = WaitWindowEvent()
  Select iEvent
    Case #PB_Event_CloseWindow
      End

    Case #PB_Event_Gadget
      Select EventGadget()
        Case #getMemberBtn, #cancelGetBtn, #clearGetMemberBtn, #getMemExitBtn, #editMemberBtn, #cancelEditBtn, #clearEditMemberBtn, #editMemExitBtn
          MessageRequester("Information", "Button ID " + EventGadget() +#CRLF$+#CRLF$+ "Text : " + GetGadgetText(EventGadget()))
      EndSelect

  EndSelect
ForEver

Re: Can I pass a variable from one tab to another in a panel?

Posted: Tue Jun 15, 2021 6:27 am
by Columbo
Thank you very much Chris. I'll give that a go.

Cheers!