comp.lang.ada
 help / color / mirror / Atom feed
* graphical output on win xp with gnavi-package
@ 2005-04-07 15:45 Duke Luke
  2005-04-07 23:32 ` Randy Brukardt
                   ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Duke Luke @ 2005-04-07 15:45 UTC (permalink / raw)


Hello,

now most things are working as they're supposed to.
i programmed a nice tetris with the gnavi package and everything is
great.

i have only one problem left: 
when i create a window (canvas) and paint in it, it works as long as i
dont change its focus.
any time i change its focus, the whole window becomes blank and
nothing can be drawn on it further.
=> this means, one cant even click on the window to activize it,
because that would make it blank!

why does this happen and what can i do about it?
do i have to use another package? which?

Greetings,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-07 15:45 graphical output on win xp with gnavi-package Duke Luke
@ 2005-04-07 23:32 ` Randy Brukardt
  2005-04-08 13:57   ` Duke Luke
  2005-04-08 14:52 ` Dmitry A. Kazakov
  2005-04-15 10:04 ` Duke Luke
  2 siblings, 1 reply; 21+ messages in thread
From: Randy Brukardt @ 2005-04-07 23:32 UTC (permalink / raw)


"Duke Luke" <duke_luke@gmx.de> wrote in message
news:e499e546.0504070745.7df0f90b@posting.google.com...
> Hello,
>
> now most things are working as they're supposed to.
> i programmed a nice tetris with the gnavi package and everything is
> great.
>
> i have only one problem left:
> when i create a window (canvas) and paint in it, it works as long as i
> dont change its focus.
> any time i change its focus, the whole window becomes blank and
> nothing can be drawn on it further.
> => this means, one cant even click on the window to activize it,
> because that would make it blank!
>
> why does this happen and what can i do about it?
> do i have to use another package? which?

It's never a good idea to draw directly in a Windows window. Rather, you
should do so in response to the Paint message and call Invalidate to force
the window to be redrawn when needed. The Paint message gets sent (almost)
anytime the window is invalidated, which includes when it gets covered by a
window of another program.

Using Claw, that means overriding the When_Draw action handler and drawing
the window as needed. For an application like yours, you probably would use
a task which updated the positions of the objects as necessary, invalidated
the window, and then delayed until the next clock beat. The window object
would be responsible for redrawing the window as needed.

I don't know precisely how you should do this with GWindows, but I would
expect it is similar (since the underlying Windows is the same). (You could
always use Claw for this, see
http://www.rrsoftware.com/html/prodinf/claw/claw.htm, but I don't expect
that you want to start over. And you shouldn't need to.)

                                Randy.






^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-07 23:32 ` Randy Brukardt
@ 2005-04-08 13:57   ` Duke Luke
  2005-04-08 18:33     ` Randy Brukardt
  0 siblings, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-08 13:57 UTC (permalink / raw)


Yes, that ist exactely my problem. if any window is moved over my
graphic window, everything gets deleted.

How can I force windows to redraw that window? cause after beeing
deleted the window doesn't accept any draw-commands any longer - it
just stays white.



greetings,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-07 15:45 graphical output on win xp with gnavi-package Duke Luke
  2005-04-07 23:32 ` Randy Brukardt
@ 2005-04-08 14:52 ` Dmitry A. Kazakov
  2005-04-08 18:47   ` Duke Luke
  2005-04-15 10:04 ` Duke Luke
  2 siblings, 1 reply; 21+ messages in thread
From: Dmitry A. Kazakov @ 2005-04-08 14:52 UTC (permalink / raw)


On 7 Apr 2005 08:45:58 -0700, Duke Luke wrote:

> now most things are working as they're supposed to.
> i programmed a nice tetris with the gnavi package and everything is
> great.
> 
> i have only one problem left: 
> when i create a window (canvas) and paint in it, it works as long as i
> dont change its focus.
> any time i change its focus, the whole window becomes blank and
> nothing can be drawn on it further.
> => this means, one cant even click on the window to activize it,
> because that would make it blank!
> 
> why does this happen

Because Windows makes "erase background" when it wants to re-draw your
window.

> and what can i do about it?

You have to process WM_PAINT.

> do i have to use another package? which?

Perhaps, you do something wrong with gnavi. I didn't use it, so I can't
tell. It seems that neither your program nor gnavi process WM_PAINT, so
once erased window stay blank. As a guess, maybe you have told to gnavi (or
else it is always so) that your window is "owner-draw", so it does not
attempt to do anything about WM_PAINT.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 13:57   ` Duke Luke
@ 2005-04-08 18:33     ` Randy Brukardt
  0 siblings, 0 replies; 21+ messages in thread
From: Randy Brukardt @ 2005-04-08 18:33 UTC (permalink / raw)



"Duke Luke" <duke_luke@gmx.de> wrote in message
news:e499e546.0504080557.69e94ba2@posting.google.com...
> Yes, that ist exactely my problem. if any window is moved over my
> graphic window, everything gets deleted.
>
> How can I force windows to redraw that window? cause after beeing
> deleted the window doesn't accept any draw-commands any longer - it
> just stays white.

You can't, really. A Windows program should only do drawing when Windows
asks it to. Direct drawing appears to work, but it doesn't really (as you've
found out). You have to move all of your drawing code into a drawing handler
(it's called When_Draw in Claw, dunno about GWindows).

                         Randy Brukardt.






^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 14:52 ` Dmitry A. Kazakov
@ 2005-04-08 18:47   ` Duke Luke
  2005-04-08 20:21     ` Dmitry A. Kazakov
                       ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Duke Luke @ 2005-04-08 18:47 UTC (permalink / raw)


Can you explain that a little further?

I am very new with ada-graphic programming and with windows graphics
(though I'm quite good with ada itself).
If you have no experience with gnavi, it would sure help me, too, if
you explain it on a more general level.

What causes windows to delete my window and how can i use wm_paint to
get my nice background picture back?

Thanks in advance!

Best regards,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 18:47   ` Duke Luke
@ 2005-04-08 20:21     ` Dmitry A. Kazakov
  2005-04-08 20:41     ` Gautier Write-only
  2005-04-08 20:42     ` tmoran
  2 siblings, 0 replies; 21+ messages in thread
From: Dmitry A. Kazakov @ 2005-04-08 20:21 UTC (permalink / raw)


On 8 Apr 2005 11:47:31 -0700, Duke Luke wrote:

> Can you explain that a little further?

Ooch! (:-))

> I am very new with ada-graphic programming and with windows graphics
> (though I'm quite good with ada itself).
> If you have no experience with gnavi, it would sure help me, too, if
> you explain it on a more general level.

It is really difficult to do because I don't know the architecture of
gnavi...

> What causes windows to delete my window and how can i use wm_paint to
> get my nice background picture back?

Windows GUI is messages-oriented. There is at least one messages loop in
each Windows graphical application that handles various messages generated
by various events. The messages loop is also sort of distributed across the
parent-child window hierarchy (that has the effect that some messages might
get swallowed/processed somewhere beneath.)

So a windows GUI application has:

function Windows_Proc
         (  Window  : HWND;
            Message : UINT;
            WPar    : WPARAM;
            LPar    : LPARAM
         )  return BOOL is
begin
   case Message is
      when WM_CLOSE =>
      when WM_PAINT =>     
      when WM_COMMAND =>
         case HIWORD (DWORD (WPar)) is
            when BN_CLICKED =>
               case LOWORD (DWORD (WPar)) is
                  when Some_Button =>
                  when others =>
               end case;
            when others =>
               null;
         end case;
      when WM_INITDIALOG =>
      when others =>
   end case;
   return 0;
end Window_Proc;

Now it all depends on the GUI tool you are using. Some of them, like GTK,
OpenGL hide this mechanics and process all messages internally.

Anyway, when Windows detects that a portion of a window need to be redrawn
it sends series of messages to the window. There are many of them sent to
redraw the window frame, the background, and among them WM_PAINT is sent to
notify (you!) that the client area should be redrawn. Now, depending on
which windows procedure yours augments (remember windows hierarchy?) some
of these messages will be handled (like WM_ERASEBKGND, which causes erasing
the background in your case) some of them will need handling like WM_PAINT.
There could be two reasons why WM_PAINT is not handled by gnavi:

1. gnavi doesn't do it;

2. You did something wrong that prevents gnavi from reacting to WM_PAINT.

If it is really the case 1 (is it?) then you need to identify your window
procedure or its equivalent: gnavi might be able to perform some callback
upon WM_PAINT if you tell it that you need it. From that place do what you
did to paint the window for the first time.

Note that if the window permanently changes its state and need to be
redrawn anyway, then do as the most games do, draw the window from a task,
ignoring WM_PAINT (and also suppress WM_ERASEBKGND.)

-------------
How Windows works is described in MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_01id.asp

But be prepared, if you are among those who think that ARM is hard to
understand, then it is like nursery rhymes compared with MSDN! (:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 18:47   ` Duke Luke
  2005-04-08 20:21     ` Dmitry A. Kazakov
@ 2005-04-08 20:41     ` Gautier Write-only
  2005-04-08 20:42     ` tmoran
  2 siblings, 0 replies; 21+ messages in thread
From: Gautier Write-only @ 2005-04-08 20:41 UTC (permalink / raw)


I did not investigate a lot into your problem. I'd suggest to
try with the latest relaese of GWindows ( http://www.gnavi.org/gwindows/ )
because I observed some similar problems in the current snapshot
(see gnavi's bug-list).
Maybe asking in the gnavi-discuss mailing list will help too.
Also toying with the various samples provided help (e.g. scribble.adb).
Do you have a small sample program to show, reduced to the problem ?
Also, the pathology of Windows' GUI seems sometimes beyond any logic;
you have to try hard! Maybe a look at TeXCAD's sources could help.
HTH
______________________________________________________________
Gautier     --     http://www.mysunrise.ch/users/gdm/index.htm
Ada programming -- http://www.mysunrise.ch/users/gdm/gsoft.htm

NB: For a direct answer, e-mail address on the Web site!



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 18:47   ` Duke Luke
  2005-04-08 20:21     ` Dmitry A. Kazakov
  2005-04-08 20:41     ` Gautier Write-only
@ 2005-04-08 20:42     ` tmoran
  2005-04-09 11:51       ` Duke Luke
  2 siblings, 1 reply; 21+ messages in thread
From: tmoran @ 2005-04-08 20:42 UTC (permalink / raw)


>I am very new with ada-graphic programming and with windows graphics
>...
>What causes windows to delete my window and how can i use wm_paint to
>get my nice background picture back?

  Under Windows, your program is not generally in active control - it is
instead a set of passive responders to user initiated events, clicks,
keys, sliding windows over other windows, etc.  So your drawing needs to
happen when Windows asks for it, for instance when the on-screen window
has just been uncovered.  The computation/database/whatever part of the
program will set up a data structure, and the drawing routine will, at
random times determined by the user, glance at that data and draw
appropriately.  Think of your drawing routine as being an Interrupt
Service Routine.

  Windows doesn't actually use interrupts, however.  What it does is put
"events" into a queue and your program needs to constantly run a polling
loop to see if there are any events in the queue and respond
appropriately.  If the "window needs to be redrawn" event (WM_PAINT) is
queued, then the polling loop needs to call your drawing routine.  Part of
the "event" record from the queue is the information needed by the drawing
routine to know which window needs repainting.  In Claw, the polling loop
is run automatically as a separate task.  Windows are tagged records with
a "procedure When_Draw(Window,...)" as a primitive operation.  You declare
your own "type My_Window_Type is new Window_Type with ..."  and your own
overiding When_Draw.  When the Claw message loop sees a WM_PAINT event, it
calls When_Draw, dispatching on the particular window, and thus your
When_Draw routine for that window is called.

  If your program decides on its own that the window should be repainted
(the data on which it is based has changed, say), it can make an OS call
to "invalidate" the window, which will result in a WM_PAINT being fed to
the message loop, and thus your drawing routine being called.

  You might want to look at our Tri-Ada paper "CLAW, a High Level,
Portable, Ada 95 Binding for Microsoft Windows", which is available
online at www.rrsoftware.com/html/prodinf/triadapaper/triada.html
in particular section 3.1 "Mapping Windows Organization to CLAW".



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-08 20:42     ` tmoran
@ 2005-04-09 11:51       ` Duke Luke
  2005-04-09 18:30         ` tmoran
  0 siblings, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-09 11:51 UTC (permalink / raw)


okay, so everybody seems to be working with claw. so i decided to
start using claw, too.

can somebody give me just a short introduction in how to paint with
claw? is it possible, to set single pixels on a window into a color of
my choice?

or is it - as somebody suggested - no good idea to paint directely
into a window? what can i do instead, to produce graphics?

greetings,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-09 11:51       ` Duke Luke
@ 2005-04-09 18:30         ` tmoran
  2005-04-11  5:37           ` Duke Luke
  2005-04-12 16:18           ` Duke Luke
  0 siblings, 2 replies; 21+ messages in thread
From: tmoran @ 2005-04-09 18:30 UTC (permalink / raw)


>can somebody give me just a short introduction in how to paint with
>claw? is it possible, to set single pixels on a window into a color of
>my choice?
  Download the free version of Claw (www.rrsoftware.com) and look at the
"bigjob" demo program to see a simple program that draws on a window.
To see an example of drawing individual pixels, go to
http://www.adapower.com/index.php?Command=Class&ClassID=GUIExamples&CID=435
and get the source code for Orbitals.  That program shows a 3-D
representation of the probability density of Hydrogen electron orbitals
per the Schrodinger equation, which you probably don't care about.  ;)
But in the "procedure When_Draw" in display.adb you'll see a call to
Claw.Bitmaps.Set_Pixel, which is what you want.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-09 18:30         ` tmoran
@ 2005-04-11  5:37           ` Duke Luke
  2005-04-12 16:18           ` Duke Luke
  1 sibling, 0 replies; 21+ messages in thread
From: Duke Luke @ 2005-04-11  5:37 UTC (permalink / raw)


okay, thanks for this!

I will try it in the next days.


greetings,
Lukas K�nig



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-09 18:30         ` tmoran
  2005-04-11  5:37           ` Duke Luke
@ 2005-04-12 16:18           ` Duke Luke
  2005-04-12 17:24             ` tmoran
  1 sibling, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-12 16:18 UTC (permalink / raw)


why can't i install claw?

when i execute mkshapes.bat as explained in the installation
instructions, gcc tells me that the binding failed.

i'll paste the error message to the end of this message. All above the
bind works well.


(btw. what does this mean - i didn't do it: "Set Gnat path environment
appropriately")

greetings,
Lukas


Error message:

gnatbind -x shapes.ali
error: elaboration circularity detected
info:    "claw.low_dialog (spec)" must be elaborated before
"claw.low_dialog (body)"
info:       reason: spec always elaborated before body

info:    "claw.edit.multiline (spec)" must be elaborated before
"claw.low_dialog (body)"
info:       reason: with clause
info:    "claw.edit.multiline (spec)" must therefore be elaborated
before "claw.low_dialog (spe
c)"
info:       (because "claw.low_dialog (spec)" has a pragma
Elaborate_Body)

info:    "claw.low_dialog (body)" must be elaborated before
"claw.edit.multiline (spec)"
info:       reason: Elaborate_All probably needed in unit
"claw.edit.multiline (spec)"
info:       recompile "claw.edit.multiline (spec)" with -gnatwl for
full details
info:          "claw.low_dialog (body)"
info:             must be elaborated along with its spec:
info:          "claw.low_dialog (spec)"
info:             which is withed by:
info:          "claw.low_wnd_proc (body)"
info:             which must be elaborated along with its spec:
info:          "claw.low_wnd_proc (spec)"
info:             which is withed by:
info:          "claw.edit (body)"
info:             which must be elaborated along with its spec:
info:          "claw.edit (spec)"
info:             which is withed by:
info:          "claw.edit.multiline (spec)"

gnatmake: *** bind failed.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-12 16:18           ` Duke Luke
@ 2005-04-12 17:24             ` tmoran
  2005-04-13 15:19               ` Duke Luke
  0 siblings, 1 reply; 21+ messages in thread
From: tmoran @ 2005-04-12 17:24 UTC (permalink / raw)


>why can't i install claw?
>...
>gnatbind -x shapes.ali
>error: elaboration circularity detected
  Section 11.9 of the Gnat 3.15p User Guide talks about this.  They
suggest you change the structure of the program, but do say this may
be impractical.  Their second suggestion is to use the "-gnatE"
option so "The behavior is then exactly as specified in the Ada 95
Reference Manual."  Claw assumes Ada 95 behavior.
  Gnat used to follow the Ada rules on this, but they decided to change
the default behavior to something else with Gnat 3.15p, thus breaking the
Claw installation instructions.  The Claw instructions for Gnat users
clearly need to be changed to reflect this.  BTW, IMHO you should also use
-gnato to get Ada behavior on overflow.  Failing to do this will not
generate any compile errors, any errors would occur at runtime.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-12 17:24             ` tmoran
@ 2005-04-13 15:19               ` Duke Luke
  2005-04-13 18:16                 ` tmoran
  0 siblings, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-13 15:19 UTC (permalink / raw)


tmoran@acm.org wrote in message news:<9JOdnY_yzN3XmcHfRVn-iQ@comcast.com>...
> >why can't i install claw?
> >...
> >gnatbind -x shapes.ali
> >error: elaboration circularity detected
>   Section 11.9 of the Gnat 3.15p User Guide talks about this.  They
> suggest you change the structure of the program, but do say this may
> be impractical.  Their second suggestion is to use the "-gnatE"
> option so "The behavior is then exactly as specified in the Ada 95
> Reference Manual."  Claw assumes Ada 95 behavior.
>   Gnat used to follow the Ada rules on this, but they decided to change
> the default behavior to something else with Gnat 3.15p, thus breaking the
> Claw installation instructions.  The Claw instructions for Gnat users
> clearly need to be changed to reflect this.  BTW, IMHO you should also use
> -gnato to get Ada behavior on overflow.  Failing to do this will not
> generate any compile errors, any errors would occur at runtime.

It doesn't work that way either! What does this -gnatE option mean?
How is it possible that the authors of claw didnt respect that
possibility? This concerns every user of gnat 3.15, doesn't it? What
else can I try to solve the problem?

Greetings,
Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-13 15:19               ` Duke Luke
@ 2005-04-13 18:16                 ` tmoran
  2005-04-14  6:24                   ` Duke Luke
  0 siblings, 1 reply; 21+ messages in thread
From: tmoran @ 2005-04-13 18:16 UTC (permalink / raw)


> > >gnatbind -x shapes.ali
> > >error: elaboration circularity detected
> > ...
> > Their second suggestion is to use the "-gnatE"
> > option so "The behavior is then exactly as specified in the Ada 95
> > Reference Manual."  Claw assumes Ada 95 behavior.

> It doesn't work that way either! What does this -gnatE option mean?
  What do you mean by "It doesn't work that way either!"?  Did you modify
mkshapes.bat so the gnatmake line reads
gnatmake -gnatE -gnato -O2 shapes -largs -mwindows shapes.rbj
and you still get "error:  elaboration circularity detected"?
  "-gnatE" means use dynamic, instead of static, elaboration checking.
For more discussion search for "gnatE" in the Gnat Users Guide.

> How is it possible that the authors of claw didnt respect that possibility?
  This author of Claw at least did not predict that ACT would change,
from one version to the next, the default behavior of "gnatmake" so it
would no longer compile Ada code.

> This concerns every user of gnat 3.15, doesn't it?
  This does concern every user of gnat 3.15, but I presume ACT finds that
most of their user's programs are simpler (in terms of elaboration) and
their static checking works fine.  Note that static checking (unlike the
case for -gnato) does not ignore errors - it is *more* restrictive.  So if
a program works with static checking it doesn't need a -gnatE.

> What else can I try to solve the problem?
  Insert the -gnatE option on the gnatmake line in mkshapes.bat et al.
If that doesn't work, please post the exact error message and the
exact content of the failing mkshapes.bat file.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-13 18:16                 ` tmoran
@ 2005-04-14  6:24                   ` Duke Luke
  2005-04-14 17:54                     ` tmoran
  0 siblings, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-14  6:24 UTC (permalink / raw)


> > It doesn't work that way either! What does this -gnatE option mean?
>   What do you mean by "It doesn't work that way either!"?  Did you modify
> mkshapes.bat so the gnatmake line reads
> gnatmake -gnatE -gnato -O2 shapes -largs -mwindows shapes.rbj
> and you still get "error:  elaboration circularity detected"?

-Yes!

Here's the whole thing:



C:\zwisch\claw>mkshapes.bat

C:\zwisch\claw>gnatmake -gnatE -gnato -O2 shapes -largs -mwindows
shapes.rbj
gnatbind -x shapes.ali
error: elaboration circularity detected
info:    "claw.low_dialog (spec)" must be elaborated before
"claw.low_dialog (body)"
info:       reason: spec always elaborated before body

info:    "claw.edit.multiline (spec)" must be elaborated before
"claw.low_dialog (body)"
info:       reason: with clause
info:    "claw.edit.multiline (spec)" must therefore be elaborated
before "claw.low_dialog (spe
c)"
info:       (because "claw.low_dialog (spec)" has a pragma
Elaborate_Body)

info:    "claw.low_dialog (body)" must be elaborated before
"claw.edit.multiline (spec)"
info:       reason: Elaborate_All probably needed in unit
"claw.edit.multiline (spec)"
info:       recompile "claw.edit.multiline (spec)" with -gnatwl for
full details
info:          "claw.low_dialog (body)"
info:             must be elaborated along with its spec:
info:          "claw.low_dialog (spec)"
info:             which is withed by:
info:          "claw.low_wnd_proc (body)"
info:             which must be elaborated along with its spec:
info:          "claw.low_wnd_proc (spec)"
info:             which is withed by:
info:          "claw.edit (body)"
info:             which must be elaborated along with its spec:
info:          "claw.edit (spec)"
info:             which is withed by:
info:          "claw.edit.multiline (spec)"

gnatmake: *** bind failed.

C:\zwisch\claw>


greetings,

Lukas K�nig



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-14  6:24                   ` Duke Luke
@ 2005-04-14 17:54                     ` tmoran
  0 siblings, 0 replies; 21+ messages in thread
From: tmoran @ 2005-04-14 17:54 UTC (permalink / raw)


>>   What do you mean by "It doesn't work that way either!"?  Did you modify
>> mkshapes.bat so the gnatmake line reads
>> gnatmake -gnatE -gnato -O2 shapes -largs -mwindows shapes.rbj
>> and you still get "error:  elaboration circularity detected"?
>
>-Yes!
  I'll bet the additional compiler option does not convince Gnat that
"things have changed, a recompilation is needed".  So when you run
"mkshapes" all it does is rebind, not recompile.  erase *.o and *.ali so
Gnat will be forced to actually recompile everything with the -gnatE option.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-07 15:45 graphical output on win xp with gnavi-package Duke Luke
  2005-04-07 23:32 ` Randy Brukardt
  2005-04-08 14:52 ` Dmitry A. Kazakov
@ 2005-04-15 10:04 ` Duke Luke
  2005-04-15 17:56   ` tmoran
  2 siblings, 1 reply; 21+ messages in thread
From: Duke Luke @ 2005-04-15 10:04 UTC (permalink / raw)


okay, you were right!

now it compiled and linked properly (except diners, which gave me a
linking-error, but that is not my biggest problem now...).
i was very pleased that it worked so well, but soon i got sad again
:-(

after starting one of the .exe - files that had just been built,
windows gave me a message window saying:

"This application has failed to start because .dll was not found.
Re-installing the application may fix this problem."

unfortunatelly the same message comes now every time i try to start my
old version of tetris, too! (the one i told you about - where the
window gets ereased every time you move a window)

so i can neither use claw, nor recompile my old tetris (older versions
that i have compiled before still work - what ever this means)

That's all i can tell you about my windows xp behaviour...

do you know what that all means? I searched the web, but couldn't find
anything helping.

greetings,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-15 10:04 ` Duke Luke
@ 2005-04-15 17:56   ` tmoran
  2005-04-16  9:58     ` Duke Luke
  0 siblings, 1 reply; 21+ messages in thread
From: tmoran @ 2005-04-15 17:56 UTC (permalink / raw)


>"This application has failed to start because .dll was not found.
>...
>unfortunatelly the same message comes now every time i try to start my
>old version of tetris, too!
  So one of the newly compiled programs, and your existing tetris.exe,
generate this message, but nothing else does?  You might want to pipe
the message to a file, then examine the file with a debugger to see if
there are any invisible characters just ahead of the . in .dll
  You can also do a text search of the offending *.exe's for ".dll".
(For instance in command prompt 'find /i ".dll" tetris.exe')  Then
check your disk to see that each mentioned dll actually exists.  Once
you find which dll is actually missing, restore it from backup.  (And
if files are randomly disappearing from your computer, you've got
other problems to fix, too.)



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: graphical output on win xp with gnavi-package
  2005-04-15 17:56   ` tmoran
@ 2005-04-16  9:58     ` Duke Luke
  0 siblings, 0 replies; 21+ messages in thread
From: Duke Luke @ 2005-04-16  9:58 UTC (permalink / raw)


i reinstalled an older version of gnat (3.13) and now everything works
- even my old tetris!!

(the dll - error i don't understand: all dlls i found in tetris.exe
were existing in windows\system32)

anyway:
:-)

Thank you very much so far!

(But i'll surly have many new questions soon... ;-) )

Greetings,

Lukas



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2005-04-16  9:58 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-07 15:45 graphical output on win xp with gnavi-package Duke Luke
2005-04-07 23:32 ` Randy Brukardt
2005-04-08 13:57   ` Duke Luke
2005-04-08 18:33     ` Randy Brukardt
2005-04-08 14:52 ` Dmitry A. Kazakov
2005-04-08 18:47   ` Duke Luke
2005-04-08 20:21     ` Dmitry A. Kazakov
2005-04-08 20:41     ` Gautier Write-only
2005-04-08 20:42     ` tmoran
2005-04-09 11:51       ` Duke Luke
2005-04-09 18:30         ` tmoran
2005-04-11  5:37           ` Duke Luke
2005-04-12 16:18           ` Duke Luke
2005-04-12 17:24             ` tmoran
2005-04-13 15:19               ` Duke Luke
2005-04-13 18:16                 ` tmoran
2005-04-14  6:24                   ` Duke Luke
2005-04-14 17:54                     ` tmoran
2005-04-15 10:04 ` Duke Luke
2005-04-15 17:56   ` tmoran
2005-04-16  9:58     ` Duke Luke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox