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
Regards ... Chris