[Lazarus] GUI frontend to a console application
Hi, This is probably more related to unix systems... Has anybody got a small sample application, some documentation or is a sample included in Lazarus that shows how to go about writing a GUI frontend to a console application? For our company I want to implement a GUI app to help them setup a few basic things on a Linux system and interact with some console apps. Our users are NOT tech-savy, so I need a GUI to help them along. Any idea how I go about this? Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Le Tue, 24 Feb 2009 10:46:43 +0200, Graeme Geldenhuys graemeg.li...@gmail.com a écrit : in Lazarus that shows how to go about writing a GUI frontend to a console application? FreeVision? (fpcsrc/2.2.x/packages/fv) I don't know if it's still working, I din't use it for years now and I can't compile the example project. If it works for you, any TurboVision doc sample apps can help you. Regards, Thierry -- Toraka Bilaogy : http://torakabilaogy.blogspot.com Le 'salon' Madagascar : http://friendfeed.com/rooms/madagascar (New!) Thierry sur Facebook : http://profile.to/thierryandriamirado/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
On Tue, Feb 24, 2009 at 05:43:37AM +0100, Hans-Peter Diettrich wrote: I think the problem that is bigger than such a cache is mem management. SynEdit keeps allocating/deallocating a lot = that leads to fragments in the fpc mem-mgmt = and that could cause a slow down.. Now I could spot the trouble source: it's fpdoc! Interesting, I'm just optimizing a part of that. http://bugs.freepascal.org/view.php?id=12953 What exactly is slow in fpdoc? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Tue, Feb 24, 2009 at 12:43:43PM +0300, Thierry Andriamirado wrote: in Lazarus that shows how to go about writing a GUI frontend to a console application? FreeVision? (fpcsrc/2.2.x/packages/fv) I don't know if it's still working, I din't use it for years now and I can't compile the example project. If it works for you, any TurboVision doc sample apps can help you. It is working largely. The example also compiles.What error do you get ? ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
On Tue, 24 Feb 2009 11:36:25 +0100 Marco van de Voort mar...@stack.nl wrote: On Tue, Feb 24, 2009 at 05:43:37AM +0100, Hans-Peter Diettrich wrote: I think the problem that is bigger than such a cache is mem management. SynEdit keeps allocating/deallocating a lot = that leads to fragments in the fpc mem-mgmt = and that could cause a slow down.. Now I could spot the trouble source: it's fpdoc! Interesting, I'm just optimizing a part of that. http://bugs.freepascal.org/view.php?id=12953 What exactly is slow in fpdoc? I guess he meant the fpdoc editor in the IDE, not the fpdoc program. Mattias ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Tue, Feb 24, 2009 at 11:43 AM, Thierry Andriamirado thierry.andriamir...@free.fr wrote: FreeVision? (fpcsrc/2.2.x/packages/fv) I didn't mean writing a GUI in the console. I meant a true GUI app (LCL or fpGUI based), which uses a console application as the backend. For example, Linux has many GUI frontends for programs like makeiso, burncd, cdrecord, cvs, mpg123 etc... eg: FLTK burncd GUI frontend for burncd http://linux.softpedia.com/get/Programming/UI-User-Interfaces-/FLTK-burncd-GUI-frontend-3184.shtml bburn GUI frontend for mkisofs/cdrecord http://savannah.nongnu.org/projects/bburn/ Gnome-Toaster - gui frontend for cdrecord http://gnometoaster.rulez.org/ Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
2009/2/24 Graeme Geldenhuys graemeg.li...@gmail.com: On Tue, Feb 24, 2009 at 2:41 PM, Graeme Geldenhuys graemeg.li...@gmail.com wrote: For example, Linux has many GUI frontends for programs like makeiso, burncd, cdrecord, cvs, mpg123 etc... The most obvious example would probably be all the GUI frontends available for GDB debugger. :-) I have no clue how to write such a GUI application. Anybody know? it depends how the back-end works. your gui would set the options to the back-end, start it, then read and write from the back-end. you can do all of this with tprocess henry ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Dienstag, 24. Februar 2009 13:46:21 Graeme Geldenhuys wrote: On Tue, Feb 24, 2009 at 2:41 PM, Graeme Geldenhuys graemeg.li...@gmail.com wrote: For example, Linux has many GUI frontends for programs like makeiso, burncd, cdrecord, cvs, mpg123 etc... The most obvious example would probably be all the GUI frontends available for GDB debugger. :-) I have no clue how to write such a GUI application. Anybody know? Just take TProcess class and run your console app. Then you can pass input and read output from there. I think there is some example in the wiki. For a more detailed example you can also look at my mplayer class. http://svn.berlios.de/svnroot/repos/cactusjukebox/source/mplayer.pas It's an interface to mplayer console app. Sebastian ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Graeme Geldenhuys wrote: Hi, This is probably more related to unix systems... Has anybody got a small sample application, some documentation or is a sample included in Lazarus that shows how to go about writing a GUI frontend to a console application? While it isn't a small example. The IDE itself contains such code wrapping gdb. debugger\cmdlinedebugger.pp It will be similar (probably easier) if the command line app is *not* interactive. Best Regards Martin ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] buglet in rxnew package
Luca Olivetti escreveu: I found that the rxnew package (today svn version) had the wrong slash in the Usage tab, it was $(PkgOutDir)/ instead of $(PkgOutDir)\, (being PathDelim Value =\) so that it generated a bogus path in idemake.cfg and the install failed (with the somewhat cryptic message that it couldn't fine the unit rxnew.pas). Since the final slash/backslash is automatically added by the ide, maybe there's a bug somewhere else. The bug was already reported and fixed. The package needs to be tweaked anyway. Luiz ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Tue, Feb 24, 2009 at 3:06 PM, Sebastian Kraft sebastian_kr...@gmx.de wrote: For a more detailed example you can also look at my mplayer class. http://svn.berlios.de/svnroot/repos/cactusjukebox/source/mplayer.pas It's an interface to mplayer console app. This will come in very handy. Thanks Sebastian! Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Tue, Feb 24, 2009 at 3:08 PM, Martin Friebe laza...@mfriebe.de wrote: It will be similar (probably easier) if the command line app is *not* interactive. The console apps we want to wrap works similar to the SubVersion (svn) command line client. Execute with certain parameters and read back the results, which must be displayed in a GUI form via various components. Some console apps which we will be writing ourselves will output % progress, which we would like to represent with a TProgressBar. The reason we want both console and a GUI wrapper is so that we can script/automate the console app, but also allow the user to run it manually via a easier to use GUI frontend. Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
On Tue, Feb 24, 2009 at 2:50 PM, ik ido...@gmail.com wrote: The svn integration in Lazarus contain good example on how to do it. And you can also use my code: http://ik.homelinux.org/projects/files/mazrim-nx.tar.gz Thanks Ido, that's exactly what I wanted to know. Never thought to look at the svn integration code. :) Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Graeme Geldenhuys schreef: On Tue, Feb 24, 2009 at 2:41 PM, Graeme Geldenhuys graemeg.li...@gmail.com wrote: For example, Linux has many GUI frontends for programs like makeiso, burncd, cdrecord, cvs, mpg123 etc... The most obvious example would probably be all the GUI frontends available for GDB debugger. :-) I have no clue how to write such a GUI application. Anybody know? Browsing the projects using Lazarus on the wiki, I got to http://www.ullihome.de/index.php/QFront I bet there are more on that page. And the most (all?) of the examples on http://wiki.lazarus.freepascal.org/Executing_External_Programs are GUIs calling console apps. Vincent ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Greek Lazarus Users and Greek translation of Lazarus
For the -few- Greeks in this mailing list, I made a Google Group for us which can be found here: http://groups.google.com/group/greek-lazarus-users Also I've started a Greek translation for Lazarus which can be found at the above group's files. Note that it is still in early form and thus not usable (only a few strings have been translated so far), but its better to have something early than late. Kostas Bad Sector Michalopoulos ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] File open dialog doesn't work on an user account in Mac OS X
More tests are required. I've anwered to you in the private email. Thanks, Dmitry ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
It simple, you need to use TProcess (TProcessUTF8 if you must), and pipes. if you need input as well as output then you need to work with them both. The svn integration in Lazarus contain good example on how to do it. And you can also use my code: http://ik.homelinux.org/projects/files/mazrim-nx.tar.gz Ido On Tue, Feb 24, 2009 at 10:46 AM, Graeme Geldenhuys graemeg.li...@gmail.com wrote: Hi, This is probably more related to unix systems... Has anybody got a small sample application, some documentation or is a sample included in Lazarus that shows how to go about writing a GUI frontend to a console application? For our company I want to implement a GUI app to help them setup a few basic things on a Linux system and interact with some console apps. Our users are NOT tech-savy, so I need a GUI to help them along. Any idea how I go about this? Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] buglet in rxnew package
En/na Luiz Americo Pereira Camara ha escrit: Luca Olivetti escreveu: I found that the rxnew package (today svn version) had the wrong slash in the Usage tab, it was $(PkgOutDir)/ instead of $(PkgOutDir)\, (being PathDelim Value =\) so that it generated a bogus path in idemake.cfg and the install failed (with the somewhat cryptic message that it couldn't fine the unit rxnew.pas). Since the final slash/backslash is automatically added by the ide, maybe there's a bug somewhere else. The bug was already reported and fixed. Where should bugs for rxnew (and ccr in general) be reported? It doesn't seem that it uses the bugtracker at sourceforge and at bugs.freepascal.org I couldn't find this issue. The package needs to be tweaked anyway. What do you mean? Bye -- Luca Olivetti Wetron Automatización S.A. http://www.wetron.es/ Tel. +34 93 5883004 (Ext.133) Fax +34 93 5883007 ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] buglet in rxnew package
Luiz Americo Pereira Camara escreveu: Luca Olivetti escreveu: I found that the rxnew package (today svn version) had the wrong slash in the Usage tab, it was $(PkgOutDir)/ instead of $(PkgOutDir)\, (being PathDelim Value =\) so that it generated a bogus path in idemake.cfg and the install failed (with the somewhat cryptic message that it couldn't fine the unit rxnew.pas). Since the final slash/backslash is automatically added by the ide, maybe there's a bug somewhere else. The bug was already reported and fixed. The package needs to be tweaked anyway. The bug report: http://bugs.freepascal.org/view.php?id=13212 Luiz ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] buglet in rxnew package
En/na Luca Olivetti ha escrit: En/na Luiz Americo Pereira Camara ha escrit: Luca Olivetti escreveu: I found that the rxnew package (today svn version) had the wrong slash in the Usage tab, it was $(PkgOutDir)/ instead of $(PkgOutDir)\, (being PathDelim Value =\) so that it generated a bogus path in idemake.cfg and the install failed (with the somewhat cryptic message that it couldn't fine the unit rxnew.pas). Since the final slash/backslash is automatically added by the ide, maybe there's a bug somewhere else. The bug was already reported and fixed. Where should bugs for rxnew (and ccr in general) be reported? It doesn't seem that it uses the bugtracker at sourceforge and at bugs.freepascal.org I couldn't find this issue. And, btw, the problematic lpk file is still the only one available at the svn repository: http://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/rx/rxnew.lpk?revision=712view=markup Bye -- Luca Olivetti Wetron Automatización S.A. http://www.wetron.es/ Tel. +34 93 5883004 (Ext.133) Fax +34 93 5883007 ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Graeme Geldenhuys escreveu: On Tue, Feb 24, 2009 at 3:08 PM, Martin Friebe laza...@mfriebe.de wrote: It will be similar (probably easier) if the command line app is *not* interactive. The console apps we want to wrap works similar to the SubVersion (svn) command line client. Execute with certain parameters and read back the results, which must be displayed in a GUI form via various components. Some console apps which we will be writing ourselves will output % progress, which we would like to represent with a TProgressBar. The reason we want both console and a GUI wrapper is so that we can script/automate the console app, but also allow the user to run it manually via a easier to use GUI frontend. I tweaked a class found in PasDoc project (made it standalone) that provides methods to talk with a process. http://code.google.com/p/luipack/source/browse/trunk/miscutils/processlinetalk.pas It's used by sevenzipwrapper found in the same dir Luiz ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Graeme Geldenhuys schrieb: I didn't mean writing a GUI in the console. I meant a true GUI app (LCL or fpGUI based), which uses a console application as the backend. What then is your technical problem? For example, Linux has many GUI frontends for programs like makeiso, burncd, cdrecord, cvs, mpg123 etc... These frontends most probably collect the options and then call the backends with the appropriate command line. Or they use the application libraries directly, without starting the console programs. In this case the command line argument evaluation has to be moved to the GUI frontend, which finally calls the same procedures as the main procedure of the console application does. For easy maintenance the console programs can be changed to use a shared library, which then can be used by every frontend. The shared libraries then should not do any console output, eventually output to stdout or stderr must be caught by the frontend, or the handles must be redirected/piped to the frontend. I never separated existing applications into shared libraries, so I don't know about the best solution for console output. When every output ends up in a few unique procedures, these procedures can be replaced by callback functions, provided by the frontend and installed during initialization of the shared library. DoDi ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] buglet in rxnew package
Luca Olivetti escreveu: En/na Luiz Americo Pereira Camara ha escrit: Luca Olivetti escreveu: I found that the rxnew package (today svn version) had the wrong slash in the Usage tab, it was $(PkgOutDir)/ instead of $(PkgOutDir)\, (being PathDelim Value =\) so that it generated a bogus path in idemake.cfg and the install failed (with the somewhat cryptic message that it couldn't fine the unit rxnew.pas). Since the final slash/backslash is automatically added by the ide, maybe there's a bug somewhere else. The bug was already reported and fixed. Where should bugs for rxnew (and ccr in general) be reported? It doesn't seem that it uses the bugtracker at sourceforge and at bugs.freepascal.org I couldn't find this issue. The package needs to be tweaked anyway. What do you mean? Change PathDelim Value=\/ to PathDelim Value=// in the package file. I did not touched the PkgOutDir value This worked for me. Luiz ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
Mattias Gaertner schrieb: What exactly is slow in fpdoc? I guess he meant the fpdoc editor in the IDE, not the fpdoc program. Right. DoDi ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
Marco van de Voort schrieb: Now I could spot the trouble source: it's fpdoc! Interesting, I'm just optimizing a part of that. http://bugs.freepascal.org/view.php?id=12953 What exactly is slow in fpdoc? IMO it's the search for documentation information about the current identifier in the edit window, started for almost every move of the caret. If that's the reason for the excessive slowdown of the editor, the search should be performed by a background thread, so that the editor is not blocked. The search should be terminated immediately, when the caret moves to an different identifier. DoDi ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
Mattias Gaertner schrieb: Now I could spot the trouble source: it's fpdoc! Why do you think so? When the fpdoc window is open, the task manager shows a CPU usage of up to 100%, and every caret move can take several seconds. You can check this behaviour yourself, my test case is the Controls unit with the related include files. When I close the fpdoc window, navigation through the text is not delayed, CPU usage stays at a few percents. Memory usage is constant in either case, swapping seems not to occur. DoDi ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] speed of SynEdit [Re: Wiki pages suggestion - feature comparison]
On Tue, 24 Feb 2009 16:01:07 +0100 Hans-Peter Diettrich drdiettri...@aol.com wrote: Marco van de Voort schrieb: Now I could spot the trouble source: it's fpdoc! Interesting, I'm just optimizing a part of that. http://bugs.freepascal.org/view.php?id=12953 What exactly is slow in fpdoc? IMO it's the search for documentation information about the current identifier in the edit window, started for almost every move of the caret. If that's the reason for the excessive slowdown of the editor, the search should be performed by a background thread, so that the editor is not blocked. The search should be terminated immediately, when the caret moves to an different identifier. At the moment the fpdoc editor is updated on idle in several steps. Maybe the update should be started after a short delay. Mattias ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Fw: New Features for source editor
O Impresinants features to lazarus code editor -BlockCompletion -SyncEdit -Live Templates -Inline Variable Declare Variable -Declare Field -Extract ResourceString -Find Unit -Rename -Extract Method -Change Params Refactoring tools menu to lazarus now je je je This features and more present in Delphi 2007 or above See in this url: http://www.youtube.com/watch?v=ky90Io32hLQ Impressive 8) From: Lucas codedeep Sent: Monday, February 23, 2009 5:54 AM To: lazarus@lazarus.freepascal.org Subject: [Lazarus] New Features for source editor Hi Interesanting new features to implement in source editor of Lazarus See this url: http://www.youtube.com/watch?v=gJmd6wLJ6ag And this url: http://www.youtube.com/watch?v=9IR5z_mtlBk to compare two methods These characteristics were helping to write twice more rapid source code -Autocompletion in real-time (no type Ctrl+Space) -When type begin, add end; -When type ( , add ) -When type { , add } Thank you for reading ;D Actualízate, descubre el nuevo Windows Live Messenger. ¡Descárgatelo ya! ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus Emoticon3.gif___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fw: New Features for source editor
Lucas wrote: -Autocompletion in real-time (no type Ctrl+Space) This by far, is one of the most productive enhancements that any code editor can have. It is just amazing how fast you can code with this feature as well as reduce typo's. See CNWizards for Delphi: http://www.cnpack.org/index.php?lang=en Their pack has such a feature and to boot, it's intelligent, taking into account how often you use a selection from the list as well as what was typed before invoking it. I would love to see this in Lazarus. -- Warm Regards, Lee ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] (FreeVision) GUI frontend to a console application
Le Tue, 24 Feb 2009 11:37:51 +0100, Marco van de Voort mar...@stack.nl a écrit : FreeVision? (fpcsrc/2.2.x/packages/fv) It is working largely. The example also compiles.What error do you get ? ___ Nothing serious: can't find unit Drivers used by testapp. I think this is because I use a 'dpkg-dist' version of /etc/fpc.cfg since 2 weeks. Obviously I just have to add the right unit path. Glad to know that FreeVision is still working, as one of my projects 'll need it soon ;-) Thanks a lot, Thierry -- Toraka Bilaogy : http://torakabilaogy.blogspot.com Le 'salon' Madagascar : http://friendfeed.com/rooms/madagascar (New!) Thierry sur Facebook : http://profile.to/thierryandriamirado/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GUI frontend to a console application
Graeme Geldenhuys wrote: On Tue, Feb 24, 2009 at 3:08 PM, Martin Friebe laza...@mfriebe.de wrote: It will be similar (probably easier) if the command line app is *not* interactive. The console apps we want to wrap works similar to the SubVersion (svn) command line client. Execute with certain parameters and read back the results, which must be displayed in a GUI form via various components. Some console apps which we will be writing ourselves will output % progress, which we would like to represent with a TProgressBar. The reason we want both console and a GUI wrapper is so that we can script/automate the console app, but also allow the user to run it manually via a easier to use GUI frontend. Regards, - Graeme - ___ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus If the console app is self-written, you can use a mix of TProcess and TSimpleIPCServer and TSimpleIPCClient. Add a TSimpleIPCClient to your console app, so that it can send message to its paired up TSimpleIPCServer which is hosted on the GUI frontend. This way, your console app can speak to your GUI frontend app. Be sure to read an argument as your IPCServerName, so it knows which IPCServer to talk to. On your GUI frontend, use a thread to read messages from the IPCServer continuously. If you want to execute multiple console apps simultaneously, use TProcess to execute your console apps with poWaiting and poUsePipes turned off (so that it returns control to your app immediately) and use a TSimpleIPCServer to listen to the TSimpleIPCClient from your console app. In the long run you should have a multi-threaded process-manager that handles a collection of TProcess and TSimpleIPCServer. I have chopped up all my big apps into small console apps and frontends. So, my apps can all run with or without a GUI. So my big app is now a package of console apps and a frontend, sort of like how Linux works. A rough model of my process-manager: ** TIPCServerThread = class (TThread) public IPCServer: TSimpleIPCServer;//For listening to the IPCClient of the console app end; TIPCProcess = class (TCollectionItem) public Process: TProcess;//For executing the console app (Execute without waiting) IPCServerThread: TIPCServerThread;//Listens and update status of this process property Status; property Progress; property MaxProgress; property Errors; //Note: the console app will receive an IPCServerName as a argument so it knows // which IPCServer to talk to. end; TIPCProcessList = class (TCollection)//For handling a collection of TIPCProcess. TIPCProcessManager = class(TComponent) //For complex mangement of processes like executing events when a particular process completes. //or a timer for polling the processlist for status to be displayed or actions to be taken. ** This allows me to add features to my app easier as debugging my new console app is easier than debugging the monolithic app (most of my console apps handles long-loopy functions). Also you take advantage of multi-core processors instantly as the OS will do it for you like as though you open multiple programs, you don't need to spend time tweaking your threads to consume or force-feed them to a paticular core. The front end serves only to display or execute console apps and load results. my $0.002 Funky Beast ___ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus