|
| Iniciado por guest, 11,oct. 2015 12:08 - 10 respuestas |
| |
| | | |
|
| |
| Publicado el 11,octubre 2015 - 12:08 |
Hi,
I have a application which saves architectural drawings and can be used in several building projects. Often the user has to open my application with different projects several times successively.
My idea was to build a launcher application and the user can choose all projects he wants to open with one click. The Project-windows are running in chrome like tabs.
Now the problem. My core application should be run independently from all other, that means in every tab runs a independently *.exe, better an component.
Any ideas how to do that ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 13:38 |
A few years ago I wrote a sample app for someone that subclasses the main window of another exe in a tab. I will see if I can find it and post you a link to download.
Cheers! ken |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 15:13 |
Hi Ken,
thx.
But meanwhile I´m not sure if this is possible. I need a solution to run multiple independent windev exe or components in a "container" without changing something under the hood in the core application ... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 16:46 |
Michael,
I did something similar, but not as fancy as you want. OI wonder if that is even possible.
I created a component of my application holding ALL object (windows,reports,procedures,etc) of the project. I also created a small starter-app, which "knows" my applications component.
On startup the user chooses a project (all project are read from an inifile) . Each project has it own sub-directory. Inside this map there is the component, which is then loaded This way I can distribute a new version for project X while using a different version in project Y. It is also possible to copy a new version, while users are active. The (current) component is loaded in memory and the corresponding file is not locked. I only have to tell the suers to restart the application. (note: this will only work if there are no significant database changes of course)
When a user needs to work in 2 or more project, he/she start the app several times. They are then visible in the windows taskbar. I don't think you can run different/several intances of the component inside one starter-app. But using the windows-taskbar to switch between project is quite usefull. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 16:51 |
Hi Michael,
Yes its possible. I haven't had time to look for the app, but if I recall, I used the SetParent() API from windows. Again, if I'm remembering correctly, my sample basically hooked the windows notepad window into my window. Do some research on SetParent().
Cheers! Ken |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 16:57 |
Hi Arie,
yes, I do it right so with an other application, but there is only one project.
But interesting, I have an idea:
I could simple copy and rename my component in compoX, compoY, compoZ for project X,Y,Z and the it HAS an independend content.
Ok, then I must only find a way to put it as internal window in the new tab control. I tried to define the main window of my component as internal window but then I can´t run it at design time .... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 19:23 |
Hi, the problem with using components is the fact that within one application only one analysis is allowed to be active. Therefore, e.g. it is that hard to access the Groupware component's data after the start of the application itself. One has to declare and describe the groupware files externally. That's no fun.
Maybe it is not adviseable to make the MDI-parent a WINDEV-MDI-parent window but to generate it as a Windows MDI window with a different tool (VB.NET, C#, Assembler .. who knows?) and to manage the "MDI"-windows (= the applications) from there. Or, another idea: to make the MDI-parent a simple SDI-window with a big dashboard control and have the applications to run there as 'internal windows'. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,octubre 2015 - 21:08 |
Hi,
after a few tests:
Yes, it works ! But I make a "mind" mistake  Every component must compiled in the exe, so I can´t add new (project related) components at runtime to the exe.
It´s so sad ....
Perhaps I can define 5 or 10. More projects has nobody at once. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,octubre 2015 - 02:29 |
Hi Michael,
Again, a few years ago, I came up with a design for dynamically build an application from separate applications that were essentially windev libraries (*.wdl). BTW I'm sure I'm not the first to do this with windev. I've never seen anyone else that did it via web service, but again, doesn't mean it hasn't already been done. At any rate, it is not super complex, but not super easy either. The idea is that you have a web service that your stub application calls upon start up and pulls a list of wdls that are available to merge into the app and how it should merge them.
The core idea is that you will develop various applications and then generate wdls that you use the load / unload functions in WinDev to control.
If you want more details on this, let me know. Just shoot me an email and we can discuss it further.
cheers! Ken |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,octubre 2015 - 08:46 |
Hi Ken,
I find this quite interesting and googles for others using SetParent() This little sample is embedding Word in a vb.net app https://paulbradley.org/embed-word-vb-form/
I wonder if we can also hook into Word events like closing or saving a file? Wouldn't those messages pass the mainparent-window (OUR window) first? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,octubre 2015 - 13:49 |
Hi Arie,
My guess would be yes. You would probably use the Event() function to capture the underlying events being generated by Word and then act accordingly.
Cheers! Ken |
| |
| |
| | | |
|
| | | | |
| | |
|