You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(116) |
Sep
(146) |
Oct
(78) |
Nov
(69) |
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(188) |
Feb
(142) |
Mar
(143) |
Apr
(131) |
May
(97) |
Jun
(221) |
Jul
(127) |
Aug
(89) |
Sep
(83) |
Oct
(66) |
Nov
(47) |
Dec
(70) |
2003 |
Jan
(77) |
Feb
(91) |
Mar
(103) |
Apr
(98) |
May
(134) |
Jun
(47) |
Jul
(74) |
Aug
(71) |
Sep
(48) |
Oct
(23) |
Nov
(37) |
Dec
(13) |
2004 |
Jan
(24) |
Feb
(15) |
Mar
(52) |
Apr
(119) |
May
(49) |
Jun
(41) |
Jul
(34) |
Aug
(91) |
Sep
(169) |
Oct
(38) |
Nov
(32) |
Dec
(47) |
2005 |
Jan
(61) |
Feb
(47) |
Mar
(101) |
Apr
(130) |
May
(51) |
Jun
(65) |
Jul
(71) |
Aug
(96) |
Sep
(28) |
Oct
(20) |
Nov
(39) |
Dec
(62) |
2006 |
Jan
(13) |
Feb
(19) |
Mar
(18) |
Apr
(34) |
May
(39) |
Jun
(50) |
Jul
(63) |
Aug
(18) |
Sep
(37) |
Oct
(14) |
Nov
(56) |
Dec
(32) |
2007 |
Jan
(30) |
Feb
(13) |
Mar
(25) |
Apr
(3) |
May
(15) |
Jun
(42) |
Jul
(5) |
Aug
(17) |
Sep
(6) |
Oct
(25) |
Nov
(49) |
Dec
(10) |
2008 |
Jan
(12) |
Feb
|
Mar
(17) |
Apr
(18) |
May
(12) |
Jun
(2) |
Jul
(2) |
Aug
(6) |
Sep
(4) |
Oct
(15) |
Nov
(45) |
Dec
(9) |
2009 |
Jan
(1) |
Feb
(3) |
Mar
(18) |
Apr
(8) |
May
(3) |
Jun
|
Jul
(13) |
Aug
(2) |
Sep
(1) |
Oct
(9) |
Nov
(13) |
Dec
|
2010 |
Jan
(2) |
Feb
(3) |
Mar
(9) |
Apr
(10) |
May
|
Jun
(1) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(44) |
May
(9) |
Jun
(22) |
Jul
(2) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(3) |
Aug
(8) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Paul P. <pau...@ho...> - 2004-04-30 05:04:11
|
Date: Thu, 29 Apr 2004 09:21:40 -0700 >From: "Kevin Altis" <al...@se...> >To: "pythoncard-Users" <pyt...@li...> >Subject: [Pythoncard-users] event overview and unused events will no longer be bound > >Rowland and I are gutting the old event system code in the framework >and replacing it with something much simpler without impacting user >code [...] Currently, we bind all >events applicable to a component regardless of whether an event handler >exists for a particular event. > I think this might affect me in vb2py - I use a rather complex mapping(*) to map VB controls onto PythonCard controls. Essentially I have a set of control classes that I register with PythonCard. These controls are proxy's for the real PythonCard classes and there is also a custom metaclass which does some magic in mangling VB attributes, methods, event handlers etc when the class is created so that they play properly with PythonCard. It is possible that your new scheme might result in the event bindings being 'not found' and therefore the converted event handlers will not get called. This may not happen of course, and in any event my use case is pretty extreme, but it would be useful if there was some way I could request a rescan or force the binding of events. Even if this isn't possible, I imagine that I can get around this in the metaclass but if it is simple to expose the scanning/binding process ... ;) Regards, Paul (*) There are simpler, more direct, mappings which wouldn't suffer from this issue but they would involve doing some even more complex type inferencing (or in some cases, guessing!) when I convert the VB into Python. |
From: Kevin A. <al...@se...> - 2004-04-29 17:15:58
|
On Apr 29, 2004, at 9:46 AM, Richard Wolff wrote: > >> So, the most obvious thing you'll see is that the Message Watcher >> doesn't display "unused events" because those events aren't ever bound >> and never go through the PythonCard framework dispatch mechanism. In >> order to see all events for a given component as well as event order >> you'll have to run a special sample like testevents that binds all >> events. > > Could you provide a debug option that would instantiate a handler to > catch/display the "unused events"? Once in a rare while, it's helpful > to see > the unused events scrolling by and then realize "ah, that's the one I > should > be catching". > Yeah, I agree that it is useful to see the unused events for debugging purposes, though it doesn't seem like many people ever use the Message Watcher. Anyway, it shouldn't be too hard to hook that up. We might even make the binding and dispatch conditional so that a config flag would change whether all events are hooked up or not, so that way if the Message Watcher is active it would bind all events and otherwise would only bind the used events. Whether we do that is conditional on simply being able to call Skip() for unused events in dispatch and have them do the right thing as far as wxPython is concerned. I'll test that with background events today, but the components are trickier. ka |
From: Kevin A. <al...@se...> - 2004-04-29 16:56:11
|
On Apr 29, 2004, at 9:32 AM, ralph heimburger wrote: > I am creating a "report interface" for my app which includes simple > columnar reports. > > Is wxHtmlEasyPrinting the best approach? > > If so, how do I go about formatting the output: page breaks, sub > reports,etc? > You'll probably want to ask on the wxPython-users mailing list if you have specific questions about those classes since PythonCard doesn't provide any specific printing support. http://www.wxpython.org/maillist.php I almost never print from my Win2K box and I just realized I have never printed from my Mac, ever, so I also know that I probably won't be the one that adds any printing wrapper support to PythonCard <wink> A lot of people use ReportLab to generate PDF reports. http://www.reportlab.com/ I will be adding component wrappers for the ActiveX_PDFWindow and ActiveX_FlashWindow to PythonCard 0.8 which will be similar to the ActiveX_IEHtmlWindow that is already wrapped. These are Windows-specific, but too useful to leave out for those people writing something just for Windows. The PDFWindow component will allow you to display any PDF file so if you are generating reports with ReportLab you'll be able to preview and print them easily. See the wxPython demo. ka |
From: ralph h. <1st...@1I...> - 2004-04-29 16:32:12
|
I am creating a "report interface" for my app which includes simple columnar reports. Is wxHtmlEasyPrinting the best approach? If so, how do I go about formatting the output: page breaks, sub reports,etc? _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Kevin A. <al...@se...> - 2004-04-29 16:21:43
|
Rowland and I are gutting the old event system code in the framework and replacing it with something much simpler without impacting user code. In order to make sure we don't miss something fundamental in the redesign I did a brain dump yesterday on event issues to supplement what Rowland had already written about the actual implementation we're pretty sure we're going to use. I thought some people on this list would find the "Overview and Requirements" section interesting. http://wiki.wxpython.org/index.cgi/PythonCardNewEventSubsystem There is one change in how events are bound and dispatched that I want to make that could impact user code, but I don't think anyone is taking advantage of this feature so I doubt it matters. Currently, we bind all events applicable to a component regardless of whether an event handler exists for a particular event. That means there is a lot of dispatch code and processing in the PythonCard framework for unused events. Even though the dispatch processing is very quick it is still a waste. In the new system, only those events that have event handlers will be bound which will make the runtime processing dramatically more efficient as well as reduce the required amount of dispatch code in the framework. The original idea for binding all events was that you could then add event handlers while the app was running and they would magically be used. That should still be possible in the new system, but there will be additional methods that you have to call to bind and unbind a particular event. Normal apps would never need to use those methods. So, the most obvious thing you'll see is that the Message Watcher doesn't display "unused events" because those events aren't ever bound and never go through the PythonCard framework dispatch mechanism. In order to see all events for a given component as well as event order you'll have to run a special sample like testevents that binds all events. ka p.s. I've already plugged the memory leak for background level events like idle and will probably check that in later today. The revised event system for all the components probably won't be checked in until this weekend. |
From: Kevin A. <al...@se...> - 2004-04-29 15:37:46
|
On Apr 29, 2004, at 2:20 AM, Geoff Canyon wrote: > 1. Start the Resource Editor > 2. Create a new project > 3. Lay out the interface for that project -- at this point no code > entry is possible and the project is dead. > 4. Save the project as a resource file. > 5. Open the project in PythonCard -- at this point the interface of > the project is modifiable, but not savable. > 6. Edit the code of the project -- which is one big long list of code. > 7. Run the project in some fashion > 8. Test the project. > 9. Rinse and repeat steps 5-8. > 10. When I'm ready, do something or other to build the application. On > Mac and Unix it will open the console window and I can't stop it. The way the resourceEditor File->New... dialog works now you are asked to save the new project (template) before you start editing. I need to update the walkthrough. If you just open an old project or copy the files of an old project as the basis for a new one you'll already have both a resource file and the associated code module. That means you can do File->Run at any time. Any pair of files can be copied to the resourceEditor templates directory and they will show up in the File->New... dialog. Since there is no editor integration in the resourceEditor yet, you need to use the codeEditor or the editor/IDE of your choice to edit the source code. I would like to make a more tightly coupled layout/source editor environment as well as support hooking up events via the Property Editor, but that is probably more of a version 1.1 goal, not something I'll have time to do before 1.0. This is an Open Source project, so more developers can join in and it will help make these things better, sooner. The codeEditorR.py module was a simple experiment I did that works just like the codeEditor, but it examines the associated resource file for a module and displays a popup menu on the top left of all of the components. When you select a component, the popup menu on the right displays all the event handler names that are valid for that type of component. Event handlers that are already defined have a + in front of the name and selecting that name from the menu will cause the editor to scroll down to the first line of the event handler. If you select an event name that doesn't have a + in front of it then a code stub will be inserted into the source at the current insertion point. The idea was to merge a slightly more sophisticated and better looking version of that into the resourceEditor. You can edit the source and resource files simultaneously and whenever you do a File->Run the file you're working on - source in codeEditor or resource in resourceEditor - will be automatically saved so you're testing the most recent version of your project. http://www.python.org/cgi-bin/moinmoin/PythonEditors When you run the program, from the resourceEditor, codeEditor, double-click on the file, or invoke it from the shell it is running standalone. At a minimum you will have a close box on the main frame, but depending on what template you used, you'll probably have a File->Exit menu item as well. If your application code has a syntax error before it gets into the main loop, Python will just print an exception to the console window and quit. Unless you ran the script from the console, or used the Run with Interpreter menu item in the codeEditor or resourceEditor you won't be able to see what the syntax error was. If for some reason there is a nasty event handler related bug associated with an on_close handler then it is possible you won't be able to quit the script normally and will have to kill it with the Task Manager in Windows or use "kill -9 pid" or some such under *nix. When you're done and ready to build a standalone, then you can use py2exe, McMillans installer, and BundleBuilder to package up the your source, and the needed modules from PythonCard, wxPython, and Python. ka |
From: Kevin A. <al...@se...> - 2004-04-29 15:00:47
|
On Apr 29, 2004, at 7:29 AM, RANDY BURNS wrote: > There are some simple single user databases that are written in Python=20= > or Perl. > These are a bit more than what I think of as a "flat file" databases,=20= > and allow you to tie an associative array to a database. If you used=20= > one of those and thought the persistancy interface through early on in=20= > the process, I think it=A0 would be pretty easy for someone to convert=20= > this tool to SQL databases early in the process. > =A0 > >What I do know is possible and will probably do first is make a > >flatfileDatabase environment app which has some of the features of a > >full PythonCard environment. This is probably analogous to FileMaker=20= > or > >MS Access. The database app is started and then you can open, use, > >design, etc. various database templates which will all get some > >capabilities from the database app environment. The same thing would=20= > be > >possible for SQL databases, but I'll do it for flatfileDatabase = first. > >If anyone else is interested, let me know and maybe work will get = done > >on it before 1.0 is finished. > The flatfileDatabase module currently support pickle, XML, and MetaKit.=20= It should be relatively easy to have it support PySQLite and Gadfly.=20 But the other framework stuff is a higher priority item for me, so I=20 don't plan to spend any time on it until the other stuff is done,=20 unless someone else takes ownership and just needs a bit of input and=20 clarification from me on how particular bits work. ka |
From: ralph h. <1st...@1I...> - 2004-04-29 13:02:43
|
My experience. I wrote some very large enterprise systems in DataFlex about 25 years ago. Some are still in production today. During the course of the last 6 years I have evaluated various 4GLs (Progress, FileMaker, Lotus Approach), IDEs (Microsoft .NET, J2EE, Omnis, Revelation, etc) and development environments that are both highly scalable and platform-independent. BTW I never really figured out Revelation as I didn't have time. When I first came across Python I was skeptical. Having written standalone GUIs with Java and C++ I wanted something capable of the RAD model (not just fluff). When I first downloaded PythonCard it was after I download Boa Constructor and wxGlade. Both of these are good GUI designers but PythonCard was the first that I saw with true a WYSIWYG capability. The fact that it separates the GUI from the actual programming wasn't readily apparent to me to be an advantage. The MySQLDB integration was so simple and with the help of this community I have rewritten about 90% of the original functionality and added new features that I did in DataFlex (a 4GL) with 60% less code. When I am ready to migrate to a prod/Qa environment, I simply copy the .py file to .pyw which prevents the user from seeing the console window. I don't know if py2exe would make it load quicker. The look and feel is impressive and I can create 1 form where before I created several. PythonCard is a nice work! --- Geoff Canyon <gc...@in...> wrote: First, I should clarify: I come from a general/Revolution background, not a HyperCard background (at least not recently). I only used HyperCard as an example because it seemed more reasonable to assume people on this list were familiar with it, given the PythonCard name. As an example of why this is significant, I could care less about auto-save, and I never use idle. That said, I'm still boggled. There's so much information, and seemingly no table of contents that allows me to answer the following: In Revolution, I'm used to: 1. Starting Revolution 2. Creating a new project 3. Laying out the interface for that project 4. Adding code to various elements of that project 5. Interactively testing the project, going back and forth between testing and coding because the project runs live. 6. When I'm ready, I select the appropriate options and build the project as a standalone application. Now, what I think I understand is that in PythonCard I: 1. Start the Resource Editor 2. Create a new project 3. Lay out the interface for that project -- at this point no code entry is possible and the project is dead. 4. Save the project as a resource file. 5. Open the project in PythonCard -- at this point the interface of the project is modifiable, but not savable. 6. Edit the code of the project -- which is one big long list of code. 7. Run the project in some fashion 8. Test the project. 9. Rinse and repeat steps 5-8. 10. When I'm ready, do something or other to build the application. On Mac and Unix it will open the console window and I can't stop it. Is that accurate at all? regards, Geoff Canyon gc...@in... ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Geoff C. <gc...@in...> - 2004-04-29 09:20:57
|
First, I should clarify: I come from a general/Revolution background, not a HyperCard background (at least not recently). I only used HyperCard as an example because it seemed more reasonable to assume people on this list were familiar with it, given the PythonCard name. As an example of why this is significant, I could care less about auto-save, and I never use idle. That said, I'm still boggled. There's so much information, and seemingly no table of contents that allows me to answer the following: In Revolution, I'm used to: 1. Starting Revolution 2. Creating a new project 3. Laying out the interface for that project 4. Adding code to various elements of that project 5. Interactively testing the project, going back and forth between testing and coding because the project runs live. 6. When I'm ready, I select the appropriate options and build the project as a standalone application. Now, what I think I understand is that in PythonCard I: 1. Start the Resource Editor 2. Create a new project 3. Lay out the interface for that project -- at this point no code entry is possible and the project is dead. 4. Save the project as a resource file. 5. Open the project in PythonCard -- at this point the interface of the project is modifiable, but not savable. 6. Edit the code of the project -- which is one big long list of code. 7. Run the project in some fashion 8. Test the project. 9. Rinse and repeat steps 5-8. 10. When I'm ready, do something or other to build the application. On Mac and Unix it will open the console window and I can't stop it. Is that accurate at all? regards, Geoff Canyon gc...@in... |
From: Kevin A. <al...@se...> - 2004-04-28 19:44:31
|
http://cvs.sourceforge.net/viewcvs.py/pythoncard/PythonCard/samples/ twistedEchoClient/ I've added a twistedModel.py module to the PythonCard framework package which contains a TwistedApplication class that can be used instead of Application (formerly PythonCardApp) if you want to write a PythonCard application that uses Twisted. The twistedEchoClient shows how to use the new class. I also created a generic loginDialog so it would be easy to connect to a server on another machine with a different default port, username, and password. Obviously this won't be available until release 0.8 unless you're working from PythonCard cvs. Here's the readme.txt file: Twisted Echo client which uses the TwistedApplication class. class TwistedApplication(model.Application): def OnInit(self): model.Application.OnInit(self) reactor.startRunning() wx.EVT_TIMER(self, 999999, self.OnTimer) self.twistedTimer = wx.Timer(self, 999999) self.twistedTimer.Start(250, False) return True def OnTimer(self, event): reactor.iterate() def OnExit(self): # need to stop the timer for cleanup purposes self.twistedTimer.Stop() self.twistedTimer = None reactor.stop() You need to start pbecho.py first so you have a server to connect to. pbecho.py is included in the Twisted distribution within your Python site-packages directory: site-packages/TwistedDocs/examples/pbecho.py Contributed by Stephen Waterbury. Additional code by Kevin Altis Adapted from Uwe C. Schroeder's cookbook entry "Using wxPython with Twisted Python" http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/181780 ka |
From: Kevin A. <al...@se...> - 2004-04-28 18:41:14
|
On Apr 27, 2004, at 11:54 AM, Andrei wrote: > gaston wrote on Tue, 27 Apr 2004 12:23:16 -0600: > >> Does any of the more experienced users know of any cheap python >> hosting >> where python scripts can be used to test and practice? > > For testing and practice you can also run a webserver locally. On > Windows > you could look at e.g. Abyss webserver for a really simple solution, > but > you can also get heavy hitters like Apache to run locally. > If you just want to run locally, you can use the built-in Python web server classes or the webserver sample which wraps those classes, supports CGI, and a simple visual log of incoming requests. The code needs to be simplified for Python 2.3 since most of the workaround code is no longer needed and just mirrors what is now included with Python 2.3 (2.2.x was broken and couldn't deal with POST from IE browsers). http://pythoncard.sourceforge.net/samples/webserver.html ka |
From: Kevin A. <al...@se...> - 2004-04-28 18:35:34
|
On Apr 28, 2004, at 7:05 AM, Geoff Canyon wrote: > Forgive the newby question, but I didn't see the answer to this on the > web site(s): > > HyperCard runs live -- you never have to run because it is always > running, even as you change properties and set scripts. Is this > possible in Python/PythonCard? > No and sort of. That applies to version 1.0 which will be done sometime in early summer; the next release, 0.8, will be out sometime in May. Version 2.0 of PythonCard will have an expanded feature set. PythonCard is not HyperCard, and it doesn't currently work the same. In HyperCard there was an application, either HyperCard or a HyperCard runtime application and the stacks that it ran were "documents". You could build single stack standalones, but for the most part you were always running HyperCard and just switched stacks (documents). Of course, the stacks were more than just data, so they acted like applications and you could send messages between stacks. We can't do that in PythonCard today, in part because we don't entirely know how to pull it off and more so because there aren't enough developer resources to make it happen yet. A long time ago I thought we might do it by using a central PythonCard app that was optionally started when you start up your application. The application would register itself with the server app and then any other registered PythonCard app, even on different machines could message with your app. The directory service becomes one of the central problems. The original idea was going to use XML-RPC for communication. These days I lean towards basing it all on Twisted if the Twisted LGPL license won't cause a problem. So PythonCard apps are like apps that you would create with most other GUI toolkits. There is no automatic persistent data storage nor can applications message to one another, they are just like any other application. There is a flatfileDatabase module and samples that explore the idea of automatic persistent storage similar to what you would get with a single background HyperCard stack, but using it is optional. The "sort of" is that PythonCard has optional runtime tools that any PythonCard app has access to including a Shell, Namespace Viewer, Property Editor and Message Watcher. The Shell is a complete Python interpreter environment and more, in comparison the HyperCard Message Box was a complete wimp. <wink> You can create and manipulate components and have full access to the runtime object model of your application. This is unbelievably powerful, but I'm guessing that it is generally underutilized, except by me, since I run most of the samples and tools with the shell on a regular basis. The codeEditor is a pretty good example of some immediate ways that you can leverage this power in the form of "scriptlets". The Property Editor allows you to change some component attributes at runtime, but the changes are not saved to the resource file. The Message Watcher is very similar to the one HyperCard had. One big difference is that in the underlying wxPython event model there is really no such thing as "idle", that is, an event that fires when the system isn't doing anything. Instead "idle" in wxPython means there are no more events in the event queue so if the user isn't doing anything and no timers are running then you'll get one idle and that's it. See the PythonCard documentation page for more info on the runtime tools. Once PythonCard 1.0 is done I would like to start investigating an "app runner" that works more like HyperCard did. All PythonCard "background" classes are defined in modules with a separate if __name__ == '__main__' block at the bottom of the file specifically because it makes it very easy to support loading the background from the module as a child window of another app if the module isn't run standalone. So, without breaking the user code API we should be able to add a PythonCard app environment say in version 1.1. The environment would run and via the File menu you would load PythonCard modules. That environment in theory could switch between "design" and "run" and would allow messaging between applications. This may just be theory, there might be something that prevents it from working and so the idea would have to get bumped to what I currently think of as PythonCard 2.0. What I do know is possible and will probably do first is make a flatfileDatabase environment app which has some of the features of a full PythonCard environment. This is probably analogous to FileMaker or MS Access. The database app is started and then you can open, use, design, etc. various database templates which will all get some capabilities from the database app environment. The same thing would be possible for SQL databases, but I'll do it for flatfileDatabase first. If anyone else is interested, let me know and maybe work will get done on it before 1.0 is finished. Also see: http://wiki.wxpython.org/index.cgi/PythonCardForHyperCardUsers ka |
From: Andrei <pro...@re...> - 2004-04-28 17:41:09
|
gaston wrote on Tue, 27 Apr 2004 12:23:16 -0600: > Does any of the more experienced users know of any cheap python hosting > where python scripts can be used to test and practice? For testing and practice you can also run a webserver locally. On Windows you could look at e.g. Abyss webserver for a really simple solution, but you can also get heavy hitters like Apache to run locally. -- Yours, Andrei ===== Real contact info (decode with rot13): cebwrpg5@jnanqbb.ay. Fcnz-serr! Cyrnfr qb abg hfr va choyvp cbfgf. V ernq gur yvfg, fb gurer'f ab arrq gb PP. |
From: ralph h. <1st...@1I...> - 2004-04-28 15:58:43
|
Even though I am still a newbie as well and am currently developing a pythoncard application I will take a stab. As far as "running live" it is not a service. Pythoncard is a set of libraries that are "imported" into your script at development. When you run the script, it imports the PythonCard objects as the script is interpreted. Python is an interpreted language. In essence it is as "live" as your scripts are. --- Geoff Canyon <gc...@in...> wrote: Forgive the newby question, but I didn't see the answer to this on the web site(s): HyperCard runs live -- you never have to run because it is always running, even as you change properties and set scripts. Is this possible in Python/PythonCard? regards, Geoff Canyon gc...@in... ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Geoff C. <gc...@in...> - 2004-04-28 14:05:42
|
Forgive the newby question, but I didn't see the answer to this on the web site(s): HyperCard runs live -- you never have to run because it is always running, even as you change properties and set scripts. Is this possible in Python/PythonCard? regards, Geoff Canyon gc...@in... |
From: Kevin A. <al...@se...> - 2004-04-27 19:36:08
|
On Apr 27, 2004, at 11:16 AM, Kevin Altis wrote: > Calling Refresh and Update is safest because it forces the whole > control to > be redrawn. The StaticText component actually contains an explicit > Refresh() > call as part of its _setText method but I'm considering removing that. > The > original idea was that StaticText is more likely to be used for the > kind of > status messages you are doing above, so it would be nice to have it > automatically do the right thing. Of course, it really needs to call > Update > as well for it to always work on all platforms, so I'll add that until > a > decision is made on whether to drop automatic Refresh/Update in the > future. > I went ahead and added a redraw() method to Widget, so starting with release 0.8 it will be easy to force an immediate update with any component. def redraw(self): """Force an immediate redraw without waiting for an event handler to finish.""" self.Refresh() self.Update() Note that this isn't required for BitmapCanvas since it refreshes automatically as part of the blit from the offscreen bitmap after each draw operation and has its own autoRefresh attribute to avoid blits after each draw operation if you're doing a lot of draw operations at once and want finer control over when to update the screen. ka |
From: gaston <ga...@nt...> - 2004-04-27 19:17:12
|
Adam Russell wrote: > I like www.infolaunch.com > small no bs web hosting shop. You get shell access too which is > important. I consider them to be cheap at $9.95 a month. > > > gaston wrote: > >> Hi, I downloaded python carda about 2 weeks ago. I'm still doing the >> tutorials, and changing the minimal app. : ) >> >> The thing is, in the future, I'd like to do applications that work on >> your desktop but also that can connect to the internet. The thing is, >> I'd need to have some python scripts online in some server somewhere. >> >> Does any of the more experienced users know of any cheap python >> hosting where python scripts can be used to test and practice? >> >> Thanks for any help. >> >> G. >> >> >> >> ------------------------------------------------------- >> This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek >> For a limited time only, get FREE Ground shipping on all orders of $35 >> or more. Hurry up and shop folks, this offer expires April 30th! >> http://www.thinkgeek.com/freeshipping/?cpg=12297 >> _______________________________________________ >> Pythoncard-users mailing list >> Pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek > For a limited time only, get FREE Ground shipping on all orders of $35 > or more. Hurry up and shop folks, this offer expires April 30th! > http://www.thinkgeek.com/freeshipping/?cpg=12297 > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > Thank you for the tips. I'll look into both links. Gaston. |
From: Adam R. <Ada...@ch...> - 2004-04-27 18:41:24
|
I like www.infolaunch.com small no bs web hosting shop. You get shell access too which is important. I consider them to be cheap at $9.95 a month. gaston wrote: > Hi, I downloaded python carda about 2 weeks ago. I'm still doing the > tutorials, and changing the minimal app. : ) > > The thing is, in the future, I'd like to do applications that work on > your desktop but also that can connect to the internet. The thing is, > I'd need to have some python scripts online in some server somewhere. > > Does any of the more experienced users know of any cheap python > hosting where python scripts can be used to test and practice? > > Thanks for any help. > > G. > > > > ------------------------------------------------------- > This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek > For a limited time only, get FREE Ground shipping on all orders of $35 > or more. Hurry up and shop folks, this offer expires April 30th! > http://www.thinkgeek.com/freeshipping/?cpg=12297 > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: Kevin A. <al...@se...> - 2004-04-27 18:33:49
|
On Apr 27, 2004, at 11:23 AM, gaston wrote: > Hi, I downloaded python carda about 2 weeks ago. I'm still doing the > tutorials, and changing the minimal app. : ) > > The thing is, in the future, I'd like to do applications that work on > your desktop but also that can connect to the internet. The thing is, > I'd need to have some python scripts online in some server somewhere. > > Does any of the more experienced users know of any cheap python > hosting where python scripts can be used to test and practice? > > Thanks for any help. > > G. http://www.python.org/cgi-bin/moinmoin/PythonHosting ka |
From: gaston <ga...@nt...> - 2004-04-27 18:23:24
|
Hi, I downloaded python carda about 2 weeks ago. I'm still doing the tutorials, and changing the minimal app. : ) The thing is, in the future, I'd like to do applications that work on your desktop but also that can connect to the internet. The thing is, I'd need to have some python scripts online in some server somewhere. Does any of the more experienced users know of any cheap python hosting where python scripts can be used to test and practice? Thanks for any help. G. |
From: Kevin A. <al...@se...> - 2004-04-27 18:09:55
|
> From: Uwe Schmitt > > Hi, > > I wrote a litte GUI for steering some numerical calculations. > PythonCard works fine, but I got one problem: How can I refresh > the GUI inside an event triggered method ? I have: > > def on_startbutton_mouseDown(self, event): > > self.components.calcinfo.text="calculation started" > self.doCalc1() # needs some seconds > self.components.calcinfo.text="calculation finished" > > self.components.calcinfo is a TextField component. > > If I start this application, the first message does not appear > before the calculation is started... > > Any hints ? > > Greetings, Uwe Let's open up the widgets sample with the shell (widgets.py -s) and experiment... >>> fld = comp.fldTextField >>> import time >>> fld.text = 'hello world';time.sleep(3) >>> fld.text = 'update me now';fld.Update();time.sleep(3) >>> fld.text = 'with refresh';fld.Refresh();fld.Update();time.sleep(3) >>> s = comp.txtStaticText >>> s.text = 'hello world';time.sleep(3) Calling Refresh and Update is safest because it forces the whole control to be redrawn. The StaticText component actually contains an explicit Refresh() call as part of its _setText method but I'm considering removing that. The original idea was that StaticText is more likely to be used for the kind of status messages you are doing above, so it would be nice to have it automatically do the right thing. Of course, it really needs to call Update as well for it to always work on all platforms, so I'll add that until a decision is made on whether to drop automatic Refresh/Update in the future. As an alternative you can use a statusBar. It should already do the right thing as far as immediate updates are concerned. BTW, do you have a whitelist-based mail block in place on your system? I can't send you email directly without a bounce, so everyone who replies to your emails on this list end up with a bounced message which is very annoying. Here's a sample... <sc...@nu...>: 134.96.7.8 does not like recipient. Remote host said: 550 5.0.0 <sc...@nu...>... Spam address. Giving up on 134.96.7.8. ka |
From: Uwe S. <sc...@nu...> - 2004-04-27 13:56:49
|
Hi, I wrote a litte GUI for steering some numerical calculations. PythonCard works fine, but I got one problem: How can I refresh the GUI inside an event triggered method ? I have: def on_startbutton_mouseDown(self, event): self.components.calcinfo.text="calculation started" self.doCalc1() # needs some seconds self.components.calcinfo.text="calculation finished" self.components.calcinfo is a TextField component. If I start this application, the first message does not appear before the calculation is started... Any hints ? Greetings, Uwe |
From: Kevin A. <al...@se...> - 2004-04-26 04:27:05
|
For those that are interested, the list is working now. This is mainly for developers on the project that need to be aware of all the changes being checked in. ka On Apr 23, 2004, at 12:25 PM, Kevin Altis wrote: > I've created a new mailing list so that anyone interested can be > notified automatically of cvs commits as they occur. This list will > not be archived. > > http://lists.sourceforge.net/lists/listinfo/pythoncard-cvs > > It doesn't appear the list is sending out messages yet, but I'm going > to wait at least 24 hours before submitting a support request to SF > staff. |
From: Brian D. <deb...@ho...> - 2004-04-26 03:12:41
|
#!/usr/bin/python from PythonCardPrototype import model,dialog import os,string """ Brian Debuire Python Builder for PyGame Applications Pretty simple...but nice : ) TODO LIST: - Handle file and dir overwriting - Fix the problem when selecting a background bitmap - Documentation - Handle more user events - Fix tab index - Bugs fix Any comments, ideas or critics please let me know deb...@ho... """ class PythonBuilder(model.Background): def on_openBackground(self, event): pass def on_buttonGenerate_mouseClick(self, event): """ If the file already exists it'll be overwrited! If the directory already exists, an error will be produced! Maybe this could be fixed with an exception. """ # Create the project directory os.mkdir(os.path.join('output',self.components.textFileName.text)) # Create the main project file f = open(os.path.join('output',self.components.textFileName.text,self.components.textFileName.text+'.py'),'w') f.write(self.filestaff()) # If selected, create a separated file with all classes and functions needed if self.components.checkBoxSepClasses.checked == 1: f = open(os.path.join('output',self.components.textFileName.text,self.components.textFileName.text+'Classes'+'.py'),'w') f.write(self.classes()) # Show info about the project location dialog.messageDialog(self, 'Project '+self.components.textFileName.text+' saved to \\Output\\'+self.components.textFileName.text+' directory', 'Python Builder Message',dialog.ICON_INFORMATION,dialog.BUTTON_OK) def on_buttonExit_mouseClick(self, event): self.Close() def filestaff(self): """ This is the skeleton of a pygame project file. Is there too many code lines??? """ text = "#! /usr/bin/python\n\n" text += "import pygame" if self.components.textModules.text != '': text += "," + self.components.textModules.text text += "\n\n" text += "from pygame.locals import *\n\n" if self.components.checkBoxSepClasses.checked == 0: if self.components.textClasses.text <> '': for c in string.splitfields(self.components.textClasses.text,','): text += "class "+c+":\n" text += " def __init__(self):\n" text += " pass\n\n" else: text += "import "+self.components.textFileName.text+"Classes.*\n\n" text += "def main():\n" text += " pygame.init()\n" for mode in self.components.choiceDisplay.items: if mode == self.components.choiceDisplay.selected: text += " screen = pygame.display.set_mode(("+mode+"))\n" break text += " pygame.display.set_caption(\'"+self.components.textCaption.text+"\')\n" if self.components.comboBack.selected == "black": text += " back = pygame.Surface(screen.get_size())\n" text += " back.fill((0,0,0))\n" elif self.components.comboBack.selected == "white": text += " back = pygame.Surface(screen.get_size())\n" text += " back.fill((255,255,255))\n" elif self.components.comboBack.selected == "bitmap": text += " back = load_image(\"*.*\")\n" text += " back.fill((0,0,0))\n" text += " screen.blit(back,(0,0))\n" text += " pygame.display.flip()\n\n\n\n" text += " while 1:\n" text += " for event in pygame.event.get():\n" text += " if event.type == KEYDOWN:\n" text += " return\n\n\n\n" text += "if __name__ == \'__main__\': main()" return text def classes(self): """ A method for the functions and classes """ text = "import pygame\n\n" text += "from pygame.locals import *\n\n" text += self.extras() if self.components.textClasses.text <> '': for c in string.splitfields(self.components.textClasses.text,','): text += "class "+c+":\n" text += " def __init__(self):\n" text += " pass\n\n" return text def extras(self): """ A method that contains extra functions """ text = "" if self.components.checkPng.checked == 1 or self.components.checkImage.checked == 1 or self.components.checkFont.checked == 1: text += "import os\n\n" os.mkdir(os.path.join('output',self.components.textFileName.text,self.components.textDir.text)) if self.components.checkPng.checked == 1: text += "def load_png(name):\n" text += " fullname = os.path.join(\'"+self.components.textDir.text+"\', name)\n" text += " try:\n" text += " image = pygame.image.load(fullname)\n" text += " if image.get_alpha is None:\n" text += " image = image.convert()\n" text += " else:\n" text += " image = image.convert_alpha()\n" text += " except pygame.error, message:\n" text += " print 'Unable to load image:', fullname\n" text += " raise SystemExit, message\n" text += " return image\n\n" if self.components.checkImage.checked == 1: text += "def load_image(name):\n" text += " fullname = os.path.join(\'"+self.components.textDir.text+"\',name)\n" text += " try:\n" text += " image = pygame.image.load(fullname)\n" text += " except pygame.error, message:\n" text += " print \"Unable to load image :\",fullname\n" text += " raise SystemExit, message\n" text += " image = image.convert()\n" text += " return image\n\n" if self.components.checkFont.checked == 1: text += "def load_font(name):\n" text += " try:\n" text += " fullname = os.path.join(\'"+self.components.textDir.text+"\',name)\n" text += " except pygame.error, message:\n" text += " print \"Unable to load font :\",fullname\n" text += " raise SystemExit, message\n" text += " return fullname\n\n" return text if __name__ == '__main__': app = model.PythonCardApp(PythonBuilder) app.MainLoop() |
From: Brian D. <deb...@ho...> - 2004-04-26 03:06:58
|
<html><div style='background-color:'><DIV class=RTE>Hello there,</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>I am having problems sending an attached file to the mailing list, and i dont know why.</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>I someone can help me, please let me know.</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>Thanks</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>Brian</DIV></div><br clear=all><hr>Add photos to your messages with <a href="http://g.msn.com/8HMAEN/2749??PS=">MSN 8. </a> Get 2 months FREE*.</html> |