From: Mario Schulz on
hi,

sometimes i recive following error :

Error description :
Severity FEHLER
GenCode 16 -> No exported variable
SubSystem -> BASE
FuncSym -> IVARGET FuncPtr 0x00000000
FError 0 = Successful completion
Arg -> DATAWINDOW CanSubstitute -> NIL
Calling Stack :
00: 24 - Tools - GETCALLINGSTACK
01: 17 - McpErrorHandler - MCPWRITELOGFILE
02: 132 - McpErrorHandler - MCPERRORHANDLER
03: 162 - McpErrorHandler - MCPERRORHANDLER
04: 12 - Windows - BASICDATADIALOGWINDOW:SHOW
05: 18 - Stamm_Artikel - DW_STAMMARTIKEL:EDIT
06: 14 - DataBrowser - MYBROWSER:CELLDOUBLECLICK
07: 83 - DataBrowser - MYBROWSER:DISPATCH
08: 330 - Start - CONCEPTWAWIAPP:APPSTART
09: 8 - Start - STARTOperating system :

the Code-Line (12) is in the

method Show(kState) CLASS BASICDATADIALOGWINDOW

==>> SUPER:Show(kState)

return

i don´t know why "DATAWINDOW" is not available...

thanks for advice,

Mario

From: Geoff Schaller on
Mario.

Firstly, arrange your error handler to remove the unnecessary lines out
of the calling stack so we know the error isn't in the error handler
itself. Do this by creating the calling stack at the earliest point in
your function and then start the activation list from the appropriate
point.

Secondly, the error is not as obvious as it might be because as usual,
you do not show us enough code. We cannot see class inheritances to know
where in the stack this really is. The one method you do show (assuming
the inherited class is Datawindow) is irrelevant. What is in the Edit
method?

Look at the error: No Exported variable
That means the object it is looking for does not exist.

So what is the object passed to the whatever (window, control, class) as
the whatever (owner, caller, parent)?

Whatever it was, at the point of going Show() - I presume and guess
we'd see in the Edit method but we don't know - has gone or never
existed or does not have a method called Show.

Thanks for the usual guesswork you make us go through <g>

Geoff


"Mario Schulz" <info(a)removethiswegenspamundsoconcept-dv.de> wrote in
message news:i3dq92$ssh$1(a)online.de:

> hi,
>
> sometimes i recive following error :
>
> Error description :
> Severity FEHLER
> GenCode 16 -> No exported variable
> SubSystem -> BASE
> FuncSym -> IVARGET FuncPtr 0x00000000
> FError 0 = Successful completion
> Arg -> DATAWINDOW CanSubstitute -> NIL
> Calling Stack :
> 00: 24 - Tools - GETCALLINGSTACK
> 01: 17 - McpErrorHandler - MCPWRITELOGFILE
> 02: 132 - McpErrorHandler - MCPERRORHANDLER
> 03: 162 - McpErrorHandler - MCPERRORHANDLER
> 04: 12 - Windows - BASICDATADIALOGWINDOW:SHOW
> 05: 18 - Stamm_Artikel - DW_STAMMARTIKEL:EDIT
> 06: 14 - DataBrowser - MYBROWSER:CELLDOUBLECLICK
> 07: 83 - DataBrowser - MYBROWSER:DISPATCH
> 08: 330 - Start - CONCEPTWAWIAPP:APPSTART
> 09: 8 - Start - STARTOperating system :
>
> the Code-Line (12) is in the
>
> method Show(kState) CLASS BASICDATADIALOGWINDOW
>
> ==>> SUPER:Show(kState)
>
> return
>
> i don�t know why "DATAWINDOW" is not available...
>
> thanks for advice,
>
> Mario

From: Mario Schulz on
Hi Geoff,

and here it comes :

METHOD Edit() CLASS dw_StammKunden
dd_StammKundenEdit{SELF,,,{SELF,"BEAB"}}:Show()
RETURN

hope you don´t have to guess anymore :) ...



From: Geoff Schaller on
Mario.

This raises far more questions than it answers. Your code practises are
quite poor (sorry to be blunt) and this makes your error finding so much
more difficult.

dd_StammKundenEdit{SELF,,,{SELF,"BEAB"}}:Show()

you must never, never, NEVER do this.
Avoid compound statements at all costs.

Local oWin as dd_ StammKundenEdit

oWin := dd_ StammKundenEdit{SELF,,...}
oWin:Show()

Firstly we will get a much better indication of which point the error
happens and a better line number.

Secondly, what are the inherited window classes involved here? You don't
say so we have to guess. Does the error now happen on the Show() line or
in the instantiation? Are they both DataWindow (if so this is doomed)?

Thirdly, what is the impact of the uExtra passed and how is it used? Did
you trace into the PostInit to see hwwhat happens?

Fourthly, is this happening on instantiation or on closure? Is perhaps
the underlying window closed?

So you see we still have to guess.

Geoff





"Mario Schulz" <info(a)removethiswegenspamundsoconcept-dv.de> wrote in
message news:i3gce6$a4n$1(a)online.de:

> Hi Geoff,
>
> and here it comes :
>
> METHOD Edit() CLASS dw_StammKunden
> dd_StammKundenEdit{SELF,,,{SELF,"BEAB"}}:Show()
> RETURN
>
> hope you don�t have to guess anymore :) ...

From: Stephen Quinn on
Mario

> dd_StammKundenEdit{SELF,,,{SELF,"BEAB"}}:Show()

Also why do you need to pass in SELF twice??
Why pass in a hard coded string ('BEAB')??

If it's because you call the window from various places with different hard
coded strings then I suggest you use SYMBOLs to replace the strings
- they take up less memory to start with
- they're resolved at compile time
- comparisons are probably faster as well

Eg
dd_StammKundenEdit{SELF,,,{SELF,#BEAB }}:Show()

CASE uExtra[2] = #BEAB
CASE uExtra[2] = #BEAB1
CASE uExtra[2] = #BEAB2

As to your error have you checked to see if ALL possible variations of
uExtra[2] are covered in your postinit??
Have you checked for any miss-spelling<g> of the strings (uExtra[2])??

CYA
Steve