{"id":1136,"date":"2012-02-14T18:17:17","date_gmt":"2012-02-14T23:17:17","guid":{"rendered":"http:\/\/anvil-of-time.com\/wordpress\/?p=1136"},"modified":"2021-03-11T11:10:27","modified_gmt":"2021-03-11T16:10:27","slug":"100-days-of-powerbuilder-day-2-creating-a-main-application-window","status":"publish","type":"post","link":"https:\/\/anvil-of-time.com\/powerbuilder\/100-days-of-powerbuilder\/100-days-of-powerbuilder-day-2-creating-a-main-application-window\/","title":{"rendered":"100 Days of PowerBuilder &#8211; Day 2: Creating a Main Application Window"},"content":{"rendered":"<p>This is part of my project &#8216;100 Days of PowerBuilder&#8217; which is a series of discussions focused on basic PowerBuilder development.<\/p>\n<p><em>Note: This article is written with examples created in PowerBuilder version 12.5. The most steps would be identical with any version going back to 9.<\/em><\/p>\n<p>For the purposes of this exercise I will be creating a Windows based application with a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Single_document_interface\" target=\"_blank\" rel=\"noopener\">Single Document Interface (SDI)<\/a>. Later installments of the project will cover the other main interface type, MDI (Multiple Document Interface).<\/p>\n<p>If you re-start PowerBuilder from the conclusion of our last session you will again be greeted with the &#8216;Welcome&#8217; page.<br \/>\n<a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/welcome1.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1138 size-full\" title=\"welcome\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/welcome1.png\" alt=\"\" width=\"645\" height=\"531\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/welcome1.png 645w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/welcome1-300x246.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/welcome1-150x123.png 150w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/a><\/p>\n<p>At this point you may wish to check the last checkbox, &#8216;Reload last workspace&#8230;&#8217;. This will have PB automatically begin each session with the previous session&#8217;s workspace open within the IDE. As time goes on you will probably uncheck the &#8216;Show this dialog box&#8230;&#8217; option to dispense with the Welcome window altoghether.<\/p>\n<p>To add a &#8216;main&#8217; window to the application choose &#8216;File &#8211; New&#8217; which presents you with the following dialog window<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newdialog.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1139 size-full\" title=\"02_newdialog\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newdialog.png\" alt=\"\" width=\"541\" height=\"420\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newdialog.png 541w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newdialog-300x232.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newdialog-150x116.png 150w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/a><\/p>\n<p>Select &#8216;Window&#8217; and click &#8216;OK&#8217;. We will go over the other items in later sessions.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newwindowlayout.png\"><img loading=\"lazy\" class=\"aligncenter  wp-image-1140\" title=\"02_newwindowlayout\" src=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newwindowlayout.png\" alt=\"\" width=\"572\" height=\"303\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowlayout.png 1191w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowlayout-300x158.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowlayout-1024x542.png 1024w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowlayout-150x79.png 150w\" sizes=\"(max-width: 572px) 100vw, 572px\" \/><\/a><\/p>\n<p>By default the script window is opened for the new window (called &#8216;Untitled&#8217; since it has just been created) in the &#8216;Open&#8217; event. Lets set some of the window&#8217;s propreties right off the bat. Click on the Properties tab on the control list (lower left of screen).<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newwindowprops41.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1150 size-large\" title=\"02_newwindowprops4\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowprops41-1024x590.png\" alt=\"\" width=\"800\" height=\"461\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowprops41-1024x590.png 1024w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowprops41-300x172.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowprops41-150x86.png 150w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newwindowprops41.png 1114w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>This window shows the entire PB IDE so lets take a quick overview. The top portion contains all the various menu bars, the left frame contains the system tree, the bottom frame contains the output (you can toggle these visible\/invisible via the Window menu option), and the right frame is the current object editor (which includes the scripts and layout tabs) as well as the object properties frame.<\/p>\n<p>The toolbars change depending upon which area of the IDE you are working in. To maximize the &#8216;working area&#8217; (the area containing the scripts and layout) drag the toolbar sections from the third row up to the first two rows. See the start and end examples:<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_menutoolbarsold.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1151 size-full\" title=\"02_menutoolbarsold\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsold.png\" alt=\"\" width=\"805\" height=\"126\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsold.png 805w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsold-300x46.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsold-150x23.png 150w\" sizes=\"(max-width: 805px) 100vw, 805px\" \/><\/a><br \/>\n<a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1152 size-large\" title=\"02_menutoolbarsnew\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew-1024x96.png\" alt=\"\" width=\"800\" height=\"75\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew-1024x96.png 1024w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew-300x28.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew-150x14.png 150w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_menutoolbarsnew.png 1136w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Okay, back to the window properties. Give the window a Title as shown below. All of the other defaults are fine for now<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_windowpropertieschange.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1153 size-full\" title=\"02_windowpropertieschange\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_windowpropertieschange.png\" alt=\"\" width=\"359\" height=\"465\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_windowpropertieschange.png 359w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_windowpropertieschange-231x300.png 231w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_windowpropertieschange-115x150.png 115w\" sizes=\"(max-width: 359px) 100vw, 359px\" \/><\/a><\/p>\n<p>Now lets drop an object on the window to provide some basic functionality. In this case a button to close the window. Click on the Layout tab at the bottom of the IDE to display the window form. From the toolbar click on the small down arrow next to the Add Control icon.<br \/>\n<a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_addcontrollicon.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1154 size-full\" title=\"02_addcontrollicon\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_addcontrollicon.png\" alt=\"\" width=\"97\" height=\"72\" \/><\/a><\/p>\n<p>This brings up a subtoolbar with various controls you can place on the window. Choose (click) the command button option as shown then click on the toolbar icon to tell the IDE you are going to place a command button on some other control.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_addcontrol.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1155 size-full\" title=\"02_addcontrol\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_addcontrol.png\" alt=\"\" width=\"127\" height=\"213\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_addcontrol.png 127w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_addcontrol-89x150.png 89w\" sizes=\"(max-width: 127px) 100vw, 127px\" \/><\/a><\/p>\n<p>(Note about the add control icon, the icon on the IDE toolbar changes to the last control chosen so it will not always appear as a button.)<\/p>\n<p>Click on the window form to place the command button. Once place the control is &#8216;selected&#8217; allowing for resizing and repositioning as needed. Move the button to the lower right corner of the window frame.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newbuttoncontrol.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1156 size-full\" title=\"02_newbuttoncontrol\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoncontrol.png\" alt=\"\" width=\"212\" height=\"106\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoncontrol.png 212w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoncontrol-150x75.png 150w\" sizes=\"(max-width: 212px) 100vw, 212px\" \/><\/a><\/p>\n<p>Note the properties section of IDE changes to those of the button just added. Change the Text from &#8216;none&#8217; to &#8216;Exit&#8217; since that is the function of the button. Right click on the button control and choose &#8216;Script&#8217; from the menu. This takes you to the script portion of the control and, in the case of a command button, to the &#8216;clicked&#8217; event. If you click on the downarrow in the Event list of the control, you see all of the system defined events for this type of control.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_newbuttoneventlist.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1158 size-full\" title=\"02_newbuttoneventlist\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoneventlist.png\" alt=\"\" width=\"743\" height=\"261\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoneventlist.png 743w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoneventlist-300x105.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_newbuttoneventlist-150x52.png 150w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><\/a><\/p>\n<p>Remain in the clicked event script by clicking outside the dropdown. In the event script insert the following code:<\/p>\n<p>&lt;pre&gt;close()&lt;\/pre&gt;<\/p>\n<p>Okay, so what is this doing? Well, the button is used to trigger a method on the main window, in this case the Close function.<\/p>\n<p>Now Save the window. This brings up the Save Window dialog.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_savewindowdialog.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1159 size-full\" title=\"02_savewindowdialog\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialog.png\" alt=\"\" width=\"331\" height=\"371\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialog.png 331w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialog-267x300.png 267w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialog-133x150.png 133w\" sizes=\"(max-width: 331px) 100vw, 331px\" \/><\/a><\/p>\n<p>In this dialog we give the window a name (w_main), some comments, and select which library in our target we wish to save it in. Since we have only one library (PBL file) our choices are limited. Note the section below the window name. This area lists other objects in the currently selected library of the same type (in our case a window). Since this is the first window we are saving, the list is empty.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_savewindowdialogfilled.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1161 size-full\" title=\"02_savewindowdialogfilled\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialogfilled.png\" alt=\"\" width=\"330\" height=\"367\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialogfilled.png 330w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialogfilled-269x300.png 269w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowdialogfilled-134x150.png 134w\" sizes=\"(max-width: 330px) 100vw, 330px\" \/><\/a><\/p>\n<p>Now click the OK button.<\/p>\n<p>Okay, something&#8217;s not correct.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_savewindowerrors1.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1163 size-full\" title=\"02_savewindowerrors\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowerrors1.png\" alt=\"\" width=\"403\" height=\"598\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowerrors1.png 403w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowerrors1-202x300.png 202w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_savewindowerrors1-101x150.png 101w\" sizes=\"(max-width: 403px) 100vw, 403px\" \/><\/a><\/p>\n<p>The section below the event script has a message indicating an error. If there were multiple lines in the script above, you could click on the error messages and you would be taken to the incorrect line. In our case we are missing an argument to the function. To correct the error change the script to:<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_buttonclickscriptgood.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1164 size-full\" title=\"02_buttonclickscriptgood\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_buttonclickscriptgood.png\" alt=\"\" width=\"295\" height=\"111\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_buttonclickscriptgood.png 295w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_buttonclickscriptgood-150x56.png 150w\" sizes=\"(max-width: 295px) 100vw, 295px\" \/><\/a><\/p>\n<p>In this case the close method requires the name of the window it&#8217;s going to close. The pronoun &#8216;Parent&#8217; is used to refer to the button&#8217;s containing control which is in this case a window. A window is the Parent of all of the controls which are directly placed upon it.<\/p>\n<p>Now save the window. You will have to put in information in the window save dialog again in order to save it.<\/p>\n<p>Now code the &#8216;Closequery&#8217; event on the window. The button click will call the close function on the window. This function will first call the &#8216;closequery&#8217; event and the &#8216;close&#8217; event on the window. This allows for any preprocessing which may need to occur prior to the close of the window. Right click on the window, choose script, and then choose closequery from the dropdown. Insert the following code:<\/p>\n<p>&lt;pre&gt;IF Messagebox(&#8216;Hello World&#8217;,&#8217;Close the window?&#8217;,Question!,YesNo!) = 2 THEN<br \/>\nRETURN 1<br \/>\nEND IF&lt;\/pre&gt;<\/p>\n<p>This causes a messagebox window prompting a response from the user. The first string of the function is the messagebox title, the second is the message, the third is the icon, and the fourth is the choices the user has. Each choice returns a numerical value, in this case a 2 indicates the user pressed &#8216;No&#8217;. The closequery event can be used to prevent the close of the window by returning a value of 1.<\/p>\n<p>Save the window again and then click on the Run icon.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_runicon.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1165 size-full\" title=\"02_runicon\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_runicon.png\" alt=\"\" width=\"101\" height=\"68\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_runicon.png 101w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_runicon-100x68.png 100w\" sizes=\"(max-width: 101px) 100vw, 101px\" \/><\/a><\/p>\n<p>Now another message indicating something else is missing.<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_appopenscriptmissing.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1166 size-full\" title=\"02_appopenscriptmissing\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscriptmissing.png\" alt=\"\" width=\"326\" height=\"136\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscriptmissing.png 326w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscriptmissing-300x125.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscriptmissing-150x62.png 150w\" sizes=\"(max-width: 326px) 100vw, 326px\" \/><\/a><\/p>\n<p>Click ok and add the following:<\/p>\n<p>&lt;pre&gt;Open(w_main)&lt;\/pre&gt;<\/p>\n<p><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_appopenscript1.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-1172 size-full\" title=\"02_appopenscript\" src=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscript1.png\" alt=\"\" width=\"234\" height=\"144\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscript1.png 234w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_appopenscript1-150x92.png 150w\" sizes=\"(max-width: 234px) 100vw, 234px\" \/><\/a><\/p>\n<p>This tells the application to open the window object &#8216;w_main&#8217; when the application launches.<\/p>\n<p>Now save and run the application.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_firstapprun.png\"><img loading=\"lazy\" class=\"aligncenter  wp-image-1168\" title=\"02_firstapprun\" src=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_firstapprun.png\" alt=\"\" width=\"725\" height=\"390\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprun.png 906w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprun-300x161.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprun-150x80.png 150w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><\/a><\/p>\n<p>Click Exit.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_firstapprunquery.png\"><img loading=\"lazy\" class=\"aligncenter  wp-image-1169\" title=\"02_firstapprunquery\" src=\"http:\/\/anvil-of-time.com\/wordpress\/wp-content\/uploads\/2012\/02\/02_firstapprunquery.png\" alt=\"\" width=\"726\" height=\"387\" srcset=\"https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprunquery.png 908w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprunquery-300x159.png 300w, https:\/\/anvil-of-time.com\/wp-content\/uploads\/2012\/02\/02_firstapprunquery-150x79.png 150w\" sizes=\"(max-width: 726px) 100vw, 726px\" \/><\/a><\/p>\n<p>Click Yes to exit the app.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is part of my project &#8216;100 Days of PowerBuilder&#8217; which is a series of discussions focused on basic PowerBuilder development. Note: This article is written with examples created in PowerBuilder version 12.5. The most steps would be identical with any version going back to 9. For the purposes of this exercise I will be&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[86],"tags":[12,62],"_links":{"self":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1136"}],"collection":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/comments?post=1136"}],"version-history":[{"count":10,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1136\/revisions"}],"predecessor-version":[{"id":2019,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/posts\/1136\/revisions\/2019"}],"wp:attachment":[{"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/media?parent=1136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/categories?post=1136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anvil-of-time.com\/wp-json\/wp\/v2\/tags?post=1136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}