Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

My Winmenus using wingraph and Graph3D units were updated to version 1.1

9 views
Skip to first unread message

Horizon68

unread,
Sep 9, 2018, 3:15:40 PM9/9/18
to
Hello,

Read this:


Here is my new project that i have extended , you can port it to C++:

My Winmenus using wingraph and Graph3D units were updated to version 1.1

I have just included a Graph3D unit that i have enhanced and that
looks like graph unit of Turbo Pascal, and i have included
a cube3d.pas demo and its windows executable, please run the windows
executable called cube3d.exe inside the zipfile to see how Graph3D unit
is powerful, and please read the readme file inside the zipfile to know
more.

I have implemented Winmenus using wingraph, this one is graphical, i
have also included an Opengl demo and other demos , just execute the
real3d1.exe executable inside the zipfile to see how it is powerful, i
will soon enhance much more my Winmenus.

Now it is both compatible with Delphi and with FreePascal, now
it works with Delphi tokyo, but there is only one difference between
Delphi and FreePascal, the double click with the left button of the
mouse of freepascal is replaced in Delphi with a one click with the
middle button of the mouse to avoid a problem.

Description:

Drop-Down Menu widget using the Object Pascal wingraph unit , it
supports keyboard and mouse. Please look at the real3d1.pas demo inside
the zip file, i have included its 64 bit executable, please run it and
see(please double click with the mouse on the items to execute and click
on the middle mouse to stop the demo, and press escape to exit from the
demo).

And use the 'Up' and 'Down' and 'PageUp and 'PageDown' to scroll the menu..
And 'Enter' to select an item from the menu..
And the 'Esc' on the keyboard to exit from the menu..

and right arrow and left arrow to scroll on the left or on the right of
the menu

Winmenus is event driven, i have to explain it more to you to understand
more...

At first you have to create your Widget menu by executing something like
this:

Menu1:=TMenu.create(5,5);

This will create a Widget menu at the coordinate (x,y) in characters = (5,5)

After that you have to set your callback function, cause my Winmenus is
event driven, so you have to add an item with AddItem() and set the
callback function at the same time, like this:

AddItem('First 3D opengl demo',test1);

test1 will be the callback function.

When you execute menu1.execute(false) with a parameter equal to false my
Winmenus widget will draw your menu without waiting for your input and
events, when you set the parameter of the execute() method to true it
will wait for your input and events, if the parameter of the execute
method is true and the returned value of the execute method ctExit that
means you have pressed on the Escape key to exit.

About hte Graph3D unit, it looks like the Graph unit of turbo pascal but
it's for 3D graphism, and to understand the variables Rho,Theta,Phi,DE
of the InitProj() method of Graph3D unit, please read what's below:

When you run the demo program that is called demo.pas , when you click
"Cube3D demo", here is the keys of the keyboard that permits you to run it:

Right arrow: to increase the angle Theta(that is the variable Theta) to
move in the plane XY anti-clockwise.

Left arrow: to decrease the angle Theta(that is the variable Theta) to
move in the plane XY clockwise.

Top arrow: to increase the Phi(that is variable Phi) angle to move up
and look at the cube from above.

Bottom arrow: to decrease the Phi(that is variable Phi) angle to move
down and look at the cube from below.

Key A: to decrease R(that is variable Rho) to get closer to the cube, we
can even penetrate it and pass behind, in the latter case the image
obtained will be the opposite.

Key E: to increase R(that is variable Rho) to move away from the cube.

Key +: to increase the distance D(that is variable DE) between the
screen and the eye, this causes an enlargement of the image.

Key -: to decrease the distance D(that is variable DE) between the
screen and the eye, this causes the image to shrink and possibly be an
inverse magnification if D becomes negative, ie if the screen passes
behind the observer.

Key C: to move from perspective projection to parallel projection and
vice versa. During this toggle the parameters which were current are
stored in auxiliary variables (RhoResp, DEResp for the perspective and
RhoPara, DEPara for the parallel projection) in order to be able to
return to it correctly afterwards.

Key F: To end the runnning program.


You can download my Winmenus verionn 1.1 from:

https://sites.google.com/site/scalable68/winmenus-using-wingraph



{$DEFINE CPU32} for 32 bit systems

{$DEFINE CPU64} for 64 bit systems


***********************************************************
IMPORTANT NOTE:
This software is provided 'as-is', without any express or
implied warranty. In no event will the author be held
liable for any damages arising from the use of this
software.
Permission is granted to anyone to use this software for
any purpose, including commercial applications and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented,
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is
not required.

2. This notice may not be removed or altered from any
source distribution.
***********************************************************

If you make some money with my softwares in commercial projects, be kind
to make a donation to me in form of an amount of money. To make this
donation, please contact me by email and i will give you my personal
information to where you will send this donation.

Disclaimer:

This software is provided on an "as-is" basis, with no warranties,
express or implied. The entire risk and liability of using it is yours.
Any damages resulting from the use or misuse of this software will be
the responsibility of the user.


Thank you.

Amine Moulay Ramdane.

0 new messages