Multiscreen program - Printable Version +- QB64 Phoenix Edition (https://qb64phoenix.com/forum) +-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1) +--- Forum: Prolific Programmers (https://qb64phoenix.com/forum/forumdisplay.php?fid=26) +---- Forum: SMcNeill (https://qb64phoenix.com/forum/forumdisplay.php?fid=29) +---- Thread: Multiscreen program (/showthread.php?tid=2858) |
Multiscreen program - SMcNeill - 07-11-2024 Code: (Select All)
Inspired by Tempodi's topic: https://qb64phoenix.com/forum/showthread.php?tid=2855 Here, I wanted to create a true multi-screen program. Nothing fancy, but something nice and simple to showcase how easy it is to actually do something like this. Try run this: 1) Run this. 2) Run a second version of this at the same time while the first version is running. Then let both versions run for a complete cycle or two, to see the simple effect. Note: You may need to jump through whatever bells and whistles your OS requires for network/TCP-IP communications and such with your FireWall and Security. RE: Multiscreen program - NakedApe - 07-11-2024 Very cool! It (they) ran with no issues on my Mac. More dark magic from the Amazing Foo. RE: Multiscreen program - SMcNeill - 07-11-2024 The first post was a very simple example of how you'd use two programs and have them communicate with each other, to produce a "multi-screen" program. Below is a better example of this process at work, for those who might be interested in just running ONE program and letting it produce the multi-screens and handle everything for us. Code: (Select All)
Note that this is a little different than before. Here, you just run this program and it'll handle making both screens and interacting with them. Also notice that once you _EXIT from one screen, it'll also automatically exit from the other screen as well. Two screens, working together for one program, and both ending at the same time. It this *isn't* a "multi-screen" program, I don't know what the heck it might actually be classified as. RE: Multiscreen program - Pete - 07-12-2024 Okay, now that Biden is done ****ing in his big boy pants, here is what I put together a few years back involving two screen communication over tcp/ip... Code: (Select All)
Code: (Select All)
To get it to work, compile the second one as: Messenger_Client_LM.exe Next, SAVE and RUN the first one as: Messenger_Host_LM.exe Type a message in the host and press Enter to send it. It will appear in the client, which will then prompt you to make a reply. Note: It uses _SCREENCLICK for focus, so don't move the windows. If anyone knows a better API focus method, that actually works in practice, that would be nice. Pete RE: Multiscreen program - SMcNeill - 07-12-2024 Aye. You see a lot of programs like this -- any chat server/client, or any multiplayer game works in this manner. One program hosts; one program is the client. You're right -- it's very similar to what I'm doing here. The only real difference is I'm letting one program do both things for us, so it's BOTH the client and the host, and the host is doing all the actual work and calculations while the client has a much smaller area of responsibility. Where do I see something like this perhaps being useful? Mainly for folks who may want to create custom pop-up windows, similar to our _MESSAGEBOX or _INPUTBOX and such. Structure your main program so it can handle command line instructions. When you need a custom pop-up, SHELL Command$(0) with the proper parameter, and start a second instance of your program which uses that to create the pop-up for you. Let both programs communicate back and forth, until the pop-up is finished, then close it and return control back to the main program. I think that's about the main thing I'd use it for, I guess. RE: Multiscreen program - TempodiBasic - 07-14-2024 Hi Steve it is a wonderful example! Here the resut that I've got at its first run. It shows an Y-order pass through the two applications. I was thinking how modify the code to get an One Y ordered scale to pass through the two applications. This may need the absolute Y cohordinates of the text that goes through. |