gambas-devel Mailing List for Gambas (Page 243)
Brought to you by:
gambas
This list is closed, nobody may subscribe to it.
2003 |
Jan
(8) |
Feb
(17) |
Mar
(10) |
Apr
(19) |
May
(39) |
Jun
(82) |
Jul
(12) |
Aug
(21) |
Sep
(50) |
Oct
(21) |
Nov
(45) |
Dec
(42) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(83) |
Feb
(58) |
Mar
(18) |
Apr
(63) |
May
(33) |
Jun
(36) |
Jul
(42) |
Aug
(154) |
Sep
(90) |
Oct
(117) |
Nov
(120) |
Dec
(73) |
2005 |
Jan
(231) |
Feb
(117) |
Mar
(157) |
Apr
(94) |
May
(42) |
Jun
(41) |
Jul
(62) |
Aug
(75) |
Sep
(46) |
Oct
(72) |
Nov
(74) |
Dec
(25) |
2006 |
Jan
(34) |
Feb
(18) |
Mar
(84) |
Apr
(40) |
May
(19) |
Jun
(43) |
Jul
(59) |
Aug
(101) |
Sep
(123) |
Oct
(49) |
Nov
(80) |
Dec
(18) |
2007 |
Jan
(28) |
Feb
|
Mar
(1) |
Apr
(25) |
May
(11) |
Jun
(8) |
Jul
(9) |
Aug
(12) |
Sep
(13) |
Oct
(17) |
Nov
(73) |
Dec
(15) |
2008 |
Jan
(108) |
Feb
(34) |
Mar
(112) |
Apr
(82) |
May
(56) |
Jun
(74) |
Jul
(31) |
Aug
(72) |
Sep
(47) |
Oct
(9) |
Nov
(17) |
Dec
(11) |
2009 |
Jan
(139) |
Feb
(33) |
Mar
(16) |
Apr
(10) |
May
(11) |
Jun
(6) |
Jul
(86) |
Aug
(50) |
Sep
(13) |
Oct
(27) |
Nov
(59) |
Dec
(243) |
2010 |
Jan
(61) |
Feb
(31) |
Mar
(7) |
Apr
(22) |
May
(15) |
Jun
(12) |
Jul
(13) |
Aug
(33) |
Sep
(5) |
Oct
(33) |
Nov
(27) |
Dec
(19) |
2011 |
Jan
(16) |
Feb
(41) |
Mar
(7) |
Apr
(13) |
May
|
Jun
|
Jul
(10) |
Aug
(67) |
Sep
(7) |
Oct
(23) |
Nov
(5) |
Dec
(5) |
2012 |
Jan
(40) |
Feb
(53) |
Mar
(6) |
Apr
(35) |
May
(50) |
Jun
(19) |
Jul
(43) |
Aug
(110) |
Sep
(71) |
Oct
(24) |
Nov
(13) |
Dec
(18) |
2013 |
Jan
(13) |
Feb
(9) |
Mar
(29) |
Apr
(6) |
May
(18) |
Jun
(4) |
Jul
(24) |
Aug
(25) |
Sep
(30) |
Oct
(30) |
Nov
(8) |
Dec
(6) |
2014 |
Jan
(1) |
Feb
(3) |
Mar
|
Apr
(28) |
May
(6) |
Jun
(12) |
Jul
(8) |
Aug
(14) |
Sep
(128) |
Oct
(31) |
Nov
(27) |
Dec
(19) |
2015 |
Jan
(5) |
Feb
(3) |
Mar
(11) |
Apr
(4) |
May
(10) |
Jun
|
Jul
(1) |
Aug
(11) |
Sep
(20) |
Oct
(19) |
Nov
|
Dec
(6) |
2016 |
Jan
(1) |
Feb
(1) |
Mar
(11) |
Apr
(4) |
May
|
Jun
(7) |
Jul
|
Aug
|
Sep
(6) |
Oct
(22) |
Nov
(6) |
Dec
(8) |
2017 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(2) |
May
|
Jun
(6) |
Jul
(28) |
Aug
(87) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
From: Jean-Francois P. <cm...@me...> - 2003-06-02 15:35:24
|
I haven't used gambas yet so I'm completely in the dark here , but wouldn't it be possible to use /dev/ttySx as a normal file to use the serial ports (and other devices) without the need for a special components I mean if cat /dev/ttyS0 display all the raw input from a mouse all you need is a data parser and you can read mouse data , wouldn't it work ? maybe I'm way out on this but I'd like to know why Rob wrote: >You would need to write a parallel port component in C or C++. Since someone >was just asking about the serial port, maybe one of you should write a >generalized Unix device component with support for ioctl functions and maybe >stty for the serial stuff. (I have no serial devices at all and my only >parallel port devices have undocumented interfaces, so I won't be of much >help writing or testing such a thing.) > >Further discussion about such a component would probably be appropriate to >keep talking about on gambas-devel, but further discussion about workarounds >like using helper apps from your Gambas project (though I know of no parallel >port helper apps like cu is for the serial port) should go to gambas-user. >For example, if what you really want to do is drive a printer, there's >already a printer component in Gambas. > >If you do want to learn how to write a component, there's an example one in >src/lib/example from the Gambas source tarball. It looks like it's included >in the Gambas build by default, so if you go into Project Properties and >check off gb.example under Components, you can then use the component >explorer to see how its methods and properties show up to Gambas. It's not >documented, but at least the source is heavily commented. Notice that the >example is GPL'ed so make sure to share your source with all of us if you >base a component on it ;) > >Rob > > -- -------------------- Jean-Francois Perreault NanoTech Informatique UIN 783056 cm...@me... |
From: Rob <sou...@ku...> - 2003-06-02 13:39:36
|
You would need to write a parallel port component in C or C++. Since som= eone=20 was just asking about the serial port, maybe one of you should write a=20 generalized Unix device component with support for ioctl functions and ma= ybe=20 stty for the serial stuff. (I have no serial devices at all and my only=20 parallel port devices have undocumented interfaces, so I won't be of much= =20 help writing or testing such a thing.) Further discussion about such a component would probably be appropriate t= o=20 keep talking about on gambas-devel, but further discussion about workarou= nds=20 like using helper apps from your Gambas project (though I know of no para= llel=20 port helper apps like cu is for the serial port) should go to gambas-user= =2E =20 For example, if what you really want to do is drive a printer, there's=20 already a printer component in Gambas. If you do want to learn how to write a component, there's an example one = in=20 src/lib/example from the Gambas source tarball. It looks like it's inclu= ded=20 in the Gambas build by default, so if you go into Project Properties and=20 check off gb.example under Components, you can then use the component=20 explorer to see how its methods and properties show up to Gambas. It's n= ot=20 documented, but at least the source is heavily commented. Notice that th= e=20 example is GPL'ed so make sure to share your source with all of us if you= =20 base a component on it ;) Rob |
From: Rob <sou...@ku...> - 2003-06-01 22:37:41
|
On Sunday 01 June 2003 18:03, Charlie wrote: > Salut Rob, > saw your MDI-gambas IDE. > Now you have to dock windows ! Yes, how about that! I'm afraid Benoit made the MDI part easy but the do= cking=20 part might need a little more than 10 lines of code ;) Rob |
From: Charlie <kar...@fe...> - 2003-06-01 22:04:24
|
Salut Rob, saw your MDI-gambas IDE. Now you have to dock windows ! charlie |
From: Charlie <kar...@fe...> - 2003-06-01 22:02:51
|
Salut, using now since one year gambas ( started with gambas-0.30) Since this time I ask to have the possibillty to use form-,class- and module files shared. For the simple reason, that everyone has classes and modules, sometimes forms, which can be used in other project. The only way actually is to copy them to the project. You can imagine what is to do, if you make changes. I tryed it with linking, that works, but if you make a change into this file, it will be saved in the project-directory and not in the origin place. I never dived into the gambas project-mangagement, but is it realy such a problem, or am I the only one, who don't like to envent the weel daily? Another thing are, all the open windows after a debug or big changments. Under TOOLS or anywhere, I would like to have a 'Close all Windows' with automatic saving like after F5. Leting the Activform open or not ????? And at last, all Project-explorer can't get higher then their starting point. amicalement Charlie |
From: Rob <sou...@ku...> - 2003-06-01 21:34:31
|
On Sunday 01 June 2003 15:56, Fabien wrote: > Put a workspace area on your futur mdiform(for the exemple named mdiFor= m) > Dim hForm as frmChild > hForm =3D New frmChild(WorkSpace) Oops, yeah, in my instructions I was confusing the MDI workspace control = with=20 the splitter, into which you can just cut and paste controls. (On the ot= her=20 hand, I don't seem to need to do any resize event stuff for the splitter = to=20 work...) Rob |
From: Fabien <Gam...@wa...> - 2003-06-01 19:51:14
|
Le Vendredi 30 Mai 2003 08:40, andrea a =E9crit : > Please tell me how to create an mdi form, i'm a beginner..but i know VB > and i want to create a database environment like access > andy Hi andy =46irst you are not in the good mailing list ! You must to be on gam...@li.... How to use the WorkSpace ? Put a workspace area on your futur mdiform(for the exemple named mdiForm) after create a other form named 'frmChild' for example in the mdiform, call the child by : Dim hForm as frmChild hForm =3D New frmChild(WorkSpace) In fact the frmChild is child of WorkSpace ! Use the Component explorer to understand the WorksPACE options, like the=20 arrangement, or any thing else ! Think to use the move property of the workspace widget, to place and resize= =20 it, in the _Resize event of the mdiform I think you need to use the split component too, it's easy to use !, just=20 place the componant in it , they are automatiquely placed, in this case you= =20 must to manage the split component in the _resize event ! =46abien Bodard Tell me if you don't understand something else ! |
From: Rob <sou...@ku...> - 2003-05-30 12:58:41
|
On Friday 30 May 2003 02:40, andrea wrote: > Please tell me how to create an mdi form, i'm a beginner..but i know VB > and i want to create a database environment like access In the tool palette of gambas 0.57 at the bottom you'll find a "Workspace= "=20 component. Drop it on your form, size it appropriately, and then put oth= er=20 controls inside it. Voila, instant MDI app. Better yet, if you already = have=20 controls on a form, you can cut and paste them into the Workspace control= and=20 it will all Just Work(tm), at least as far as I can tell. However, if you're trying to build an Access lookalike you should take a = look=20 at the gambas database manager app, whose source comes with gambas. It's= =20 already an MDI app written in Gambas and is about a third of the way towa= rds=20 where you want to get. (Actually, to really duplicate Access' functional= ity=20 you'd have to integrate most of the Gambas IDE's features as well as desi= gn a=20 reporting component. Not that I think it's impossible at all; I was just= =20 posting about such a possibility on another mailing list where someone wa= s=20 looking for long term Access alternatives.) By the way, if you're not on the gambas-user list, please join. Gambas-d= evel=20 is meant for discussion of changes to Gambas itself, not programming in=20 Gambas. Gambas-user is for discussion of programming in Gambas and if we= =20 talk about this any more we should probably do it there. Rob |
From: andrea <and...@ti...> - 2003-05-30 06:49:22
|
Please tell me how to create an mdi form, i'm a beginner..but i know VB and i want to create a database environment like access andy |
From: Benoit M. <ga...@fr...> - 2003-05-25 21:50:59
|
Le Dimanche 25 Mai 2003 21:14, Jean-Francois Perreault a =E9crit : > Hi, Hi, > > (I moved this to devel since this is an issue with gambas itself) Game over ! The gambas-devel is used for gambas development topics. You sho= uld=20 have sent this mail to the user mailing-list. > I'm still trying to install gambas (now 0.57) but it just won't work :\ Always on a gentoo ? > > so far I tried with --disable-qt-component and --disable-kde-component > and that gave me > > ERROR: #27: Cannot load library '/opt/gambas/lib/lib.gb.qt.la': file not > found Logical, the IDE needs the qt component ! How could the IDE display a GUI=20 without it ? > > I included a strace when trying with these options > > I also tried with the qt component and without the kde component but > that just segfault Where ? > I also included an strace > > I also tried with both kde and qt components but that as before crash > during make install at the "Creating the library info files..." step > > is there any way to fix this ? why does this work on other distributions > ? is it because they use earlier version or glibc or kde ? > could I fix this by downgrading glibc/kde ? No idea, you should give complete information on your system. Even with tha= t,=20 it will be difficult to help you, but without it is absolutely impossible. = I=20 can't read mind :-) > > also I noticed configure script re-execute itself with > --enable-ltdl-convenience at the end , could that have anything to do > with my problem ? It does not rexecute itself, it configure the libtool package that is a too= l=20 provided by GNU that has its own configure script in its own directory. > > thanks , Not at all, =2D-=20 Benoit Minisini mailto:ga...@us... |
From: Jean-Francois P. <cm...@me...> - 2003-05-25 19:15:32
|
Hi, (I moved this to devel since this is an issue with gambas itself) I'm still trying to install gambas (now 0.57) but it just won't work :\ so far I tried with --disable-qt-component and --disable-kde-component and that gave me ERROR: #27: Cannot load library '/opt/gambas/lib/lib.gb.qt.la': file not found I included a strace when trying with these options I also tried with the qt component and without the kde component but that just segfault I also included an strace I also tried with both kde and qt components but that as before crash during make install at the "Creating the library info files..." step is there any way to fix this ? why does this work on other distributions ? is it because they use earlier version or glibc or kde ? could I fix this by downgrading glibc/kde ? also I noticed configure script re-execute itself with --enable-ltdl-convenience at the end , could that have anything to do with my problem ? thanks , -- -------------------- Jean-Francois Perreault NanoTech Informatique UIN 783056 cm...@me... |
From: Fabien <Gam...@wa...> - 2003-05-24 17:32:50
|
Hello Actually i'm remake the gambas open box a new time. I've made the beginning, but now i want to know what are your suggestion and your needs. I've put a tabs system like konqueror, and with it we can add direct link to a sp=E9cific directory that we choose. You can add max 8 free dir actually= in my new version. What do you think about this id=E9a? I've put a file management (but just rename, and delete... maby rapidly copy, paste, and treecopy (to copy picture directory)). What about the New picture viewer in gambas 0.56 ? Give me all your suggestion ! Please I need it in a short time to make a better work !. =46abien |
From: Charlie <kar...@fe...> - 2003-05-20 19:29:28
|
Salut, I follow your discussion , since she was started. I think it's great idea from Rob........ but realy I don't see the need = to have that. >On Monday 19 May 2003 04:48, Benoit Minisini wrote: > =20 > >>When you have a form named Form1 in VB, and you type Form1.Show, what >>happens in the background ? Exactly what you must do by hand in Gambas:= the >>form is instanciated, and the instance is given the same name as the fo= rm. >> =20 >> > >Indeed, and that's why I hope to automate and hide the process in Gambas= =2E =20 >There's no need for the user to see it if it's the same in every project= =2E > To see on debugging all what happend, was and is always nessecary for developers. > =20 > >>1) The newbie is confused, because class and instance of this class hav= e >>the same name. So the newbie don't really understand what he does exact= ly. >> =20 >> > >True, and it's kinda hard to reuse forms in VB. Nonetheless, there are = a lot=20 >of VB programmers who are going to be interested in Gambas and I see no = >reason to hinder them with good programming style ;) The truth is, even= in=20 >your examples to date you don't have any examples of form reuse, and I e= xpect=20 >most VB programmers are used to the idea that forms only ever get loaded= =20 >once. So I think that making it optionally easy for the user (since thi= s is=20 >BASIC after all) is more important than Java-like reuse of everything. > > =20 > >>2) The form is instanciated when you try to use the form class as a for= m >>instance. You save two lines of code and one variable at first, but whe= n >> =20 >> > >Far more importantly, you save a learning curve. People expect to be ab= le to=20 >just create a form, hit F5 and have it come up. That's the beauty of VB= , the=20 >ability to make it do something visible without writing a single line of= =20 >code. VB's appeal has never been clean design or good programming style= or=20 >any of that stuff, it's been the fact that it's easy to learn and use. = And=20 >Linux programmers who value "technically correct" solutions are already = using=20 >C/C++/Java, whereas VB programmers currently have nowhere to go. > > =20 > >>you want to exit the program, you must be very careful not to make a >>reference to a closed form, elsewhere this form is recreated, and your >>program does not exit ! (I had this problem many times in my VB program= s) >> =20 >> > >Having never actually unloaded a form in VB except to force an exit (by = >unloading the main form), I never ran into this problem. > =20 > Made the same experience like Beno=EEt. Closed programms, staying still in the Task-manger, because the main=20 form is unloaded, but not one or more of the other forms called? Even MS has an workaround for that, doing somthing like: for i =3D 0 to forms.count unload forms(i) next (my be thats not the exact syntax) > =20 > >>Maybe I could have the same behavior with forms on Gambas. But I think = that >>the disadventages are greater than the advantages. >> =20 >> > >We have different goals. You're looking to make something that's like V= B,=20 >only good. I'm looking for something that will make VB programmers as=20 >comfortable under Linux as Openoffice makes Word users. > > =20 > >>Modifying the IDE will not help you... It is a functionnality that must= be >>add to the interpreter: something like auto-instanciating class. But I >>don't even know if it is technically possible at the moment ! >> =20 >> > >Sure I can. As far as the "press F5 without having written any code" is= sue=20 >goes, I can add something to the properties dialog that says "Make VB st= yle=20 >project with this startup form:", create a file called "vbproj.class" wh= ich=20 >is hidden from view in the IDE and contains a sub main that instantiates= and=20 >shows the desired form. vbproj.class becomes the startup class as far a= s=20 >Gambas the language is concerned, just as myfilename.vbp is the "startup= =20 >class" of a VB project, but the user never sees or edits it. That part'= s=20 >pretty trivial. > >Since you don't seem to have implemented project-wide global variables o= r=20 >include files yet, I haven't figured out a way to instantiate all the fo= rms=20 >in the project at startup yet (which would take care of the "form being = >instantiated the first time you refer to it" problem), nor how to refer = to=20 >those forms outside the startup class if you do, so I may be stuck there= for=20 >now. It seems to me the easiest way to take care of that without bother= ing=20 >non-VB-familiar Gambas users would be to make a compiler directive like = "USE=20 >GLOBALS" or something that extends the scope of public variables to the = >entire project. But even without any of that, just having VB programmer= s or=20 >novice Gambas programmers make a form, run it and have it show up=20 >automatically will be a breakthrough in making Gambas seem easier than i= t is,=20 >I think. > =20 > Please no project wide globals. You have more to write, bur less to find = (why does my iCounter is 20 and not 5 ) >I know it's ugly, but so is VB and I'm trying to recreate the VB experie= nce=20 >using Gambas. ;) I am utterly uninterested in teaching VB programmers h= ow to=20 >be better programmers of other languages, I just want them to be able to= say,=20 >"Hey, there's an equivalent tool for Linux that's just as easy." I neve= r=20 >tried to teach Word users LyX or LaTeX and I'm not going to try to teach= VB=20 >users about encapsulation and strongly typed variables. I'm hoping to a= t=20 >least get a tool together that recreates their .frm files as Gambas form= s,=20 >even if I can't convert the code automatically. And I know that's not y= our=20 >goal, and so I'll try to avoid stepping on your toes (I can't imagine th= at=20 >I'll touch the interpreter, for one thing.) I mean no disrespect by any= of=20 >this; I just want to make life easier for my users. > >I suppose this really belonged on gambas-devel, sorry about that. > >Rob > =20 > But Rob, do you realy think it is a good idea to shift, in our case=20 gambas to a level that VB programmers refind there level, for a easy aprochment ? That is not reality, VB reaches his end and if you ever had a look to=20 =2Enet, you will have seen, that what was hidden in VB reaches the surface in .net. Charlie |
From: Benoit M. <ga...@fr...> - 2003-05-20 18:48:29
|
Le Mardi 20 Mai 2003 15:25, Rob a =E9crit : > On Tuesday 20 May 2003 03:34, Benoit Minisini wrote: > > So I will add a static public native method "Main" to the Form class th= at > > will automatically instanciate the form and show it. > > So, no need to add stuff to the IDE. Just set the form as startup class, > > and everything will work. And you will be able to add your own Main > > implementation if you need yet. > > This sounds like a great idea and will go a long way towards making people > more comfortable. > > As for the global variable problem, I think making the forms available to > the other classes in the project would be a step in the right direction, = if > it's technically possible. What about something like > > Dim myTest as Form > Set myTest =3D Application.Forms("testform") > > where testform is the name of the form to which you want to refer? I know > you don't have an Application object (or equivalent) presently, but I know > somewhere in the interpreter you've gotta be tracking which forms have be= en > instantiated.... maybe there could also be a way to get a count of forms > and get references to them in a loop. > > Rob > You have the Windows classes, that is a pseudo-collection of each opened=20 windows. DIM hWindow AS Window DIM hForm AS Form =46OR EACH hWindow IN Windows TRY hForm =3D hWindow IF Error THEN CONTINUE ' This window is a form ' In the standard use of Gambas, all windows are form ' But you can instanciate directly the Window class NEXT =2D-=20 Benoit Minisini mailto:ga...@us... |
From: Rob <sou...@ku...> - 2003-05-20 13:26:32
|
On Tuesday 20 May 2003 03:34, Benoit Minisini wrote: > So I will add a static public native method "Main" to the Form class th= at > will automatically instanciate the form and show it. > So, no need to add stuff to the IDE. Just set the form as startup class= , > and everything will work. And you will be able to add your own Main > implementation if you need yet. This sounds like a great idea and will go a long way towards making peopl= e=20 more comfortable. As for the global variable problem, I think making the forms available to= the=20 other classes in the project would be a step in the right direction, if i= t's=20 technically possible. What about something like Dim myTest as Form Set myTest =3D Application.Forms("testform") where testform is the name of the form to which you want to refer? I kno= w you=20 don't have an Application object (or equivalent) presently, but I know=20 somewhere in the interpreter you've gotta be tracking which forms have be= en=20 instantiated.... maybe there could also be a way to get a count of forms = and=20 get references to them in a loop. Rob |
From: Benoit M. <ga...@fr...> - 2003-05-20 07:56:46
|
Le Lundi 19 Mai 2003 15:23, Rob a =E9crit : > On Monday 19 May 2003 04:48, Benoit Minisini wrote: > > When you have a form named Form1 in VB, and you type Form1.Show, what > > happens in the background ? Exactly what you must do by hand in Gambas: > > the form is instanciated, and the instance is given the same name as the > > form. > > Indeed, and that's why I hope to automate and hide the process in Gambas. > There's no need for the user to see it if it's the same in every project. > > > 1) The newbie is confused, because class and instance of this class have > > the same name. So the newbie don't really understand what he does > > exactly. > > True, and it's kinda hard to reuse forms in VB. Nonetheless, there are a > lot of VB programmers who are going to be interested in Gambas and I see = no > reason to hinder them with good programming style ;) The truth is, even = in > your examples to date you don't have any examples of form reuse, and I > expect most VB programmers are used to the idea that forms only ever get > loaded once. So I think that making it optionally easy for the user (sin= ce > this is BASIC after all) is more important than Java-like reuse of > everything. I'm not agree with the last point. Gambas will have no interest if he has o= nly=20 the same bug^H^H^H functionalitites than VB. > > > 2) The form is instanciated when you try to use the form class as a form > > instance. You save two lines of code and one variable at first, but when > > Far more importantly, you save a learning curve. People expect to be able > to just create a form, hit F5 and have it come up. That's the beauty of > VB, the ability to make it do something visible without writing a single > line of code. VB's appeal has never been clean design or good programming > style or any of that stuff, it's been the fact that it's easy to learn and > use. And Linux programmers who value "technically correct" solutions are > already using C/C++/Java, whereas VB programmers currently have nowhere to > go. Mmmmf... :-) > > > you want to exit the program, you must be very careful not to make a > > reference to a closed form, elsewhere this form is recreated, and your > > program does not exit ! (I had this problem many times in my VB program= s) > > Having never actually unloaded a form in VB except to force an exit (by > unloading the main form), I never ran into this problem. Maybe you have used the END function, that is completely buggy in VB: it do= es=20 not free all system resources in Windows/Dos, and frequently crashes on=20 Windows/Nt. > > > Maybe I could have the same behavior with forms on Gambas. But I think > > that the disadventages are greater than the advantages. > > We have different goals. You're looking to make something that's like VB, > only good. I'm looking for something that will make VB programmers as > comfortable under Linux as Openoffice makes Word users. > > > Modifying the IDE will not help you... It is a functionnality that must > > be add to the interpreter: something like auto-instanciating class. But= I > > don't even know if it is technically possible at the moment ! > > Sure I can. As far as the "press F5 without having written any code" iss= ue > goes, I can add something to the properties dialog that says "Make VB sty= le > project with this startup form:", create a file called "vbproj.class" whi= ch > is hidden from view in the IDE and contains a sub main that instantiates > and shows the desired form. vbproj.class becomes the startup class as far > as Gambas the language is concerned, just as myfilename.vbp is the "start= up > class" of a VB project, but the user never sees or edits it. That part's > pretty trivial. I have another solution - See my other post. > > Since you don't seem to have implemented project-wide global variables or > include files yet, I haven't figured out a way to instantiate all the for= ms > in the project at startup yet (which would take care of the "form being > instantiated the first time you refer to it" problem), nor how to refer to > those forms outside the startup class if you do, so I may be stuck there > for now. It seems to me the easiest way to take care of that without > bothering non-VB-familiar Gambas users would be to make a compiler > directive like "USE GLOBALS" or something that extends the scope of public > variables to the entire project. But even without any of that, just havi= ng > VB programmers or novice Gambas programmers make a form, run it and have = it > show up > automatically will be a breakthrough in making Gambas seem easier than it > is, I think. Alas, I think having project global variables is not technically possible a= t=20 the moment. And I think this may prevent me from implementing the possibili= ty=20 to use projects as libraries. > > I know it's ugly, but so is VB and I'm trying to recreate the VB experien= ce > using Gambas. ;) I am utterly uninterested in teaching VB programmers how > to be better programmers of other languages, I just want them to be able = to > say, "Hey, there's an equivalent tool for Linux that's just as easy." I > never tried to teach Word users LyX or LaTeX and I'm not going to try to > teach VB users about encapsulation and strongly typed variables. I'm > hoping to at least get a tool together that recreates their .frm files as > Gambas forms, even if I can't convert the code automatically. And I know > that's not your goal, and so I'll try to avoid stepping on your toes (I > can't imagine that I'll touch the interpreter, for one thing.) I mean no > disrespect by any of this; I just want to make life easier for my users. > I hope we will find compromise between an original gambas and a gambas acti= ng=20 like vb (beeerk) :-) Regards, =2D-=20 Benoit Minisini mailto:ga...@us... |
From: Benoit M. <ga...@fr...> - 2003-05-20 07:49:13
|
For the "hit F5 and run" functionality, I make this proposal : Maybe you don't know, but each form class inherits the native class Form. So I will add a static public native method "Main" to the Form class that will automatically instanciate the form and show it. So, no need to add stuff to the IDE. Just set the form as startup class, and everything will work. And you will be able to add your own Main implementation if you need yet. The only problem is that I need to modify the interpreter, so it will be in a next version only. Are the "hit F5 and run" guys find this satisfying ? :-) -- Benoit Minisini mailto:ga...@us... |
From: Ken S. <sch...@wi...> - 2003-05-14 18:15:47
|
Sorry if I came a little hard on the subject (berserker : -) But language designers treating programmers like little children And erecting synthetic hurdles to make programming difficult for us Is a pet peeve (a curse on Modula and all its demon spawn) If data wants to be free, variables definitely want to be global : -) However, I found a simple workaround (make a global, yea) Which makes it simpler than the examples you gave (Although it destroys your modularity a bit : -) Make a module, say MyMod and in it put PUBLIC MyString as String In Form2 OkButton_Click put MyMod.MyString =3D TextBox1.Text ME.Close In Form1 AddButton_Click put ... Create Form2 MyForm2.showmodal ListBox1.Add(MyMod.MyString) This means only 2 extra lines of code are needed Over the the simplest procedure that I can think of And since MyString can be used for other things Doing the same trick from a thing on Form3 Would only require 1 extra line of code I still would like a property for controls for public or private Make the property default to private if that is your wish Even hide it if you want (make us look hard for it) Just as long as it is there somewhere =3D good BTW, I had ask about programmatic app shutdown And you were a little iffy on such a procedure ME.Close in the startup class exits cleanly Ok, I'll go back to user and leave y'all alone : -) Benoit Minisini wrote: >Le Lundi 12 Mai 2003 05:23, Ken Schrock a =E9crit : > =20 > >>Sorry about posting to the wrong list >>And thanks for answering my question anyway : -) >>Particularly since it doesn't look like I will be using it anyway >>Anal retentive, overbearing, "modular", "tightly scoped", "object orien= ted" >>Languages just keep me going back to C >> >>Since this is the developers form... >>Come on guys, seriously, I mean really... >> >>Form1.Listbox1.Insert(Textbox1.Text) >> (or its equivalent in C) >> >>Is simple, clean, elegant, intuitive, logical >>Your two examples are none of those things >>Think about it, think about the hoops you make people jump through >>Just to pass a single simple string from a client window to a parent wi= ndow >> >>This may get you an award from an egghead language designer's group >>But nobody will use it. That is fine if that is what you really want to= do >>However, if you want anybody to use it, you have to rethink this >>I'm not going to go through all that and nobody else will either >> >>It is a shame, as it is an excellent idea, and well executed >>But it appears crippled by dictatorial design philosophy >>And really, we don't need any more of that kind >>The landscape is littered with plenty already >> >> =20 >> > >I don't want to say that VB programmers are "bad", but that they tend to= use=20 >bad programming practices. I didn't want to hurt you, or anyone else. > >I'm going to try to explain why, even if it is difficult for me to do th= at in=20 >English. > >Whatever you think about object-oriented programming, encapsulation is t= he way=20 >to write good programs, even if the language you use is not object-orien= ted. > >In a few words, encapsulation is a programming process achieved by: > >1) Separating your program into different pieces. > >2) Minimizing the links between these pieces to make reusability, debugg= ing=20 >and evolution easy. > >In concrete terms, I dislike accessing controls outside their forms, bec= ause=20 >it creates unnecessary links between two pieces of your program: the for= m,=20 >and the code that access it from outside. > >You can see forms as a high-level encapsulation unit imposed by the lang= uage. > >For example, let's suppose you have a form Form1 with a list box ListBox= 1, and=20 >that you directly modify this list box from a Form2. > >If you decide to replace later the list box by a list view, you must the= n=20 >modify Form2 to reflect the change. So you have broken the encapsulation= =20 >provided by the forms. > >*Of course*, I am agree with you, it is stupid to replace a single line = of=20 >code by all the stuff just for "philosophical" reasons. But if you must = write=20 >and *maintain* a program with hundreds of classes and forms, you will li= ke=20 >encapsulation ! :-) > >And to show everybody that I am not crippled by dictatorial design philo= sophy=20 >:-), I will add an option to the next version of the Gambas compiler to = make=20 >form controls public. > >I hope this will help VB programmers to port their program more easily, = but I=20 >reserve the right to claim that encapsulation is a good thing for everyo= ne,=20 >even it need a few more, apparently stupid, lines of code. > > =20 > --=20 Using Lindows=20 |
From: Dan P. <da...@ha...> - 2003-05-14 17:58:42
|
My biggest thing is, _how_ do I use all these forms if none of them can t= alk=20 to one another. It'd be like having a bunch of different programs runnin= g=20 and none of them know about the other guy. If you can demonstrate how a form, say form1 can be up on the screen w/ a= =20 handful of options and another form, say form2 can be on the screen as we= ll. =20 And information modified on form2 needs to be shown on form1, how do you = do=20 that? Any code that can truely demonstrate how to do that will help. As= you=20 can tell from my previous posts, coming from vb and knowing how to do it=20 there sort of makes it hard to work in Gambas because I don't know how to= =20 talk to various parts of my program. It's not a "have to have this feature" thing, it's more of a, "don't know= how"=20 thing. Although, in my mind, it's better programming _not_ to have anymo= re=20 code in the form than absolutely necessary. My method of programming has= led=20 me to do 90% or more of my code in modules that talk to the forms as need= ed. =20 Because events aren't raised outside of the form in VB but on the object=20 itself, take a command button for instance. When someone clicks the butt= on,=20 the command1_click() event is raised. so I have something like this: Command button OK public sub command1_click() =09'Need to call save routine for options dialog box =09SaveSettings end sub This allows me to have a module that _is_ resusable for any type of proje= ct=20 and I simply cut/paste the sections of code I need for project 2, 3, etc. However, the SaveSettings subroutine that is in module1 needs to be able = to=20 directly work with the information located on frmOptions. =20 Like I've shown, I just don't know how to do programming otherwise is my=20 problem of jumping to Gambas. =20 Now, to defend Gambas, I think that the Gui is very comfortable looking a= nd I=20 think that so far it is a great product. The work that has been put into= =20 making the code easy to work with has obviously taken some serious volunt= eer=20 time by people willing to do it and that's awesome. If I could assist in= =20 this I would certainly do so, unfortunately my skills are just too limite= d to=20 do so. On Wednesday 14 May 2003 08:52, Benoit Minisini wrote: > Le Lundi 12 Mai 2003 05:23, Ken Schrock a =E9crit : > > Sorry about posting to the wrong list > > And thanks for answering my question anyway : -) > > Particularly since it doesn't look like I will be using it anyway > > Anal retentive, overbearing, "modular", "tightly scoped", "object > > oriented" Languages just keep me going back to C > > > > Since this is the developers form... > > Come on guys, seriously, I mean really... > > > > Form1.Listbox1.Insert(Textbox1.Text) > > (or its equivalent in C) > > > > Is simple, clean, elegant, intuitive, logical > > Your two examples are none of those things > > Think about it, think about the hoops you make people jump through > > Just to pass a single simple string from a client window to a parent > > window > > > > This may get you an award from an egghead language designer's group > > But nobody will use it. That is fine if that is what you really want = to > > do However, if you want anybody to use it, you have to rethink this I= 'm > > not going to go through all that and nobody else will either > > > > It is a shame, as it is an excellent idea, and well executed > > But it appears crippled by dictatorial design philosophy > > And really, we don't need any more of that kind > > The landscape is littered with plenty already > > I don't want to say that VB programmers are "bad", but that they tend t= o > use bad programming practices. I didn't want to hurt you, or anyone els= e. > > I'm going to try to explain why, even if it is difficult for me to do t= hat > in English. > > Whatever you think about object-oriented programming, encapsulation is = the > way to write good programs, even if the language you use is not > object-oriented. > > In a few words, encapsulation is a programming process achieved by: > > 1) Separating your program into different pieces. > > 2) Minimizing the links between these pieces to make reusability, debug= ging > and evolution easy. > > In concrete terms, I dislike accessing controls outside their forms, > because it creates unnecessary links between two pieces of your program= : > the form, and the code that access it from outside. > > You can see forms as a high-level encapsulation unit imposed by the > language. > > For example, let's suppose you have a form Form1 with a list box ListBo= x1, > and that you directly modify this list box from a Form2. > > If you decide to replace later the list box by a list view, you must th= en > modify Form2 to reflect the change. So you have broken the encapsulatio= n > provided by the forms. > > *Of course*, I am agree with you, it is stupid to replace a single line= of > code by all the stuff just for "philosophical" reasons. But if you must > write and *maintain* a program with hundreds of classes and forms, you = will > like encapsulation ! :-) > > And to show everybody that I am not crippled by dictatorial design > philosophy > > :-), I will add an option to the next version of the Gambas compiler to > : make > > form controls public. > > I hope this will help VB programmers to port their program more easily,= but > I reserve the right to claim that encapsulation is a good thing for > everyone, even it need a few more, apparently stupid, lines of code. --=20 ----------------------- -Thanks, Dan -Haight & Associates, Inc. -907.586.9788 ----------------------- |
From: Benoit M. <ga...@fr...> - 2003-05-14 17:03:35
|
Le Lundi 12 Mai 2003 18:25, Dan Phillips a =E9crit : > Wow, my thoughts zactly. You can call VB developers "bad" but the truth > is, there is nothing more clean than a single line of code to modify say a > text field on a form not where the code is written. > > VB does this, > Kylix does this, > Delphi does this, > ScreenIO for Cobol does this. If everyone do that, it doesn't mean necessary that it is a good thing to d= o ! > > VB has sold a lot of copies and if this compiler has any hopes to adopt VB > developers, they need to make this small option available. You are right, but : =2D I have nothing to sell. =2D I don't want to "adopt" VB developers, I want to have a tool "like" VB = on=20 Linux, but, above all, better than VB ! > > As is, I was excited when I found this language but cannot use it for my > purposes because I have several forms that need a major amount of > modification based on code from elsewhere. Sorry guys, I guess I'm just a > "bad developer". > See my previous post ! I'm not a nasty man :-) If I can help VB people to port their programs, I will do it, but only it d= oes=20 not break the internal design of the language. You must know that there are some VB features that will NEVER be implemente= d=20 in Gambas, because it implies too many changes to its internals. =46or example: passing arguments by reference. Regards, =2D-=20 Benoit Minisini mailto:ga...@us... |
From: Benoit M. <ga...@fr...> - 2003-05-14 17:03:33
|
Le Lundi 12 Mai 2003 05:23, Ken Schrock a =E9crit : > Sorry about posting to the wrong list > And thanks for answering my question anyway : -) > Particularly since it doesn't look like I will be using it anyway > Anal retentive, overbearing, "modular", "tightly scoped", "object oriente= d" > Languages just keep me going back to C > > Since this is the developers form... > Come on guys, seriously, I mean really... > > Form1.Listbox1.Insert(Textbox1.Text) > (or its equivalent in C) > > Is simple, clean, elegant, intuitive, logical > Your two examples are none of those things > Think about it, think about the hoops you make people jump through > Just to pass a single simple string from a client window to a parent wind= ow > > This may get you an award from an egghead language designer's group > But nobody will use it. That is fine if that is what you really want to do > However, if you want anybody to use it, you have to rethink this > I'm not going to go through all that and nobody else will either > > It is a shame, as it is an excellent idea, and well executed > But it appears crippled by dictatorial design philosophy > And really, we don't need any more of that kind > The landscape is littered with plenty already > I don't want to say that VB programmers are "bad", but that they tend to us= e=20 bad programming practices. I didn't want to hurt you, or anyone else. I'm going to try to explain why, even if it is difficult for me to do that = in=20 English. Whatever you think about object-oriented programming, encapsulation is the = way=20 to write good programs, even if the language you use is not object-oriented. In a few words, encapsulation is a programming process achieved by: 1) Separating your program into different pieces. 2) Minimizing the links between these pieces to make reusability, debugging= =20 and evolution easy. In concrete terms, I dislike accessing controls outside their forms, becaus= e=20 it creates unnecessary links between two pieces of your program: the form,= =20 and the code that access it from outside. You can see forms as a high-level encapsulation unit imposed by the languag= e. =46or example, let's suppose you have a form Form1 with a list box ListBox1= , and=20 that you directly modify this list box from a Form2. If you decide to replace later the list box by a list view, you must then=20 modify Form2 to reflect the change. So you have broken the encapsulation=20 provided by the forms. *Of course*, I am agree with you, it is stupid to replace a single line of= =20 code by all the stuff just for "philosophical" reasons. But if you must wri= te=20 and *maintain* a program with hundreds of classes and forms, you will like= =20 encapsulation ! :-) And to show everybody that I am not crippled by dictatorial design philosop= hy=20 :-), I will add an option to the next version of the Gambas compiler to mak= e=20 form controls public. I hope this will help VB programmers to port their program more easily, but= I=20 reserve the right to claim that encapsulation is a good thing for everyone,= =20 even it need a few more, apparently stupid, lines of code. =2D-=20 Benoit Minisini mailto:ga...@us... |
From: Dan P. <da...@ha...> - 2003-05-12 22:58:10
|
I hope that my concern and reason for emailing my thoughts doesn't convey= that=20 the progress from alpha to beta to whatever has ceased. I was under the=20 presumption that this sort of feedback is what helps the programs user=20 ability and features, customer feedback? =20 I do fully understand that this is an alpha version. If these other feat= ures=20 and such were in the program, I'd gladly pay what I payed for VB to obtai= n=20 Gambas if it were _not_ free. I guess my point is, I'm very interested in the continued use of Gambas. = I=20 only wish my programming skills were better to be able to help with it. = The=20 call to, "bad programmers" sorta put me on the edge of the de"fence". :) On Monday 12 May 2003 13:11, Rob wrote: > (copied to gambas-user in hopes of moving this thread over) > > As it is right now, I don't actually think a program to convert VB proj= ects > to Gambas (at least the forms themselves) will be that hard, and for th= at > matter the Gambas IDE itself is written in Gambas. So if no one else > writes some mechanism to fake auto-instantiation and project-wide scope= , I > probably will eventually, right around the time I try to convert my fir= st > bunch of client-written code over to Gambas. > > I mean, yeah, so you can't write a Gambas program with zero lines of > user-written code presently like you can in other languages, but does t= he > term "alpha" mean anything to you? I'll start worrying if this sort of > feature isn't around in Gambas 1.1 or thereabouts ;) > > Rob > > On Monday 12 May 2003 12:25, Dan Phillips wrote: > > Wow, my thoughts zactly. You can call VB developers "bad" but the tr= uth > > is, there is nothing more clean than a single line of code to modify = say > > a text field on a form not where the code is written. > > > > VB does this, > > Kylix does this, > > Delphi does this, > > ScreenIO for Cobol does this. > > > > VB has sold a lot of copies and if this compiler has any hopes to ado= pt > > VB developers, they need to make this small option available. > > > > As is, I was excited when I found this language but cannot use it for= my > > purposes because I have several forms that need a major amount of > > modification based on code from elsewhere. Sorry guys, I guess I'm j= ust > > a "bad developer". > > > > On Sunday 11 May 2003 19:23, Ken Schrock wrote: > > > Sorry about posting to the wrong list > > > And thanks for answering my question anyway : -) > > > Particularly since it doesn't look like I will be using it anyway > > > Anal retentive, overbearing, "modular", "tightly scoped", "object > > > oriented" Languages just keep me going back to C > > > > > > Since this is the developers form... > > > Come on guys, seriously, I mean really... > > > > > > Form1.Listbox1.Insert(Textbox1.Text) > > > (or its equivalent in C) > > > > > > Is simple, clean, elegant, intuitive, logical > > > Your two examples are none of those things > > > Think about it, think about the hoops you make people jump through > > > Just to pass a single simple string from a client window to a paren= t > > > window > > > > > > This may get you an award from an egghead language designer's group > > > But nobody will use it. That is fine if that is what you really wan= t to > > > do However, if you want anybody to use it, you have to rethink this= I'm > > > not going to go through all that and nobody else will either > > > > > > It is a shame, as it is an excellent idea, and well executed > > > But it appears crippled by dictatorial design philosophy > > > And really, we don't need any more of that kind > > > The landscape is littered with plenty already > > > > > > Benoit Minisini wrote: > > > >Le Dimanche 11 Mai 2003 03:35, Ken Schrock a =E9crit : > > > >>I am having trouble passing data between objects, classes, forms, > > > >> etc. > > > >> > > > >>To add an element to a listbox > > > >>Pop up a new form for entry, ok so far > > > >> > > > >>But in Form2 if one tries to pass data to Form1 with > > > >>Form1.Listbox1.Add(whatever) it says it can't find ListBox1 > > > >>It appears the controls, if created by the IDE, aren't made publi= c > > > >>And there seems to be no option in the properties box to do so > > > >> > > > >>Call a public function - Says it isn't static - Make it static > > > >>It says you can't use dynamic things in a static function > > > >> > > > >>Ok guys, give me a hint here > > > > > > > >Hi Ken, > > > > > > > >You should have posted this mail on the user mailing-list. This is > > > > list is for people who are developing Gambas, not developing WITH > > > > Gambas ! > > > > > > > >Controls are not public, they are private. This way, the bad old V= B > > > > developer must adopt a cleaner way of writing its program :-) > > > > > > > >Forms are not self-instanciable. I.e. if you have a form Form1, th= en > > > > Form1 is the name of the class, not the name of an instance ! > > > > > > > >Here is a bad example of how to solve your problem, but easy to > > > > understand: > > > > > > > >MyForm1 =3D NEW Form1 > > > >MyForm1.Show > > > > > > > >*** In MyForm1: > > > > > > > >MyForm2 =3D NEW Form2(MyForm1) > > > >MyForm2.ShowModal() > > > > > > > >... > > > > > > > >PUBLIC SUB AddToListBox(sElt AS String) > > > > > > > > ListBox1.Add(sElt) > > > > > > > >END > > > > > > > >*** In MyForm2: > > > > > > > >PRIVATE MyForm1 AS Form1 > > > > > > > >PUBLIC SUB _new(hForm AS Form1) > > > > > > > > MyForm1 =3D hForm > > > > > > > >END > > > > > > > >... > > > > > > > >MyForm1.AddToListBox(TextBox1.Text) > > > > > > > > > > > >Here is a better way to do that: > > > > > > > >*** In Form1: > > > > > > > >sElt =3D Form2.Run() > > > >IF sElt THEN ListBox1.Add(sElt) > > > > > > > >*** In Form2 > > > > > > > >STATIC sResult AS STRING > > > > > > > >STATIC PUBLIC FUNCTION Run() AS STRING > > > > > > > > DIM hForm AS Form2 > > > > > > > > hForm =3D NEW Form2 > > > > IF NOT hForm.ShowModal() THEN RETURN > > > > RETURN sResult > > > > > > > >END > > > > > > > >... > > > > > > > >PUBLIC SUB btnCancel_Click() > > > > > > > > ME.Close() > > > > > > > >END > > > > > > > >PUBLIC SUB btnOK_Click() > > > > > > > > sResult =3D TextBox1.Text > > > > Me.Close(TRUE) > > > > > > > >END > > > > > > > >Regards, > > ------------------------------------------------------- > Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara > The only event dedicated to issues related to Linux enterprise solution= s > www.enterpriselinuxforum.com > > _______________________________________________ > Gambas-devel mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gambas-devel --=20 ----------------------- -Thanks, Dan -Haight & Associates, Inc. -907.586.9788 ----------------------- |
From: Rob <sou...@ku...> - 2003-05-12 22:13:50
|
(copied to gambas-user in hopes of moving this thread over) As it is right now, I don't actually think a program to convert VB projec= ts to=20 Gambas (at least the forms themselves) will be that hard, and for that ma= tter=20 the Gambas IDE itself is written in Gambas. So if no one else writes som= e=20 mechanism to fake auto-instantiation and project-wide scope, I probably w= ill=20 eventually, right around the time I try to convert my first bunch of=20 client-written code over to Gambas. I mean, yeah, so you can't write a Gambas program with zero lines of=20 user-written code presently like you can in other languages, but does the= =20 term "alpha" mean anything to you? I'll start worrying if this sort of=20 feature isn't around in Gambas 1.1 or thereabouts ;) Rob On Monday 12 May 2003 12:25, Dan Phillips wrote: > Wow, my thoughts zactly. You can call VB developers "bad" but the trut= h > is, there is nothing more clean than a single line of code to modify sa= y a > text field on a form not where the code is written. > > VB does this, > Kylix does this, > Delphi does this, > ScreenIO for Cobol does this. > > VB has sold a lot of copies and if this compiler has any hopes to adopt= VB > developers, they need to make this small option available. > > As is, I was excited when I found this language but cannot use it for m= y > purposes because I have several forms that need a major amount of > modification based on code from elsewhere. Sorry guys, I guess I'm jus= t a > "bad developer". > > On Sunday 11 May 2003 19:23, Ken Schrock wrote: > > Sorry about posting to the wrong list > > And thanks for answering my question anyway : -) > > Particularly since it doesn't look like I will be using it anyway > > Anal retentive, overbearing, "modular", "tightly scoped", "object > > oriented" Languages just keep me going back to C > > > > Since this is the developers form... > > Come on guys, seriously, I mean really... > > > > Form1.Listbox1.Insert(Textbox1.Text) > > (or its equivalent in C) > > > > Is simple, clean, elegant, intuitive, logical > > Your two examples are none of those things > > Think about it, think about the hoops you make people jump through > > Just to pass a single simple string from a client window to a parent > > window > > > > This may get you an award from an egghead language designer's group > > But nobody will use it. That is fine if that is what you really want = to > > do However, if you want anybody to use it, you have to rethink this I= 'm > > not going to go through all that and nobody else will either > > > > It is a shame, as it is an excellent idea, and well executed > > But it appears crippled by dictatorial design philosophy > > And really, we don't need any more of that kind > > The landscape is littered with plenty already > > > > Benoit Minisini wrote: > > >Le Dimanche 11 Mai 2003 03:35, Ken Schrock a =E9crit : > > >>I am having trouble passing data between objects, classes, forms, e= tc. > > >> > > >>To add an element to a listbox > > >>Pop up a new form for entry, ok so far > > >> > > >>But in Form2 if one tries to pass data to Form1 with > > >>Form1.Listbox1.Add(whatever) it says it can't find ListBox1 > > >>It appears the controls, if created by the IDE, aren't made public > > >>And there seems to be no option in the properties box to do so > > >> > > >>Call a public function - Says it isn't static - Make it static > > >>It says you can't use dynamic things in a static function > > >> > > >>Ok guys, give me a hint here > > > > > >Hi Ken, > > > > > >You should have posted this mail on the user mailing-list. This is l= ist > > > is for people who are developing Gambas, not developing WITH Gambas= ! > > > > > >Controls are not public, they are private. This way, the bad old VB > > > developer must adopt a cleaner way of writing its program :-) > > > > > >Forms are not self-instanciable. I.e. if you have a form Form1, then > > > Form1 is the name of the class, not the name of an instance ! > > > > > >Here is a bad example of how to solve your problem, but easy to > > > understand: > > > > > >MyForm1 =3D NEW Form1 > > >MyForm1.Show > > > > > >*** In MyForm1: > > > > > >MyForm2 =3D NEW Form2(MyForm1) > > >MyForm2.ShowModal() > > > > > >... > > > > > >PUBLIC SUB AddToListBox(sElt AS String) > > > > > > ListBox1.Add(sElt) > > > > > >END > > > > > >*** In MyForm2: > > > > > >PRIVATE MyForm1 AS Form1 > > > > > >PUBLIC SUB _new(hForm AS Form1) > > > > > > MyForm1 =3D hForm > > > > > >END > > > > > >... > > > > > >MyForm1.AddToListBox(TextBox1.Text) > > > > > > > > >Here is a better way to do that: > > > > > >*** In Form1: > > > > > >sElt =3D Form2.Run() > > >IF sElt THEN ListBox1.Add(sElt) > > > > > >*** In Form2 > > > > > >STATIC sResult AS STRING > > > > > >STATIC PUBLIC FUNCTION Run() AS STRING > > > > > > DIM hForm AS Form2 > > > > > > hForm =3D NEW Form2 > > > IF NOT hForm.ShowModal() THEN RETURN > > > RETURN sResult > > > > > >END > > > > > >... > > > > > >PUBLIC SUB btnCancel_Click() > > > > > > ME.Close() > > > > > >END > > > > > >PUBLIC SUB btnOK_Click() > > > > > > sResult =3D TextBox1.Text > > > Me.Close(TRUE) > > > > > >END > > > > > >Regards, |
From: Dan P. <da...@ha...> - 2003-05-12 16:25:43
|
Wow, my thoughts zactly. You can call VB developers "bad" but the truth = is,=20 there is nothing more clean than a single line of code to modify say a te= xt=20 field on a form not where the code is written. =20 VB does this, Kylix does this, Delphi does this, ScreenIO for Cobol does this. VB has sold a lot of copies and if this compiler has any hopes to adopt V= B=20 developers, they need to make this small option available. As is, I was excited when I found this language but cannot use it for my=20 purposes because I have several forms that need a major amount of=20 modification based on code from elsewhere. Sorry guys, I guess I'm just = a=20 "bad developer". On Sunday 11 May 2003 19:23, Ken Schrock wrote: > Sorry about posting to the wrong list > And thanks for answering my question anyway : -) > Particularly since it doesn't look like I will be using it anyway > Anal retentive, overbearing, "modular", "tightly scoped", "object orien= ted" > Languages just keep me going back to C > > Since this is the developers form... > Come on guys, seriously, I mean really... > > Form1.Listbox1.Insert(Textbox1.Text) > (or its equivalent in C) > > Is simple, clean, elegant, intuitive, logical > Your two examples are none of those things > Think about it, think about the hoops you make people jump through > Just to pass a single simple string from a client window to a parent wi= ndow > > This may get you an award from an egghead language designer's group > But nobody will use it. That is fine if that is what you really want to= do > However, if you want anybody to use it, you have to rethink this > I'm not going to go through all that and nobody else will either > > It is a shame, as it is an excellent idea, and well executed > But it appears crippled by dictatorial design philosophy > And really, we don't need any more of that kind > The landscape is littered with plenty already > > Benoit Minisini wrote: > >Le Dimanche 11 Mai 2003 03:35, Ken Schrock a =E9crit : > >>I am having trouble passing data between objects, classes, forms, etc= =2E > >> > >>To add an element to a listbox > >>Pop up a new form for entry, ok so far > >> > >>But in Form2 if one tries to pass data to Form1 with > >>Form1.Listbox1.Add(whatever) it says it can't find ListBox1 > >>It appears the controls, if created by the IDE, aren't made public > >>And there seems to be no option in the properties box to do so > >> > >>Call a public function - Says it isn't static - Make it static > >>It says you can't use dynamic things in a static function > >> > >>Ok guys, give me a hint here > > > >Hi Ken, > > > >You should have posted this mail on the user mailing-list. This is lis= t is > > for people who are developing Gambas, not developing WITH Gambas ! > > > >Controls are not public, they are private. This way, the bad old VB > > developer must adopt a cleaner way of writing its program :-) > > > >Forms are not self-instanciable. I.e. if you have a form Form1, then F= orm1 > > is the name of the class, not the name of an instance ! > > > >Here is a bad example of how to solve your problem, but easy to > > understand: > > > >MyForm1 =3D NEW Form1 > >MyForm1.Show > > > >*** In MyForm1: > > > >MyForm2 =3D NEW Form2(MyForm1) > >MyForm2.ShowModal() > > > >... > > > >PUBLIC SUB AddToListBox(sElt AS String) > > > > ListBox1.Add(sElt) > > > >END > > > >*** In MyForm2: > > > >PRIVATE MyForm1 AS Form1 > > > >PUBLIC SUB _new(hForm AS Form1) > > > > MyForm1 =3D hForm > > > >END > > > >... > > > >MyForm1.AddToListBox(TextBox1.Text) > > > > > >Here is a better way to do that: > > > >*** In Form1: > > > >sElt =3D Form2.Run() > >IF sElt THEN ListBox1.Add(sElt) > > > >*** In Form2 > > > >STATIC sResult AS STRING > > > >STATIC PUBLIC FUNCTION Run() AS STRING > > > > DIM hForm AS Form2 > > > > hForm =3D NEW Form2 > > IF NOT hForm.ShowModal() THEN RETURN > > RETURN sResult > > > >END > > > >... > > > >PUBLIC SUB btnCancel_Click() > > > > ME.Close() > > > >END > > > >PUBLIC SUB btnOK_Click() > > > > sResult =3D TextBox1.Text > > Me.Close(TRUE) > > > >END > > > >Regards, --=20 ----------------------- -Thanks, Dan -Haight & Associates, Inc. -907.586.9788 ----------------------- |
From: Ken S. <sch...@wi...> - 2003-05-12 00:13:09
|
Sorry about posting to the wrong list And thanks for answering my question anyway : -) Particularly since it doesn't look like I will be using it anyway Anal retentive, overbearing, "modular", "tightly scoped", "object oriente= d" Languages just keep me going back to C Since this is the developers form... Come on guys, seriously, I mean really... Form1.Listbox1.Insert(Textbox1.Text) (or its equivalent in C) Is simple, clean, elegant, intuitive, logical Your two examples are none of those things Think about it, think about the hoops you make people jump through Just to pass a single simple string from a client window to a parent wind= ow This may get you an award from an egghead language designer's group But nobody will use it. That is fine if that is what you really want to d= o However, if you want anybody to use it, you have to rethink this I'm not going to go through all that and nobody else will either It is a shame, as it is an excellent idea, and well executed But it appears crippled by dictatorial design philosophy And really, we don't need any more of that kind The landscape is littered with plenty already Benoit Minisini wrote: >Le Dimanche 11 Mai 2003 03:35, Ken Schrock a =E9crit : > =20 > >>I am having trouble passing data between objects, classes, forms, etc. >> >>To add an element to a listbox >>Pop up a new form for entry, ok so far >> >>But in Form2 if one tries to pass data to Form1 with >>Form1.Listbox1.Add(whatever) it says it can't find ListBox1 >>It appears the controls, if created by the IDE, aren't made public >>And there seems to be no option in the properties box to do so >> >>Call a public function - Says it isn't static - Make it static >>It says you can't use dynamic things in a static function >> >>Ok guys, give me a hint here >> =20 >> > >Hi Ken, > >You should have posted this mail on the user mailing-list. This is list = is for=20 >people who are developing Gambas, not developing WITH Gambas ! > >Controls are not public, they are private. This way, the bad old VB deve= loper=20 >must adopt a cleaner way of writing its program :-) > >Forms are not self-instanciable. I.e. if you have a form Form1, then For= m1 is=20 >the name of the class, not the name of an instance ! > >Here is a bad example of how to solve your problem, but easy to understa= nd: > >MyForm1 =3D NEW Form1 >MyForm1.Show > >*** In MyForm1: > >MyForm2 =3D NEW Form2(MyForm1) >MyForm2.ShowModal() > >... > >PUBLIC SUB AddToListBox(sElt AS String) > > ListBox1.Add(sElt) > >END > >*** In MyForm2: > >PRIVATE MyForm1 AS Form1 > >PUBLIC SUB _new(hForm AS Form1) > > MyForm1 =3D hForm > >END > >... > >MyForm1.AddToListBox(TextBox1.Text) > > >Here is a better way to do that: > >*** In Form1: > >sElt =3D Form2.Run() >IF sElt THEN ListBox1.Add(sElt) > >*** In Form2 > >STATIC sResult AS STRING > >STATIC PUBLIC FUNCTION Run() AS STRING > > DIM hForm AS Form2 > > hForm =3D NEW Form2 > IF NOT hForm.ShowModal() THEN RETURN > RETURN sResult > >END > >... > >PUBLIC SUB btnCancel_Click() > > ME.Close() > >END > >PUBLIC SUB btnOK_Click() > > sResult =3D TextBox1.Text > Me.Close(TRUE) > >END > >Regards, > > =20 > --=20 Using Lindows=20 |