Subject |
Re: Memry error |
From |
Pieter van Heerden <psvh@mweb.co.za> |
Date |
Fri, 27 Nov 2015 10:38:31 -0500 |
Newsgroups |
dbase.getting-started |
Mervyn Bick Wrote:
> On 11/19/2015 11:02 AM, Pieter van Heerden wrote:
> > Dbase 10.2 under Windows 10
> >
> > Running an application built in dBase 10.2 results in a number of Memory errors. The interesting thing is that if one clicks the "Ignore" button, then the application just carries on as if nothing has happened and it works correctly as well. How does one prevent these memory errors from appearing?
> >
>
> What is your program doing when you get a MAV? Does it happen every time?
>
> dBASE 10.2.1 is available as a free upgrade so you should install that
> and try again.
>
> If the problem persists you should try and create a small example
> program and then submit it as a bug report.
>
> Mervyn.
>
>
The MAV seems to surface in the following code for a base form, somewhere in the definition code. The error refers to the first endwith line. This error is transferred to all forms based on this base form.
class BaseCForm of FORM custom
set procedure to mycontrols.cc additive
with (this)
onGotFocus = class::FORM_ONGOTFOCUS
onLostFocus = class::FORM_ONLOSTFOCUS
canClose = class::FORM_CANCLOSE
metric = 6 // Pixels
height = 342.0
left = 142.0
top = 357.0
width = 496.0
text = "Base Form"
autoCenter = true
menuFile = "sapwatmenu.mnu"
escExit = false
icon = "filename SapwatIcon.ico"
endwith
this.MYTITLETEXT1 = new MYTITLETEXT(this)
with (this.MYTITLETEXT1)
height = 33.0
left = 0.0
top = 0.0
width = 494.0
anchor = 2 // Top
text = "BaseForm"
endwith
function Repaint
parameter oForm
if type("oForm") == "U" or empty(oForm)
oForm = form
endif
if type("UpdateWindow") # "FP"
extern CLOGICAL UpdateWindow(CHANDLE) USER32
endif
return UpdateWindow(oForm.hWnd)
function form_canClose
// Avoid closing the form in the wrong state
// If we have arowset on the form, we need
// to check the state -- 2 = Edit, 3 = Append
if form.rowset # null and;
(form.rowset.state == 2 or form.rowset.state == 3)
// If the row's been modified ...
if form.rowset.modified
nAnswer = msgbox("Save changes before leaving record?",;
"Data has been changed", 32+3)
// check the answer returned by clicking a button
// in the message box
do case
case nAnswer == 6
form.rowset.save()
case nAnswer == 7
form.rowset.abandon()
otherwise
return false
endcase
endif
endif
return true
function form_onClose
this.release()
return
function form_onGotFocus
// set application reference to this form:
if type("_app.framewin") # "U"
_app.framewin.currentForm = this
endif
form.repaint()
return
function form_onLostFocus
// Null out application's reference to this form:
if type("_app.frameWin.currentForm") # "U"
_app.frameWin.currentForm := null
endif
return
endclass
|
|