Hello,
I am in the process of moving a powerbuilder app from PB12.5 to PB2019. The migration was a success except for one error. When a user clicks on the Window option in the toolbar the app freezes and then eventually crashes. I have found this error in the Event Viewer...
Faulting application name: PB190.EXE, version: 19.1.0.2353, time stamp: 0x5f14536e
Faulting module name: KERNELBASE.dll, version: 10.0.17763.1613, time stamp: 0xa4105fac
Exception code: 0xc000041d
Fault offset: 0x001225f2
Faulting process id: 0xa78
Faulting application start time: 0x01d6c9953bcd00d9
Faulting application path: C:\Program Files (x86)\Appeon\PowerBuilder 19.0\PB190.EXE
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: f04764c7-ee47-4f58-b581-7ccef2b0840a
Faulting package full name:
Faulting package-relative application ID:
Here is the code in the Selected() event for the Window option...
//////////////////////////////////////////////////////////////////////////////
//
// Event: selected
//
// Description:
// Enables menu items based on sheet manager service
//
//////////////////////////////////////////////////////////////////////////////
//
// Revision History
//
// Version
// 5.0 Initial version
// 6.0.01 Remove logic to disable menu items after windows have been minimized
//
//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1996-1997 Sybase, Inc. and its subsidiaries. All rights reserved.
// Any distribution of the PowerBuilder Foundation Classes (PFC)
// source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//
//////////////////////////////////////////////////////////////////////////////
any la_rc
boolean lb_normal
integer li_rc
integer li_sheetcount
integer li_cnt = 1
arrangetypes le_arrange
n_cst_menu lnv_menu
window lw_obj
window lw_sheet[]
w_frame lw_frame
// Get frame window
li_rc = lnv_menu.of_GetMDIFrame (this, lw_obj)
if li_rc < 0 then
return
end if
// Determine if frame is a PFC frame descendant
la_rc = lw_obj.dynamic event pfc_descendant()
if IsNull (la_rc) then
return
end if
lw_frame = lw_obj
// If sheetmanager service is enabled, allow for undo and minimize capabilities
if IsValid (lw_frame.inv_sheetmanager) then
// First determine if there are any nonminimized sheets open
li_sheetcount = lw_frame.inv_sheetmanager.of_GetSheets (lw_sheet)
do while li_cnt <= li_sheetcount and not lb_normal
if lw_sheet[li_cnt].windowstate <> minimized! then
lb_normal = true
end if
li_cnt++
loop
this.m_undoarrange.enabled = true
this.m_minimizeall.enabled = lb_normal
this.m_cascade.enabled = lb_normal
this.m_layer.enabled = lb_normal
this.m_tilehorizontal.enabled = lb_normal
this.m_tilevertical.enabled = lb_normal
// Get current arrange state of windows and set undo text
le_arrange = lw_frame.inv_sheetmanager.of_GetCurrentState()
choose case le_arrange
case tile!
this.m_undoarrange.text = "&Undo Tile Vertical"
this.m_undoarrange.microhelp = "Undoes vertical tile arrangement of windows"
case tilehorizontal!
this.m_undoarrange.text = "&Undo Tile Horizontal"
this.m_undoarrange.microhelp = "Undoes horizontal tile arrangement of windows"
case cascade!
this.m_undoarrange.text = "&Undo Cascade"
this.m_undoarrange.microhelp = "Undoes cascaded arrangement of windows"
case layer!
this.m_undoarrange.text = "&Undo Layer"
this.m_undoarrange.microhelp = "Undoes layered arrangement of windows"
case icons!
this.m_undoarrange.text = "&Undo Minimize All"
this.m_undoarrange.microhelp = "Undoes minimization of windows"
case else
this.m_undoarrange.enabled = false
this.m_undoarrange.text = "&Undo"
this.m_undoarrange.microhelp = "Undo"
end choose
else
this.m_minimizeall.enabled = false
this.m_undoarrange.enabled = false
end if
When I debug through this event there is no crash but the menu does not display.
Any help on this matter would be appreciated,
Thank you,
Mike
Correct, the "Window" option on the toolbar is the only item with the problem all other toolbar items work without error.
The "Window" option is the only item with code in the "Selected" event. The option to navigate to the Ancestor script is unavailable.
Thanks,
Mike