[fpc-pascal] FPC Graphics options?

Nikolay Nikolov nickysn at gmail.com
Tue May 16 13:45:14 CEST 2017



On 05/16/2017 01:27 PM, James Richters wrote:
>
> > Hmm? But he only wants to change the title of the window. Even on 
> Windows that should work from a different thread. However a platform 
> independent SetWindowTitle() for ptcgraph would be rather useful I guess.
>
> I did a quick test and ran one program that did a writeln of it’s 
> handle, then put that handle in another program and ran it and I was 
> able to change the window title of the first program with the second 
> program.   So if ptcgraph also had the graphwindow : handle variable I 
> think it would work.
>
> >Though I'd like to know why he needs ShowWindow()...
>
> My application is purposefully designed not to use a mouse…  It’s CNC 
> control software and mice, even optical ones out in dusty shops are 
> tedious and difficult… it’s often difficult to even find a place to 
> put a mouse, nevermind seeing a pointer when the screen is full of 
> sawdust.   So I have keyboard commands that get me back to the console 
> window where I can look at some things like the contents of some 
> variables, then when I’m done I hit another key and it puts me back on 
> the graphics window.   I just use both crt and pctcrt  and do things 
> like crt.readkey and pctcrt.readkey to know which screen got the 
> input.   I can get by without ShowWindow() because I can alt-tab 
> between the windows without a mouse, and admittedly there isn’t a huge 
> use for the console window, but it is a lot nicer for the program to 
> put the correct window on top by itself.
>
> It would be nice if I could:
>
>  1. The above mentioned ShowWindow()
>  2. Make the graph window full screen always, it normally does not
>     come up full screen it’s the correct size for full screen but
>     mispositioned.. I can probably fix this in a shortcut that starts
>     it but would be nice if the program itself forced full screen
>
Yes, you can do this, if you set:

   FullscreenGraph := true;

In the beginning of your program (before InitGraph). Tonight I'll also 
add the option for changing the title bar text, when in windowed mode.
>
> 1.
>  2. Get rid of the windows titlebar all together, I could just draw my
>     own.   I was able to shut the title bar off with the graph unit,
>     but the window would still be the size of the screen minus the
>     bar.   I believe if the titlebar was defined to be shut off before
>     the window was created, or shortly after then I could have
>     completely full screen with no title bar. But I don’t know where
>     or how the window is created to do that.
>  3. If I can’t get rid of the titlebar, then setting a custom window
>     title would be nice, preferably after my program was running so I
>     could put status information up there, but if not possible then a
>     one time custom title bar name would be great.
>
> James
>
> *From:* fpc-pascal [mailto:fpc-pascal-bounces at lists.freepascal.org] 
> *On Behalf Of *Sven Barth via fpc-pascal
> *Sent:* Tuesday, May 16, 2017 2:00 AM
> *To:* FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org>
> *Cc:* Sven Barth <pascaldragon at googlemail.com>
> *Subject:* Re: [fpc-pascal] FPC Graphics options?
>
> Am 16.05.2017 02:46 schrieb "Nikolay Nikolov" <nickysn at gmail.com 
> <mailto:nickysn at gmail.com>>:
> >> I also no longer have the 'graphwindow' handle variable so I had to 
> comment out anything that was using it like
> >>
> >> SetWindowTextA(graphicwindow,graphwindowtext);
> >> And
> >> ShowWindow(graphwindow, SW_SHOW);
> >> So I just commented them out for now.    I'm hoping there is a way 
> to get around the graphwindow variable because I was using the above 2 
> functions and I don't know how else to determine the graphic window 
> handle... but the performance gain and ease of implementation will 
> make working out any other issues worth the effort.  Any advice on how 
> I can capture the graph window handle would be appreciated
> >
> > Unfortunately, you can't do that and it's actually the main reason 
> why ptcgraph is fast. Even if you modify the ptcgraph source, so that 
> you get the window handle, it would do you no good, because the window 
> is created in a different thread and this means that you cannot draw 
> to the window from your program's thread. In fact, all the ptcgraph 
> drawing routines actually render to an internal software buffer and 
> issue no winapi drawing calls at all. That's the reason ptcgraph is 
> fast and the regular graph unit is slow - the winapi drawing routines 
> are really the bottleneck in this case and not the speed of the code, 
> generated by FPC.
>
> Hmm? But he only wants to change the tttle of the window. Even on 
> Windows that should work from a different thread. However a platform 
> independent SetWindowTitle() for ptcgraph would be rather useful I guess.
>
> Though I'd like to know why he needs ShowWindow()...
>
> Regards,
> Sven
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170516/32436f0d/attachment.html>


More information about the fpc-pascal mailing list