From t.lee.davidson at gmail.com Tue Nov 1 02:51:22 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 31 Oct 2022 21:51:22 -0400 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> Message-ID: On 10/31/22 17:33, Bruce Steers wrote: > > > On Sun, 30 Oct 2022 at 23:11, Martin > wrote: > > El 29/10/22 a las 20:59, T Lee Davidson escribi?: > > > ?> The application now launches with no errors. But, I am unable to test > ?> it any further because selecting "Computer" from the drop-down does > ?> not show devices and Dialog.SelectDirectory does not allow for > ?> entering a location manually. I would need to enter a location using > ?> Media Transfer Protocol (MTP). > > What graphics library is the desktop you are using based on? GTK, QT > other? I'm using Manjaro GTK then I see the devices on the dialog box. > maybe if you are using qt based try to switch to to "qt" components. > > > > Have you tried adding gb.dialog component and see if the enhanced dialog works better? > > failing that it won't take long to make a custom selection dialog. > > Respects > BruceS I think you meant gb.form.dialog. :-) -- Lee From mbelmonte at belmotek.net Wed Nov 2 20:46:16 2022 From: mbelmonte at belmotek.net (Martin) Date: Wed, 2 Nov 2022 20:46:16 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> Message-ID: El 31/10/22 a las 20:59, T Lee Davidson escribi?: > The filename of the shared libexif library on my system is > 'libexif.so.12'. I had to change line 30 in Meta.module like so: > Library "libexif:12" Here: https://www.gambas-it.org/wiki/index.php/Extern:_richiamare_funzioni_esterne_a_Gambas It is possible call the library without version number. ?Why in your system is necessary specify the version? ?maybe yo have more versions? From mbelmonte at belmotek.net Wed Nov 2 20:52:04 2022 From: mbelmonte at belmotek.net (Martin) Date: Wed, 2 Nov 2022 20:52:04 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> Message-ID: <20f1c226-dae1-1e96-8773-7a3fa5dbf259@belmotek.net> El 31/10/22 a las 22:33, Bruce Steers escribi?: > Have you tried adding gb.dialog component and see if the enhanced dialog > works better? > > failing that it won't take long to make a custom selection dialog. I will try it. Note: This is a earlier alpha version so I don't recommend touch directly the internal camera or smartphone memory there is some risk to loose all the files. is safer "copy" manually first to temp directory to work whit it. From mbelmonte at belmotek.net Wed Nov 2 21:08:07 2022 From: mbelmonte at belmotek.net (Martin) Date: Wed, 2 Nov 2022 21:08:07 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> Message-ID: <29989f2d-4d01-2dc8-a4c7-4dde59bb88f6@belmotek.net> El 31/10/22 a las 22:33, Bruce Steers escribi?: > Have you tried adding gb.dialog component and see if the enhanced dialog > works better? > failing that it won't take long to make a custom selection dialog. gb.form.dialog doesn't work for me also, is not possible to select the USB devices like smartphones or cameras. In the system (in my case XFCE, buy GTK3 dialog is possible manage the devices connected) So, the solution will be a custom dialog form but there are the problem of show and "activate"[1] the device before use it. [1] Is necessary to handle the USB devices, mount, umount etc. it I don't know how to do that. From bsteers4 at gmail.com Wed Nov 2 23:19:51 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 2 Nov 2022 22:19:51 +0000 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <29989f2d-4d01-2dc8-a4c7-4dde59bb88f6@belmotek.net> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <29989f2d-4d01-2dc8-a4c7-4dde59bb88f6@belmotek.net> Message-ID: On Wed, 2 Nov 2022, 20:08 Martin, wrote: > El 31/10/22 a las 22:33, Bruce Steers escribi?: > > Have you tried adding gb.dialog component and see if the enhanced dialog > > works better? > > failing that it won't take long to make a custom selection dialog. > gb.form.dialog doesn't work for me also, is not possible to select the > USB devices like smartphones or cameras. > In the system (in my case XFCE, buy GTK3 dialog is possible manage the > devices connected) > > So, the solution will be a custom dialog form but there are the problem > of show and "activate"[1] the device before use it. > > [1] Is necessary to handle the USB devices, mount, umount etc. it I > don't know how to do that. > Maybe with dbus? Check out this application... https://forum.gambas.one/viewtopic.php?p=6032#p6032 That has in it a folder with classes to manage/mount/unmount and react to device changes using dbus It has many device functions and it also detects signals about drive changing. (I have not really explored it's full potential) Written by Fabien Boddard (I think, I am not home to check) It was never fully finished for inclusion with Gambas and it's undocumented but it has many uses as you will see. Possibly will help with those needs you have. You'll have to study my source for example of usage. Best of luck. BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Thu Nov 3 00:09:29 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 2 Nov 2022 19:09:29 -0400 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> Message-ID: <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> On 11/2/22 15:46, Martin wrote: > El 31/10/22 a las 20:59, T Lee Davidson escribi?: >> The filename of the shared libexif library on my system is 'libexif.so.12'. I had to change line 30 in Meta.module like so: >> Library "libexif:12" > Here: https://www.gambas-it.org/wiki/index.php/Extern:_richiamare_funzioni_esterne_a_Gambas > It is possible call the library without version number. > ?Why in your system is necessary specify the version? ?maybe yo have more versions? There is only one version installed on my system: ll /usr/lib64/libexif* lrwxrwxrwx 1 root root 17 Mar 31 2022 /usr/lib64/libexif.so.12 -> libexif.so.12.3.4 -rwxr-xr-x 1 root root 289880 Mar 31 2022 /usr/lib64/libexif.so.12.3.4 Specifying the library without the version number does not work on my system. -- Lee From t.lee.davidson at gmail.com Thu Nov 3 00:12:47 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 2 Nov 2022 19:12:47 -0400 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <29989f2d-4d01-2dc8-a4c7-4dde59bb88f6@belmotek.net> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <29989f2d-4d01-2dc8-a4c7-4dde59bb88f6@belmotek.net> Message-ID: On 11/2/22 16:08, Martin wrote: > So, the solution will be a custom dialog form but there are the problem of?show?and?"activate"[1]?the?device?before?use?it. > > [1] Is necessary to handle the USB devices, mount, umount etc. it I don't?know?how?to?do?that. It should not be necessary to handle the mount status of the USB devices. That should be handled by the operating system or manually by the user. Indeed, when using GTK3, the devices are listed in the dialog. With Qt5, they are not for whatever reason. -- Lee From adamnt42 at gmail.com Thu Nov 3 00:14:13 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 3 Nov 2022 09:44:13 +1030 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> Message-ID: <93567d3a-b714-c5b8-37da-15dda53df78f@gmail.com> On 3/11/22 9:39 am, T Lee Davidson wrote: > On 11/2/22 15:46, Martin wrote: >> El 31/10/22 a las 20:59, T Lee Davidson escribi?: >>> The filename of the shared libexif library on my system is >>> 'libexif.so.12'. I had to change line 30 in Meta.module like so: >>> Library "libexif:12" >> Here: >> https://www.gambas-it.org/wiki/index.php/Extern:_richiamare_funzioni_esterne_a_Gambas >> It is possible call the library without version number. >> ?Why in your system is necessary specify the version? ?maybe yo have >> more versions? > > There is only one version installed on my system: > ll /usr/lib64/libexif* > lrwxrwxrwx 1 root root???? 17 Mar 31? 2022 /usr/lib64/libexif.so.12 -> > libexif.so.12.3.4 > -rwxr-xr-x 1 root root 289880 Mar 31? 2022 /usr/lib64/libexif.so.12.3.4 > > Specifying the library without the version number does not work on my > system. > > So, create a link like the /usr/lib64/libexif.so.12 one. cd /usr/lib64 ln -s libexif.so.12.3.4 libexif.so b From mbelmonte at belmotek.net Thu Nov 3 00:43:48 2022 From: mbelmonte at belmotek.net (Martin) Date: Thu, 3 Nov 2022 00:43:48 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> Message-ID: <31c7f17a-8545-4e1b-36d7-646c0d84d9b5@belmotek.net> El 3/11/22 a las 0:09, T Lee Davidson escribi?: > There is only one version installed on my system: > ll /usr/lib64/libexif* > lrwxrwxrwx 1 root root???? 17 Mar 31? 2022 /usr/lib64/libexif.so.12 -> > libexif.so.12.3.4 > -rwxr-xr-x 1 root root 289880 Mar 31? 2022 /usr/lib64/libexif.so.12.3.4 > > Specifying the library without the version number does not work on my > system. > ok, I have: lrwxrwxrwx 1 root root 17 nov 26 2021 /usr/lib/libexif.so -> libexif.so.12.3.4 lrwxrwxrwx 1 root root 17 nov 26 2021 /usr/lib/libexif.so.12 -> libexif.so.12.3.4 -rwxr-xr-x 1 root root 321288 nov 26 2021 /usr/lib/libexif.so.12.3.4 You have not the no-version .so file Solutionns: 1) OpenSuse ( or all rpm based? ) Create the link /usr/lib/libexif.so in the system ln -s /usr/lib/libexif.so.12.3.4 /usr/lib/libexif.so 2) For all systems that have the link /usr/lib/libexif.so.12 use the sentence Library "libexif:12" Solutions 2 works for me also then, I`ll change the code to Library "libexif:12" From t.lee.davidson at gmail.com Thu Nov 3 02:19:01 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 2 Nov 2022 21:19:01 -0400 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <93567d3a-b714-c5b8-37da-15dda53df78f@gmail.com> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> <93567d3a-b714-c5b8-37da-15dda53df78f@gmail.com> Message-ID: <2a0229f6-df0c-a28a-c484-609823d2bfda@gmail.com> On 11/2/22 19:14, BB wrote: > So,?create?a?link?like?the?/usr/lib64/libexif.so.12?one. > > cd?/usr/lib64 > > ln?-s?libexif.so.12.3.4?libexif.so > > > b > Yes, a user could do that. But, should a user be expected to modify his system to accommodate an application? Or, should it be the other way around? -- Lee From adamnt42 at gmail.com Thu Nov 3 02:39:12 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 3 Nov 2022 12:09:12 +1030 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <2a0229f6-df0c-a28a-c484-609823d2bfda@gmail.com> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> <93567d3a-b714-c5b8-37da-15dda53df78f@gmail.com> <2a0229f6-df0c-a28a-c484-609823d2bfda@gmail.com> Message-ID: On 3/11/22 11:49 am, T Lee Davidson wrote: > On 11/2/22 19:14, BB wrote: >> So,?create?a?link?like?the?/usr/lib64/libexif.so.12?one. >> >> cd?/usr/lib64 >> >> ln?-s?libexif.so.12.3.4?libexif.so >> >> >> b >> > > Yes, a user could do that. But, should a user be expected to modify > his system to accommodate an application? Or, should it be the other > way around? > Well, the problem is not the user or the distro (per se), its the people who package the libraries for the distro who wont conform to a "standard" set of links. Many years ago on another distro I had to create dozens of these links to get many things to compile and link, including gambas. But you're right. It shouldn't be the users job, the program should find any library it requires as long as it is installed. b From jose.rodriguez at cenpalab.cu Thu Nov 3 03:59:09 2022 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Wed, 02 Nov 2022 22:59:09 -0400 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: <31c7f17a-8545-4e1b-36d7-646c0d84d9b5@belmotek.net> References: <304fe999-791e-8544-23e6-7b132ef91150@belmotek.net> <27164284-5303-8f9c-85ad-f5c63f6a58cb@belmotek.net> <54430078-77ab-dc15-9521-e5efc00d81b3@gmail.com> <68ec9d52-4165-fcb7-cc6b-9f63bbcc9843@gmail.com> <31c7f17a-8545-4e1b-36d7-646c0d84d9b5@belmotek.net> Message-ID: <360c51ec23f4abbe7e6dce7a45a598a2@cenpalab.cu> On 2022-11-02 19:43, Martin wrote: > El 3/11/22 a las 0:09, T Lee Davidson escribi?: >> There is only one version installed on my system: >> ll /usr/lib64/libexif* >> lrwxrwxrwx 1 root root???? 17 Mar 31? 2022 /usr/lib64/libexif.so.12 -> >> libexif.so.12.3.4 >> -rwxr-xr-x 1 root root 289880 Mar 31? 2022 >> /usr/lib64/libexif.so.12.3.4 >> >> Specifying the library without the version number does not work on my >> system. >> > ok, I have: > lrwxrwxrwx 1 root root 17 nov 26 2021 /usr/lib/libexif.so -> > libexif.so.12.3.4 > lrwxrwxrwx 1 root root 17 nov 26 2021 /usr/lib/libexif.so.12 -> > libexif.so.12.3.4 > -rwxr-xr-x 1 root root 321288 nov 26 2021 /usr/lib/libexif.so.12.3.4 > > You have not the no-version .so file > > Solutionns: > 1) OpenSuse ( or all rpm based? ) Create the link /usr/lib/libexif.so > in the system > ln -s /usr/lib/libexif.so.12.3.4 /usr/lib/libexif.so > > 2) For all systems that have the link /usr/lib/libexif.so.12 use the > sentence Library "libexif:12" > > Solutions 2 works for me also then, I`ll change the code to Library > "libexif:12" > > I have not seen the code (no available time at the moment) so I don't know how the library is used, but if you need to check on the presence of a library and it's links, you can use the following and do some parsing on the result, hope it helps: joe1962 at minthome:~$ ldconfig -p | grep libexif libexif.so.12 (libc6,x86-64) => /lib/x86_64-linux-gnu/libexif.so.12 Regards, Joe1962 From adamnt42 at gmail.com Thu Nov 3 07:07:00 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 3 Nov 2022 16:37:00 +1030 Subject: [Gambas-user] BUG: gb.db.postgres doesn't handle partitioned tables Message-ID: <42c4a43b-532c-a9cc-7eff-51faf4a8f4d9@gmail.com> Beno?t, One of our databases has grown so large that we have partitioned several tables to get some efficiency going. Having done that I find that the postgres component doesn't find the partitioned table and only "sees" the actual partitions. However ?, there are only 4 changes that need to be made in the *main.c* class in the gb.db.postgres component to solve this problem. They are changes to the queries used to handle the metadata. These changes are: *table_exist() function * change the 2 queries to: ??? const char *query = ??? ??? "select relname from pg_class where (relkind in ('r', 'v', 'm', 'p')) " ??? ??? "and (relname = '&1') " ??? ??? "and (relnamespace not in (select oid from pg_namespace where nspname = 'information_schema'))"; ??? const char *query_schema = ??? ??? "select relname from pg_class where (relkind in ('r', 'v', 'm', 'p')) " ??? ??? "and (relname = '&1') " ??? ??? "and (relnamespace in (select oid from pg_namespace where nspname = '&2'))"; *table_is_system() function* change the query to const char *query = "select 1 from pg_class where (relkind in ('r', 'v', 'm', 'p')) " "and (relname = '&1') " "and (relnamespace in (select oid from pg_namespace where nspname = 'pg_catalog'))";** *table_list_73() function * change the query to const char *query = "select pg_class.relname,pg_namespace.nspname from pg_class,pg_namespace where (relkind in ('r', 'v', 'm', 'p')) " "and (pg_namespace.oid = pg_class.relnamespace) " "and (pg_namespace.oid not in (select oid from pg_namespace where nspname = 'information_schema'))"; I have checked the queries and they all work in various postgres versions. I have also made these changes locally and it now works fine. Hope you can find the time to put these in the system. By way of explanation, the partitioned tables have a relkind of 'p' which wasn't being included in the queries, so it was a simple matter of including them. regards bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Nov 3 12:36:41 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 3 Nov 2022 12:36:41 +0100 Subject: [Gambas-user] BUG: gb.db.postgres doesn't handle partitioned tables In-Reply-To: <42c4a43b-532c-a9cc-7eff-51faf4a8f4d9@gmail.com> References: <42c4a43b-532c-a9cc-7eff-51faf4a8f4d9@gmail.com> Message-ID: <05b3060e-6baf-96df-c1aa-4ac29e2dc177@gambas-basic.org> Le 03/11/2022 ? 07:07, BB a ?crit?: > Beno?t, > > One of our databases has grown so large that we have partitioned several > tables to get some efficiency going. Having done that I find that the > postgres component doesn't find the partitioned table and only "sees" > the actual partitions. > > However ?, there are only 4 changes that need to be made in the > *main.c* class in the gb.db.postgres component to solve this problem. > They are changes to the queries used to handle the metadata. These > changes are: > > [...] OK, I will merge that. I hope you are sure that everything is OK with these new tables! :-) -- Beno?t Minisini. From gambas.fr at gmail.com Thu Nov 3 12:34:28 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 3 Nov 2022 12:34:28 +0100 Subject: [Gambas-user] Error in gb.report2 In-Reply-To: <70982f2f-0246-05af-afaa-20e08557ff72@libero.it> References: <5f4f2bd7-22ea-4c68-9118-be413cd14957@gmail.com> <70982f2f-0246-05af-afaa-20e08557ff72@libero.it> Message-ID: I have already corrected this bug in the master branche.. no ? Le ven. 28 oct. 2022 ? 14:02, gian via User a ?crit : > Il 28/10/22 13:47, gian via User ha scritto: > > Il 28/10/22 11:29, Benoit Minisini ha scritto: > >> I don't understand all your english, but I think only Fabien can > >> answer these questions correctly. I guess ReportLabel is just for a > >> simple text, and ReportTextLabel for rich text (HTML-like). > >> > >> Regards, > >> > >> -- > >> Beno?t Minisini. > > > > > > Hi Benoit, > > > > I think I figured out what happened: if you try the LoremReport (or > > ReportTest) project on a virtual without having a printer installed and > > type a number in TextBox Page you get the error in the image > > > > Regards > > > > Gianluigi > > I posted the wrong image :-( > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Thu Nov 3 13:47:17 2022 From: bagoneo at libero.it (gian) Date: Thu, 3 Nov 2022 13:47:17 +0100 Subject: [Gambas-user] Error in gb.report2 In-Reply-To: References: <5f4f2bd7-22ea-4c68-9118-be413cd14957@gmail.com> <70982f2f-0246-05af-afaa-20e08557ff72@libero.it> Message-ID: <2d5ae7cb-503f-b0d5-39e0-75b86a4ad2ae@libero.it> Il 03/11/22 12:34, Fabien Bodard ha scritto: > I have already corrected this bug in the master branche.. no ? Hi Fabien, Angel was referring to this: [System] Gambas=3.17.3 OperatingSystem=Linux Kernel=5.10.0-18-amd64 Architecture=x86_64 Distribution=debian 11.5 Desktop=MATE Font=Serif,11 Scale=8 Theme=traditionalgreen Language=es_ES.UTF-8 Memory=15980M Regards Gianluigi From bagoneo at libero.it Thu Nov 3 23:52:13 2022 From: bagoneo at libero.it (gian) Date: Thu, 3 Nov 2022 23:52:13 +0100 Subject: [Gambas-user] Automatic Startup Message-ID: Hi Benoit, my wife wanted to have on her desktop, a clock (type alarm clock), as simple as the one she has on her nightstand, but nice as an day-date clock, with the moon phase, and that started automatically with the Linux session. On the Farm named mdDDclock (moon phase Day Date clock) is the result of my work. It can only work if the Gambas IDE is installed (it have to run an executable). Is there any way to create a project that starts automatically without having to install the IDE ? Thank you and regards Gianluigi From bsteers4 at gmail.com Fri Nov 4 03:56:18 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 02:56:18 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: Hey Gian, I use the following bash script with some of my applications to compile without the IDE... It offers to compile the exe and optionally make a desktop icon. It is run from the project folder and makes the exe there (and the desktop icon will use the same location) it uses gbc3 and gba3 to compile so they need to be installed and of course the components required for the application. not the IDE (it also uses zenity for Messages) it takes into account PublicModule and PublicControl options (handles old and new method to pass the options to the compiler) it also passes -wax flags Maybe what you need. Unless you need "AutoStart" (if so, read below) ---------------------------------------------- #!/usr/bin/env bash # Get application directory and name WD=${0%/*} AppName=${WD##*/} source $HOME/.config/user-dirs.dirs DESK=$XDG_DESKTOP_DIR REP=$(zenity --question --width=400 --extra-button='Just Compile' --cancel-label="Abort" --ok-label="Do it" --text="Compile $AppName.gambas in...\n$WD\n\nThen create a Desktop Launcher in...\n$XDG_DESKTOP_DIR ?\n\n(Launcher will run $AppName from this location)") ERR=$? if [ -z "$REP" ]; then if [ $ERR -eq 1 ]; then exit; fi fi cd "$WD" ControlPublic=0 ModulePublic=0 eval $(cat .project|grep Public) KeepDebugInfo=1 eval $(cat .project|grep KeepDebugInfo) echo "Compiling gambas executable..." FLG="-wax" MODE="-f" CHK=$(gbc3 --help| grep public-module| awk {'print $1'}) if [[ $CHK != "-f" ]]; then MODE="-" fi if [ $KeepDebugInfo -eq 1 ]; then FLG="$FLG"g; fi if [ $ControlPublic -eq 1 ]; then FLG="$FLG "$MODE"public-control"; fi if [ $ModulePublic -eq 1 ]; then FLG="$FLG "$MODE"public-module"; fi gbc3 $FLG gba3 if [ $ERR -eq 1 ]; then exit; fi echo "Making launcher..." # try to get icon from .project file or use default IC=$(cat "$WD/.project" |grep Icon=) if [ -z "$IC" ]; then Icon=".icon.png"; else Icon=${IC##*=}; fi echo "[Desktop Entry] Type=Application Name=$AppName Icon=$WD/$Icon Exec=$WD/$AppName.gambas" >"$XDG_DESKTOP_DIR/$AppName.desktop" chmod +x "$XDG_DESKTOP_DIR/$AppName.desktop" zenity --info --width=400 --text="All Done, $XDG_DESKTOP_DIR/$AppName.desktop created." ---------------------------------- But that is to compile without IDE not "Autostart" Here's my gambas code for making an application auto-start at computer boot up... IsAutoStarted(True) tests if autostart is available (probably) should work for mate/gnome/kde, possibly others MNU_Startup_Click() is a toggle menu to toggle autostart. ------------------------------- Public Sub IsAutoStarted(Optional bTest As Boolean) As Boolean If Not AutoStartFile Then AutoStartFolder = User.Home &/ If(GetDesktop() Like "KDE*", ".kde/Autostart", ".config/autostart") AutoStartFile = File.Name(Args[0]) If File.Ext(AutoStartFile) <> "gambas" Then AutoStartFile &= ".gambas" AutoStartFile &= ".desktop" Endif If bTest Then Return Exist(AutoStartFolder) Return Exist(AutoStartFolder &/ AutoStartFile) End Public Sub MNU_Startup_Click() If Not IsAutoStarted(True) Then Error.Raise("Cannot set AutoStart") If Last.Value Then Dim sMe As String = Application.Path &/ File.Name(Args[0]) If File.Ext(sMe) <> "gambas" Then sMe &= ".gambas" Dim sData As String = "[Desktop Entry]\nType=Application\nExec=" sData &= sMe & "\nHidden=false\nName=" & Application.Name sData &= "\nX-MATE-Autostart-enabled=true\nX-MATE-Autostart-Delay=5\nX-GNOME-Autostart-Delay=5" File.Save(AutoStartFolder &/ AutoStartFile, sData) Else Kill AutoStartFolder &/ AutoStartFile Endif Catch Message.Error("Error!\n" & Error.Text) End ------------------------- Best of luck BruceS On Thu, 3 Nov 2022 at 22:53, gian via User wrote: > Hi Benoit, > > my wife wanted to have on her desktop, a clock (type alarm clock), as > simple as the one she has on her nightstand, but nice as an day-date > clock, with the moon phase, and that started automatically with the > Linux session. > > On the Farm named mdDDclock (moon phase Day Date clock) is the result of > my work. > > It can only work if the Gambas IDE is installed (it have to run an > executable). > > Is there any way to create a project that starts automatically without > having to install the IDE ? > > Thank you and regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Nov 4 08:26:49 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 4 Nov 2022 17:56:49 +1030 Subject: [Gambas-user] weird line in console Message-ID: <39ef3d11-19ef-d2be-392c-0537f9083c22@gmail.com> QXcbClipboard: Unable to receive an event from the clipboard manager in a reasonable time This appears on a random basis after closing a running project from within the IDE. I really don't understand why, when I am not using the clipboard in any way? Has anyone seen this? Any clues? b -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Nov 4 11:12:40 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 4 Nov 2022 11:12:40 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: Le 03/11/2022 ? 23:52, gian via User a ?crit?: > Hi Benoit, > > my wife wanted to have on her desktop, a clock (type alarm clock), as > simple as the one she has on her nightstand, but nice as an day-date > clock, with the moon phase, and that started automatically with the > Linux session. > > On the Farm named mdDDclock (moon phase Day Date clock) is the result of > my work. > > It can only work if the Gambas IDE is installed (it have to run an > executable). > > Is there any way to create a project that starts automatically without > having to install the IDE ? > I don't understand: you never need the IDE to run a Gambas executable. You just need the runtime. -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Fri Nov 4 11:14:24 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 4 Nov 2022 11:14:24 +0100 Subject: [Gambas-user] weird line in console In-Reply-To: <39ef3d11-19ef-d2be-392c-0537f9083c22@gmail.com> References: <39ef3d11-19ef-d2be-392c-0537f9083c22@gmail.com> Message-ID: Le 04/11/2022 ? 08:26, BB a ?crit?: > QXcbClipboard: Unable to receive an event from the clipboard manager in a reasonable time > > This appears on a random basis after closing a running project from > within the IDE. I really don't understand why, when I am not using the > clipboard in any way? > > Has anyone seen this? Any clues? > > b > I have already seen that, but rarely. As soon as you use Qt, GTK+, Chromium, or any other heavy beast, you usually many ugly warning messages on the console. Regards, -- Beno?t Minisini. From the_watchmann at yahoo.com Fri Nov 4 13:01:30 2022 From: the_watchmann at yahoo.com (David Silverwood) Date: Fri, 4 Nov 2022 12:01:30 +0000 (UTC) Subject: [Gambas-user] Gambas Web Info References: <1696484099.2109434.1667563290337.ref@mail.yahoo.com> Message-ID: <1696484099.2109434.1667563290337@mail.yahoo.com> Hi Quick question. Where can I get some reading/study material on Gambas Web. I cannot seem to find much anywhere. If I can find something basic it would help a lot. Thanks David -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Nov 4 13:44:16 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 12:44:16 +0000 Subject: [Gambas-user] Gambas Web Info In-Reply-To: <1696484099.2109434.1667563290337@mail.yahoo.com> References: <1696484099.2109434.1667563290337.ref@mail.yahoo.com> <1696484099.2109434.1667563290337@mail.yahoo.com> Message-ID: search the gambas farm for examples. also see here... http://gambaswiki.org/wiki/howto/getstartedwebgambas BruceS On Fri, 4 Nov 2022 at 12:02, David Silverwood via User < user at lists.gambas-basic.org> wrote: > Hi > > Quick question. Where can I get some reading/study material on Gambas Web. > I cannot seem to find much anywhere. If I can find something basic it would > help a lot. > > Thanks > > David > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Nov 4 14:44:28 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 13:44:28 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: On Thu, 3 Nov 2022 at 22:53, gian via User wrote: > Hi Benoit, > > my wife wanted to have on her desktop, a clock (type alarm clock), as > simple as the one she has on her nightstand, but nice as an day-date > clock, with the moon phase, and that started automatically with the > Linux session. > > On the Farm named mdDDclock (moon phase Day Date clock) is the result of > my work. > > It can only work if the Gambas IDE is installed (it have to run an > executable). > > Is there any way to create a project that starts automatically without > having to install the IDE ? > > Thank you and regards > So to summarize... to compile without the IDE you need gbc3 and gba3 and to pass some possibly vital arguments like -fpublic-control -fpublic-module so application works. try gbc3 --help gba3 --help to see options. To Auto-start you just need a .desktop launching icon to reside in $HOME/.kde/Autostart/ (for kde) or $HOME/.config/autostart/ for others (i know of) Auto-start may require a delay to ensure the desktop/toolkits/system tray/etc have loaded properly before the gambas application starts I use these settings in the .desktop file... X-MATE-Autostart-Delay=5 X-GNOME-Autostart-Delay=5 sometimes even the delay didn't work and the application was not able to detect a system tray before loading so i also added an option to wait for the tray with this code... UseTray = False $bHasTray = Desktop.HasSystemTray $bWaitForTray = Settings["WaitForTray", False] If $bWaitForTray And If Not $bHasTray Then For c As Integer = 1 To 60 Wait 1 fList.Retries = c $bHasTray = Desktop.HasSystemTray If $bHasTray Then Break Next Message("System tray did not load") Endif If $bHasTray Then UseTray = Settings["UseSysTray", True] that checks every second for up to 60 seconds if the SysTray has loaded. Hope that all makes sense :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Nov 4 14:47:48 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 13:47:48 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: If $bHasTray Then Break > Next > Message("System tray did not load") > Endif > Oops correction.. Next If Not $bHasTray Then Message("System tray did not load") Endif BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Fri Nov 4 15:04:14 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 4 Nov 2022 10:04:14 -0400 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: <49ff411e-8efa-36e4-4541-992bc17c7156@gmail.com> On 11/3/22 22:56, Bruce Steers wrote: > Public Sub IsAutoStarted(Optional bTest As Boolean) As Boolean > > ? If Not AutoStartFile Then > ? ? AutoStartFolder = User.Home &/ If(GetDesktop() Like "KDE*", ".kde/Autostart", ".config/autostart") Just FYI, on my KDE5 system there is no "~/.kde" directory. The "autostart" directory (along with "autostart-scripts") is in "~/.config". -- Lee From bagoneo at libero.it Fri Nov 4 15:31:07 2022 From: bagoneo at libero.it (gian) Date: Fri, 4 Nov 2022 15:31:07 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: Hi Benoit, Bruce, Lee, thank you very much for the help :-) Il 04/11/22 11:12, Benoit Minisini ha scritto: > I don't understand: you never need the IDE to run a Gambas executable. > You just need the runtime. then the error is either in my code or in the way I create the package. If it is in the code, it is probably in this step: Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait I think it's possible that the compiler doesn't know Application.Path, something about that I had read. If it is in the way I create the package it is probably always because of gbc3 and gba3 you need to indicate something to the compiler. If you would like to take a look at the MMain code ... I would be very grateful. Note: For the packaging test, I compiled the code into a Mint-21 stable and created the packages with that. On VBox I added a Mint-21 without Gambas but with only the PPA repository. You can see from the zipped images in this link: https://paste.c-net.org/IncomingSolemnly That the process is successful only the program does not start, I click on it but nothing happens. I apologize to everyone for the insistence but I would like to understand, thanks Regards Gianluigi From bsteers4 at gmail.com Fri Nov 4 15:41:09 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 14:41:09 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: <49ff411e-8efa-36e4-4541-992bc17c7156@gmail.com> References: <49ff411e-8efa-36e4-4541-992bc17c7156@gmail.com> Message-ID: On Fri, 4 Nov 2022 at 14:05, T Lee Davidson wrote: > On 11/3/22 22:56, Bruce Steers wrote: > > Public Sub IsAutoStarted(Optional bTest As Boolean) As Boolean > > > > If Not AutoStartFile Then > > AutoStartFolder = User.Home &/ If(GetDesktop() Like "KDE*", > ".kde/Autostart", ".config/autostart") > > Just FYI, on my KDE5 system there is no "~/.kde" directory. The > "autostart" directory (along with "autostart-scripts") is in > "~/.config". > > Ahh i did not know that, thank you Lee I guess best to just pop a launcher in both locations to be sure :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Nov 4 15:58:45 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 4 Nov 2022 14:58:45 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: On Fri, 4 Nov 2022 at 14:33, gian via User wrote: > Hi Benoit, Bruce, Lee, > > thank you very much for the help :-) > > > Il 04/11/22 11:12, Benoit Minisini ha scritto: > > I don't understand: you never need the IDE to run a Gambas executable. > > You just need the runtime. > > then the error is either in my code or in the way I create the package. > > If it is in the code, it is probably in this step: > Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath > &/ Application.Name & ".gambas" Wait > I think it's possible that the compiler doesn't know Application.Path, > something about that I had read. > > If it is in the way I create the package it is probably always because > of gbc3 and gba3 you need to indicate something to the compiler. > Does the exe get created in the correct place? sPath (where is sPath?) Does running application exe from a terminal give any error msg to see what's wrong? Does the application have options "controls are public" or "module symbols are public" set? Just somethings to consider. -------------- next part -------------- An HTML attachment was scrubbed... URL: From angelnunez123 at gmail.com Fri Nov 4 22:18:09 2022 From: angelnunez123 at gmail.com (Angel) Date: Fri, 4 Nov 2022 22:18:09 +0100 Subject: [Gambas-user] Arrangement property in ScrollView. Message-ID: ScrollView has Arrangement property at design time in the gambas3 ide, but at run time it does not support Arrangement property, in the gambas help it has Arrangement as property. Is it a bug? From brian at westwoodsvcs.com Fri Nov 4 19:20:22 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 4 Nov 2022 11:20:22 -0700 (PDT) Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> Sorry but why not just use a gambas script! Develop the project using the ide, and then just use the scripter(gbs3) to create a script that can be run directly without all the fooling around....? Just a thought gbs3 -convert-project "path to project directory" "path to directory to store the script" example gbs3 --convert-project "~/myclock" "~/bin" This created a gambas script called myclock.gbs in the ~/bin directory so if ~/bin is in your path then run from prompt $ myclock.gbs & Or for example on mint use the startup app entry on the control panel. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Nov 4, 2022, at 2:58 PM, Bruce Steers wrote: On Fri, 4 Nov 2022 at 14:33, gian via User < [ mailto:user at lists.gambas-basic.org | user at lists.gambas-basic.org ] > wrote: BQ_BEGIN Hi Benoit, Bruce, Lee, thank you very much for the help :-) Il 04/11/22 11:12, Benoit Minisini ha scritto: > I don't understand: you never need the IDE to run a Gambas executable. > You just need the runtime. then the error is either in my code or in the way I create the package. If it is in the code, it is probably in this step: Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait I think it's possible that the compiler doesn't know Application.Path, something about that I had read. If it is in the way I create the package it is probably always because of gbc3 and gba3 you need to indicate something to the compiler. Does the exe get created in the correct place? sPath (where is sPath?) Does running application exe from a terminal give any error msg to see what's wrong? Does the application have options "controls are public" or "module symbols are public" set? Just somethings to consider. ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- BQ_END -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Fri Nov 4 23:11:40 2022 From: bagoneo at libero.it (gian) Date: Fri, 4 Nov 2022 23:11:40 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: Message-ID: <9163e55e-f0d9-d790-81b1-ff72bca2744d@libero.it> Il 04/11/22 15:58, Bruce Steers ha scritto: > Does the exe get created in the correct place? sPath? (where is sPath?) > > Does running application exe from a terminal give any error msg to see > what's wrong? > Does the application have options "controls are public" or "module > symbols are public" set? > > Just somethings to consider. > I don't know what to say I think there was misunderstanding. The project works fine on Gnome, Ubuntu, KDE, Cinnamon, Mate, Xfce but only if you have the Gambas IDE. If you try to install a package created with Gambas the project does not work. There are no errors when creating packages ending with: The packages were created correctly. And there are no errors when installing the packages, as you can see from the images linked above. Good night Gianluigi From bagoneo at libero.it Fri Nov 4 23:29:24 2022 From: bagoneo at libero.it (gian) Date: Fri, 4 Nov 2022 23:29:24 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Il 04/11/22 19:20, Brian G ha scritto: > Sorry but why not just use a gambas script! > > Develop the project using the ide, and then just use the scripter(gbs3) > to create a script that can be run directly without all the fooling > around....? > > Just a thought > > gbs3 -convert-project "path to project directory" "path to directory to > store the script" > > example > gbs3 --convert-project "~/myclock" "~/bin" > > This created a gambas script called myclock.gbs in the ~/bin directory > > so if ~/bin is in your path then run from prompt > > $ myclock.gbs & > > Or for example on mint use the startup app entry on the control panel. Hi Brian, I thank you, I get your email only now and I am not sure I understand what you are suggesting. I am going to sleep now, tomorrow night (Saturday is busy) with a fresher mind I hope to understand. Good night Gianluigi From t.lee.davidson at gmail.com Fri Nov 4 23:03:41 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 4 Nov 2022 18:03:41 -0400 Subject: [Gambas-user] Arrangement property in ScrollView. In-Reply-To: References: Message-ID: On 11/4/22 17:18, Angel wrote: > ScrollView has Arrangement property at design time in the gambas3 ide, but at run time it does not support Arrangement property, > in the gambas help it has Arrangement as property. Is it a bug? The Arrangement property for ScrollView is available at runtime. [code] Public Sub Form_Open() ScrollView1.Arrangement = Arrange.Fill Print ScrollView1.Arrangement End [/code] Outputs the numeral 5 to the console at run time. -- Lee Desktop: KDE5 From brian at westwoodsvcs.com Sat Nov 5 06:02:26 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 05 Nov 2022 08:02:26 +0300 Subject: [Gambas-user] =?utf-8?q?Automatic_Startup?= In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1667624546.140873924@f6.my.com> Don't need packages, just the script.. I think should work, as long as scripter, and gambas are installed -- Thanks Brian G Friday, 04 November 2022, 03:31PM -07:00 from gian via User user at lists.gambas-basic.org : >Il 04/11/22 19:20, Brian G ha scritto: > Sorry but why not just use a gambas script! > > Develop the project using the ide, and then just use the scripter(gbs3) > to create a script that can be run directly without all the fooling > around....? > > Just a thought > > gbs3 -convert-project "path to project directory" "path to directory to > store the script" > > example > gbs3 --convert-project "~/myclock" "~/bin" > > This created a gambas script called myclock.gbs in the ~/bin directory > > so if ~/bin is in your path then run from prompt > > $ myclock.gbs & > > Or for example on mint use the startup app entry on the control panel. > >Hi Brian, > >I thank you, I get your email only now and I am not sure I understand >what you are suggesting. >I am going to sleep now, tomorrow night (Saturday is busy) with a >fresher mind I hope to understand. > >Good night > >Gianluigi > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 5 07:43:38 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 5 Nov 2022 17:13:38 +1030 Subject: [Gambas-user] Tab size in a textarea Message-ID: <34bb2395-bdb6-4a1d-ded4-dc20cf1b0e3d@gmail.com> Is there any way to set the tab size in a TextArea control? I mean the width on the left when I hit the Tab key when editing the TextArea text. Mainly interested in QT5 but regardless of the gui it is "Huge", about 10 characters. tia bruce From angelnunez123 at gmail.com Sat Nov 5 07:56:17 2022 From: angelnunez123 at gmail.com (Angel) Date: Sat, 5 Nov 2022 07:56:17 +0100 Subject: [Gambas-user] Arrangement property in ScrollView. In-Reply-To: References: Message-ID: El 4/11/22 a las 23:03, T Lee Davidson escribi?: > On 11/4/22 17:18, Angel wrote: >> ScrollView has Arrangement property at design time in the gambas3 >> ide, but at run time it does not support Arrangement property, in the >> gambas help it has Arrangement as property. Is it a bug? > > The Arrangement property for ScrollView is available at runtime. > [code] > Public Sub Form_Open() > > ? ScrollView1.Arrangement = Arrange.Fill > ? Print ScrollView1.Arrangement > > End > [/code] > > Outputs the numeral 5 to the console at run time. You are right, it's a mistake of mine. He called the Arrangement of the Scollview object from another function. [code] Public Sub LlenarScrol(Contenedor As Container) ??? Contenedor.Arrangement = Arrange.Column End [/code] I sent a scrolview to the sub and obtained the error 'ScrollView.Arrangement' is not a property I get obsessed that the scrolview control had a bug, the bug was me The container object does not have the Arrangement property, -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Sat Nov 5 08:00:08 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 5 Nov 2022 08:00:08 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <1667624546.140873924@f6.my.com> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: If the scripter is installed then the gambas runtime also. So normally the packaged executable will run too. Can you try to run it in a terminal on you wife computer ? And see what error is returned ? Best regards, Fabien -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Nov 5 11:02:10 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 5 Nov 2022 11:02:10 +0100 Subject: [Gambas-user] Arrangement property in ScrollView. In-Reply-To: References: Message-ID: Le 05/11/2022 ? 07:56, Angel a ?crit?: > > You are right, it's a mistake of mine. Yes and no: The error message should be 'Container.Arrangement' is not a property, but it takes the actual class of the object to generate the error message hence confusing... > > He called the Arrangement of the Scollview object from another function. > > [code] > > Public Sub LlenarScrol(Contenedor As Container) > > ??? Contenedor.Arrangement = Arrange.Column > > End > > [/code] > > I sent a scrolview to the sub and obtained the error > > 'ScrollView.Arrangement' is not a property > > I get obsessed that the scrolview control had a bug, the bug was me > > The container object does not have the Arrangement property, > -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sat Nov 5 12:03:08 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 5 Nov 2022 12:03:08 +0100 Subject: [Gambas-user] RegExp not returning submatches In-Reply-To: <9eb74aaf-edef-ecbd-b822-1c54928f820b@gmail.com> References: <9eb74aaf-edef-ecbd-b822-1c54928f820b@gmail.com> Message-ID: <297cb05e-5db7-10fc-eb4c-cd679445b1ca@gambas-basic.org> Le 21/10/2022 ? 02:43, T Lee Davidson a ?crit?: > On 10/20/22 17:31, gian via User wrote: >> Hi?Lee, >> >> to me your code is correct and is based on what is written in the >> Gambas wiki. >> >> I?think?this?is?a?bug?that?should?be?reported. > > Thank you for looking into it, Gianluigi. > > Bug reported. > > For information: this was not a bug, but a misunderstood of the RegExp (strange) API where the Count property is the number of submatches, but not the number of elements managed by the RegExp array operator. Regards, -- Beno?t Minisini. From bagoneo at libero.it Sat Nov 5 15:44:35 2022 From: bagoneo at libero.it (gian) Date: Sat, 5 Nov 2022 15:44:35 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: Il 05/11/22 08:00, Fabien Bodard ha scritto: > If the scripter is installed then the gambas runtime also. So normally > the packaged executable will run too. > > Can you try to run it in a terminal on you wife computer ? And see what > error is returned ? > > Best regards, > > Fabien > Hi Fabien, Yes, you are right, and yes, I am an idiot for not doing it ;-D That's what the terminal says: lino at lino-VirtualBox:~$ gbx3 --version 3.17.3 lino at lino-VirtualBox:~$ mpDDclock gb.gui.qt: error: 'gb.qt5' component not found, unable to find any QT replacement component Thank you very much and regards (help me please ?) Gianluigi From brian at westwoodsvcs.com Sat Nov 5 15:50:43 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 05 Nov 2022 17:50:43 +0300 Subject: [Gambas-user] =?utf-8?q?Automatic_Startup?= In-Reply-To: References: Message-ID: <1667659843.103833106@f40.my.com> Sorry, my fault you must have the full gambas3 environment installed, gb.gt should have been installed when you did that. What version of scripter is running -- Thanks Brian G Saturday, 05 November 2022, 07:45AM -07:00 from gian via User user at lists.gambas-basic.org : >Il 05/11/22 08:00, Fabien Bodard ha scritto: > If the scripter is installed then the gambas runtime also. So normally > the packaged executable will run too. > > Can you try to run it in a terminal on you wife computer ? And see what > error is returned ? > > Best regards, > > Fabien > > >Hi Fabien, > >Yes, you are right, and yes, I am an idiot for not doing it ;-D > >That's what the terminal says: > >lino at lino-VirtualBox:~$ gbx3 --version >3.17.3 >lino at lino-VirtualBox:~$ mpDDclock >gb.gui.qt: error: 'gb.qt5' component not found, unable to find any QT >replacement component > >Thank you very much and regards >(help me please ?) > > >Gianluigi > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Nov 5 15:54:05 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 05 Nov 2022 17:54:05 +0300 Subject: [Gambas-user] =?utf-8?q?Automatic_Startup?= In-Reply-To: <1667659843.103833106@f40.my.com> References: <1667659843.103833106@f40.my.com> Message-ID: <1667660045.151403036@f7.my.com> Sorry gb.qt5 I mean -- Thanks Brian G Saturday, 05 November 2022, 07:51AM -07:00 from Brian G brian at westwoodsvcs.com : >Sorry, my fault you must have the full gambas3 environment installed, gb.gt should have been installed when you did that. >What version of scripter is running >-- >Thanks >Brian G Saturday, 05 November 2022, 07:45AM -07:00 from gian via User user at lists.gambas-basic.org : > >>Il 05/11/22 08:00, Fabien Bodard ha scritto: > If the scripter is installed then the gambas runtime also. So normally > the packaged executable will run too. > > Can you try to run it in a terminal on you wife computer ? And see what > error is returned ? > > Best regards, > > Fabien > >> >>Hi Fabien, >> >>Yes, you are right, and yes, I am an idiot for not doing it ;-D >> >>That's what the terminal says: >> >>lino at lino-VirtualBox:~$ gbx3 --version >>3.17.3 >>lino at lino-VirtualBox:~$ mpDDclock >>gb.gui.qt: error: 'gb.qt5' component not found, unable to find any QT >>replacement component >> >>Thank you very much and regards >>(help me please ?) >> >> >>Gianluigi >> >>----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sat Nov 5 16:05:54 2022 From: bagoneo at libero.it (gian) Date: Sat, 5 Nov 2022 16:05:54 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <1667660045.151403036@f7.my.com> References: <1667659843.103833106@f40.my.com> <1667660045.151403036@f7.my.com> Message-ID: Il 05/11/22 15:54, Brian G ha scritto: > Sorry gb.qt5 I mean From the image I had posted, it looks like the installer put in gb.gui and gb.gtk instead of gb.gui.qt and gb.qt5. Maybe it's my fault, but I had understood that you use the generic deb and then the installer does everything. Evidently I misunderstood :-( Regards Gianluigi From bsteers4 at gmail.com Sat Nov 5 16:42:32 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 5 Nov 2022 15:42:32 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: <9163e55e-f0d9-d790-81b1-ff72bca2744d@libero.it> References: <9163e55e-f0d9-d790-81b1-ff72bca2744d@libero.it> Message-ID: On Fri, 4 Nov 2022 at 22:15, gian via User wrote: > Il 04/11/22 15:58, Bruce Steers ha scritto: > > Does the exe get created in the correct place? sPath (where is sPath?) > > > > Does running application exe from a terminal give any error msg to see > > what's wrong? > > Does the application have options "controls are public" or "module > > symbols are public" set? > > > > Just somethings to consider. > > > > I don't know what to say I think there was misunderstanding. > > The project works fine on Gnome, Ubuntu, KDE, Cinnamon, Mate, Xfce but > only if you have the Gambas IDE. > If you try to install a package created with Gambas the project does not > work. > > There are no errors when creating packages ending with: > The packages were created correctly. > > And there are no errors when installing the packages, as you can see > from the images linked above. > > Good night > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]--- I think if you run the program from terminal you may get error messages that help you detect the problem. then you may understand better the solution. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Sat Nov 5 16:55:05 2022 From: mbelmonte at belmotek.net (Martin) Date: Sat, 5 Nov 2022 16:55:05 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: Hi GIanluigi. I create the package in Manjaro 21 XFCE then I install it. The menu entry was created well. At the first run appear the info dialog box to select the font then the clock not appear. At the seccond try it run fine, the clock works properly. https://imgur.com/SYY6dvo In my system, that I mention before, Manjaro XFCE, is possible add a start-up entry to run the program when the user login to the desktop. https://imgur.com/SaE4Xum Regards. Martin. From bagoneo at libero.it Sat Nov 5 17:59:54 2022 From: bagoneo at libero.it (gian) Date: Sat, 5 Nov 2022 17:59:54 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: <6c106574-6543-16a0-c9f2-8bd3f4240c2e@libero.it> Il 05/11/22 16:55, Martin ha scritto: > Hi GIanluigi. > I create the package in Manjaro 21 XFCE then I install it. > The menu entry was created well. > At the first run appear the info dialog box to select the font then the > clock not appear. > At the seccond try it run fine, the clock works properly. > https://imgur.com/SYY6dvo > > In my system, that I mention before, Manjaro XFCE, is possible add a > start-up entry to run the program when the user login to the desktop. > https://imgur.com/SaE4Xum > > Regards. > Martin. > Hi Martin and folk, First I want to thank everyone who participated in the discussion. Unfortunately, and I don't know for what reason, some emails came late and the discussion may seem surreal :-) it is nobody's fault. Martin is right, it is easy to auto-start the programs we want, however, it is also nice to know how it can be done through Gambas. I installed qt5 (see image) the program starts with the help window but when I give it the ok it closes with this error: lino at lin-VirtualBox:~$ mpddclock /bin/sh: 1: gbc3: not found /bin/sh: 1: /home/lino/.mpddclock/mpddclock.gambas: not found rightly because the program did not create the .gambas file, the .mpddclock folder is empty When in doubt, I tried again with mpDDclock but nothing changes. But launching the program from the Mint menu started the clock, the alarm clock works, etc. Thanks to this terminal response: lino at lino-VirtualBox:~$ sudo find / -iname "mpddclock.gambas" [sudo] password di lino: find: ?/run/user/1000/gvfs?: Permesso negato and after re-reading more carefully what Prof. Tobias had written to Bruce (was that what you wanted to talk about?) about gambas scripts, I think I understand what is going on: this command: Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" WaitShell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait does not create the .gambas application where indicated but creates a temporary file that I believe can be copied (with the right permissions?). I will continue to study but I think I am on the right path. Again thanks to all Regards Gianluigi -------------- next part -------------- A non-text attachment was scrubbed... Name: mint.jpg Type: image/jpeg Size: 12003 bytes Desc: not available URL: From t.lee.davidson at gmail.com Sat Nov 5 18:05:33 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 5 Nov 2022 13:05:33 -0400 Subject: [Gambas-user] Tab size in a textarea In-Reply-To: <34bb2395-bdb6-4a1d-ded4-dc20cf1b0e3d@gmail.com> References: <34bb2395-bdb6-4a1d-ded4-dc20cf1b0e3d@gmail.com> Message-ID: On 11/5/22 02:43, BB wrote: > Is there any way to set the tab size in a TextArea control? > > I mean the width on the left when I hit the Tab key when editing the TextArea text. > > Mainly interested in QT5 but regardless of the gui it is "Huge", about 10 characters. > > tia > > bruce It appears that having the ability to set the tab size would require modification of the TextArea code[1]. Since tabStopDistance is specified in pixels, the font metrics would need to be taken into account. An example from StackExchange[2] for Python: textedit = QtWidgets.QPlainTextEdit() textedit.setTabStopDistance( QtGui.QFontMetricsF(textedit.font() ).horizontalAdvance(' ') * 4) I don't know how that would translate to a Gambas TextArea. In the meantime, you could manipulate TextArea.Text yourself: ' Gambas class file Private iTabSize As Integer = 4 Private bTabKey As Boolean Public Sub TextArea1_Change() If bTabKey Then bTabKey = False Object.Lock(TextArea1) ' TextArea1.Undo ' Does not work; Undo is greedy taking more than just the last keystroke. ' TextArea1.Insert("\b") ' Neither the backspace control character nor Chr(8) behave as expected. TextArea1.Text = String.Left(TextArea1.Text, -1) TextArea1.Insert(Space(iTabSize)) Object.Unlock(TextArea1) Endif End Public Sub TextArea1_KeyPress() If Key.Code = Key.Tab Then ' Do not edit TextArea.Text in this event. bTabKey = True ' Use a semaphore because Key information is not available in the Change event. Endif End -- Lee [1] https://doc.qt.io/qt-5/qplaintextedit.html#tabStopDistance-prop [2] https://stackoverflow.com/questions/50190860/how-to-change-the-width-of-tabs-in-a-qplaintextedit From bagoneo at libero.it Sat Nov 5 18:08:26 2022 From: bagoneo at libero.it (gian) Date: Sat, 5 Nov 2022 18:08:26 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: Il 05/11/22 16:55, Martin ha scritto: > Hi GIanluigi. > I create the package in Manjaro 21 XFCE then I install it. > The menu entry was created well. > At the first run appear the info dialog box to select the font then the > clock not appear. > At the seccond try it run fine, the clock works properly. > https://imgur.com/SYY6dvo > > In my system, that I mention before, Manjaro XFCE, is possible add a > start-up entry to run the program when the user login to the desktop. > https://imgur.com/SaE4Xum > > Regards. > Martin. Hi Martin, if I am not mistaken about the analysis I did earlier, your clock should no longer work tomorrow. I am sorry :-( As I wrote in the help the program (as is) works only if the IDE is installed. I thank you very much for the test :-) Regards Gianluigi From t.lee.davidson at gmail.com Sat Nov 5 18:39:01 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 5 Nov 2022 13:39:01 -0400 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> On 11/5/22 13:08, gian via User wrote: > As I wrote in the help the program (as is) works only if the IDE is installed. Gianluigi, I downloaded your app from the Farm and took a quick look at MMain. I have to assume that your wife has her own computer. But, I am unsure of that as I do not recall you mentioning how you transferred your program to her desktop. Anyway... I do not understand why you are doing this: Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait Why not simply make an installation package thereby letting Gambas determine and handle dependencies? You could specify an extra file (Step 8) that could be a launch script to be placed in the system's autostart folder. -- Lee From bagoneo at libero.it Sat Nov 5 23:37:29 2022 From: bagoneo at libero.it (gian) Date: Sat, 5 Nov 2022 23:37:29 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: Hi Lee, Il 05/11/22 18:39, T Lee Davidson ha scritto: > Gianluigi, I downloaded your app from the Farm and took a quick look at > MMain. > > I have to assume that your wife has her own computer. But, I am unsure > of that as I do not recall you mentioning how you transferred your > program to her desktop. Anyway... yes my wife has her own desktop pc with Linux Ubuntu, she has for convenience Gambas IDE so for the programs she asks me I install an executable for her, but also a work in progress and I do it faster. This time I felt like trying to create everything from code and indeed the clock installed from his IDE works fine. At this point I wondered, what if I wanted to distribute it with packages? I realized that I didn't actually know many things: For example, Benoit told me that the runtime is enough to run an executable, I didn't know that, I thought you need to have the IDE. And other things I still don't know, as you might have guessed from the questions I asked. Now I understand why Bruce is fascinated by scripts (which work even without the IDE). > > I do not understand why you are doing this: > Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath > &/ Application.Name & ".gambas" Wait With the above in mind, the idea was to create the executable with the collected data (font and location) to start it with a launcher and a symlink in autostart. > > Why not simply make an installation package thereby letting Gambas > determine and handle dependencies? > > You could specify an extra file (Step 8) that could be a launch script > to be placed in the system's autostart folder. Everything you wrote after that I did not understand and I apologize. Can you be more clear? I am going to sleep now, I wish you a good night (here) and good morning (there) :-) Gianluigi From bsteers4 at gmail.com Sun Nov 6 04:17:19 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 6 Nov 2022 03:17:19 +0000 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: On Sat, 5 Nov 2022 at 22:38, gian via User wrote: > Hi Lee, > > Il 05/11/22 18:39, T Lee Davidson ha scritto: > > Gianluigi, I downloaded your app from the Farm and took a quick look at > > MMain. > > > > I have to assume that your wife has her own computer. But, I am unsure > > of that as I do not recall you mentioning how you transferred your > > program to her desktop. Anyway... > > yes my wife has her own desktop pc with Linux Ubuntu, she has for > convenience Gambas IDE so for the programs she asks me I install an > executable for her, but also a work in progress and I do it faster. > > This time I felt like trying to create everything from code and indeed > the clock installed from his IDE works fine. > > At this point I wondered, what if I wanted to distribute it with packages? > > I realized that I didn't actually know many things: > > For example, Benoit told me that the runtime is enough to run an > executable, I didn't know that, I thought you need to have the IDE. > And other things I still don't know, as you might have guessed from the > questions I asked. > Now I understand why Bruce is fascinated by scripts (which work even > without the IDE). > scripts are awesome :) > > > I do not understand why you are doing this: > > Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath > > &/ Application.Name & ".gambas" Wait > > With the above in mind, the idea was to create the executable with the > collected data (font and location) to start it with a launcher and a > symlink in autostart. > I do not think you can symlink a gambas application directly in autostart, i think it needs to be just .desktop [Desktop Entry] files in there. The same file as that script i posted makes on the Desktop , you could modify that script to save the file in autostart not on the Desktop (you may want the delay options) To be honest i have veered away from all the packager stuff and dealt with things myself. The script i posted will compile a downloaded project source, i think negating the need for any official install. all that script needs is to make another .desktop file in $HOME/.local/share/applications to add it to the system menu as well. but it needs to handle the menu categories well like gambas does. and maybe an option to copy the exe to /usr/bin or somewhere if you don't want to just use it from within the project folder. I also made an updater class that i've added to some of my apps that checks version to an online source and downloads/compiles/overwrites old version, either a whole project folder or just a standalone exe. further negating the need for a packager. nor any more compilations from the user, they can just click "Update" and it's automatically done. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Sun Nov 6 14:53:21 2022 From: mbelmonte at belmotek.net (Martin) Date: Sun, 6 Nov 2022 14:53:21 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> Message-ID: <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> El 5/11/22 a las 18:08, gian via User escribi?: > if I am not mistaken about the analysis I did earlier, your clock should > no longer work tomorrow. > I am sorry ? > As I wrote in the help the program (as is) works only if the IDE is > installed. > I thank you very much for the test ? Today it is still working normally, it is installed but not with the IDE. When entering the system the clock started by itself, everything perfect, see the link below. https://imgur.com/AxGK4Uy Regards. Martin. From bsteers4 at gmail.com Sun Nov 6 15:04:15 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 6 Nov 2022 14:04:15 +0000 Subject: [Gambas-user] Screen.class could do with "TotalWidth" or something In-Reply-To: References: Message-ID: I added this function to Screens.class in my project that i think correctly gets total size... *Static Private Function Area_Read() As Rect $hRect = New Rect(Screens[0].X, Screens[0].Y, Screens[0].W, Screens[0].H) If Screens.Count > 1 Then Dim hNewRect As Rect For c As Integer = 1 To Screens.Count - 1 hNewRect = New Rect(Screens[c].X, Screens[c].Y, Screens[c].W, Screens[c].H) $hRect = $hRect.Union(hNewRect) Next Endif Return $hRectEnd* So i can inspect Screens.Area for the Rect of total size. I also added *Screens.Width* and *Screens.Height* that are *.W* & *.H* of the *Rect* like this... *Return Area_Read().Width* Also *Screens.Max* currently working on a *Screens.Active* as a more functional way to get the active screen at application startup. On Mon, 31 Oct 2022 at 14:29, Bruce Steers wrote: > I've just been investigating Screen.class with 2 monitors connected. > > It seems if my primary monitor is to the left of the secondary I get this > info from Screen.class > > Screen.X = 0 > Screen.Width = Primary width > (no information about secondary display) > > If the primary is to the right then i get this.. > Screen.X = secondary screen width > Screen.Width = primary screen width > > so seeing Screen.X is the width of the other monitor i can see i have 2 > monitors and i can move the window over to the other screen. > (i did not try but i assume Form.Move() will use a negative number) > > even if i have to use X11.MoveWindow at least i can use the fact Screen.X > is not zero to detect a secondary monitor to the left. > > It would be great to get better info about another monitor if the primary > is on the left though. > > Maybe something like a Screen.TotalWidth or Screen.ExtendedWidth could be > something that refers to a larger overall usable display size not just the > monitor width? then we can detect a secondary on the right as well. > > Respects > BruceS > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screens.class.zip Type: application/zip Size: 685 bytes Desc: not available URL: From bagoneo at libero.it Sun Nov 6 15:28:10 2022 From: bagoneo at libero.it (gian) Date: Sun, 6 Nov 2022 15:28:10 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> Message-ID: Il 06/11/22 14:53, Martin ha scritto: > El 5/11/22 a las 18:08, gian via User escribi?: >> if I am not mistaken about the analysis I did earlier, your clock >> should no longer work tomorrow. >> I am sorry ? >> As I wrote in the help the program (as is) works only if the IDE is >> installed. >> I thank you very much for the test ? > > Today it is still working normally, it is installed but not with the IDE. > When entering the system the clock started by itself, everything > perfect, see the link below. > https://imgur.com/AxGK4Uy > Regards. > Martin. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi Martin, So if I understand correctly, you created the package and then installed it (as created by the IDE) on a computer or VBox without the Gambas IDE. The clock started on the second try and when you reboot you get the clock on the desktop. If this is the case, I don't get it anymore, how do you explain it? Why on Mint-21 this doesn't happen, you don't create the project in the home, in autostart you don't write anything, and the same in .local/share/applications? I had given myself an explanation but it seems to be wrong. Any ideas? Thank you very much, regards Gianluigi From bagoneo at libero.it Sun Nov 6 15:58:15 2022 From: bagoneo at libero.it (gian) Date: Sun, 6 Nov 2022 15:58:15 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: Il 06/11/22 04:17, Bruce Steers ha scritto: > > scripts are awesome :) > > ... > > I do not think you can symlink a gambas application directly in > autostart, i think it needs to be just .desktop [Desktop Entry] files in > there. > The same file as that script i posted makes on the Desktop , you could > modify that script to save the file in autostart not on the Desktop > (you may want the delay options) > > > To be honest i have veered away from all the packager stuff and dealt > with things myself. > > The script i posted will compile a downloaded project source, i think > negating the need for any official install. > all that script needs is to make another .desktop file in > $HOME/.local/share/applications to add it to the system menu as well. > but it needs to handle the menu categories well like gambas does. > > and maybe an option to copy the exe to /usr/bin or somewhere if you > don't want to just use it from within the project folder. > > > I also made an updater class that i've added to some of my apps that > checks version to an online source and downloads/compiles/overwrites old > version, either a whole project folder or just a standalone exe. further > negating the need for a packager. nor any more compilations from the > user, they can just click "Update" and it's automatically done. > > Respects > BruceS Hi Bruce, I was rehearsing to be able to answer you properly. Then Martin's e-mail came and now I don't understand it at all. To make a point I list what I thought I understood. When creating a package Gambas translates Application.Path to /tmp/whatever. If I type the shell command: sPath = User.Home &/ "." & Application.Name If Not Exist(sPath) Then Try Mkdir sPath. Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait Is Gambas able to understand it and process it? I thought I understood that it was not capable but now Martin disproves this. Please can some Guru clarify because the more I read on the subject the more my old brain gets confused and my spirit gets depressed. One might think that the topic has already been eviscerated enough, but for me it has not and I don't think it costs too much effort to help, here the question is clear and the answer can be as well. Then there would also be the problem of endianness, but that is another story. Regards Gianluigi From bagoneo at libero.it Sun Nov 6 16:18:38 2022 From: bagoneo at libero.it (gian) Date: Sun, 6 Nov 2022 16:18:38 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: You have to admit one thing though, the watch I designed for my wife is really beautiful :-P Regards Gianluigi -------------- next part -------------- A non-text attachment was scrubbed... Name: wife-clock.png Type: image/png Size: 59171 bytes Desc: not available URL: From t.lee.davidson at gmail.com Sun Nov 6 17:56:23 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 6 Nov 2022 11:56:23 -0500 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: On 11/5/22 18:37, gian via User wrote: > At this point I wondered, what if I wanted to distribute it with packages? Then, perhaps, simply use the Gambas IDE package creator (Project -> Make -> Installation package)? > Now I understand why Bruce is fascinated by scripts (which work even without the IDE). Graphical applications work without the IDE as well. One of the reasons BruceS writes scripts, as he stated, is to avoid an "official" installation. (@BruceS: Why? Is there something wrong with an install?) >> I do not understand why you are doing this: >> Shell "cd " & Application.Path & " && gbc3 -agt && gba3 -v -o " &/ sPath &/ Application.Name & ".gambas" Wait > > With the above in mind, the idea was to create the executable with the collected data (font and location) to start it with a > launcher and a symlink in autostart. Why would you need to choose the location? Let the package creator handle that. It would place the executable in /usr/bin. It also creates a desktop file and places the application icon in the appropriate location. And, as far as choosing the font, why not allow the user to select the preferred font at will at any time by providing a Settings/Preferences form. The form could also allow the user to select if the application should autostart. If the user enables autostart, simply copy the desktop configuration file from /usr/share/applications to ~./config/autostart (and of course, remove it if the user disables autostart). Why complicate things more than necessary? Why try to reinvent the wheel? Why write scripts or shell commands to do what the package creator already does rather well? Do we rewrite existing Gambas Components? No, we use the tools that already exist provided they produce an adequate solution. (I think Bruce invents excuses to write a program or script! :-P And, I can understand that as I have found myself doing the same thing once or thrice.) >> Why not simply make an installation package thereby letting Gambas determine and handle dependencies? >> >> You could specify an extra file (Step 8) that could be a launch script to be placed in the system's autostart folder. > > Everything you wrote after that I did not understand and I apologize. > > Can you be more clear? I was referring to making an installation package as mentioned above. However, Bruce is correct. One cannot simply place a script to launch the application in ~/.config/autostart; it would have to go in ~./config/autostart-scripts if your system recognizes that convention. -- Lee From mbelmonte at belmotek.net Sun Nov 6 18:57:33 2022 From: mbelmonte at belmotek.net (Martin) Date: Sun, 6 Nov 2022 18:57:33 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> Message-ID: <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> El 6/11/22 a las 15:28, gian via User escribi?: > So if I understand correctly, you created the package and then installed > it (as created by the IDE) on a computer or VBox without the Gambas IDE. > The clock started on the second try and when you reboot you get the > clock on the desktop. Hi, I did everything as you describe but I installed it on my workstation which has the IDE installed. I'm going to install it in an environment without IDE and then I'll tell you. Martin. From bsteers4 at gmail.com Sun Nov 6 21:05:38 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 6 Nov 2022 20:05:38 +0000 Subject: [Gambas-user] an observation on window placement with multiple screens In-Reply-To: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> References: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> Message-ID: On Thu, 13 Oct 2022 at 14:17, bb wrote: > On Thu, 2022-10-13 at 14:42 +0200, Benoit Minisini wrote: > > Le 13/10/2022 ? 14:03, Bruce Steers a ?crit : > > > I want to handle it first hand, not after via save/restore a > > > setting > > > if i use Settings.Write(MyForm) > > > It saves the window geometry and the screen number so i could read > > > the > > > Form.Settings property but Benoit has stated this syntax may change > > > so > > > it's not wise to use it. > > > I've looked at the Screen class and there is no ID or Number > > > property to > > > get data about the current screen. > > > > > > Can the Screens[] array Index be a reliable Id, so Screens[1] is 1 > > > as > > > the Form.Settings would save it? > > > > > > Can i tell what screen my open application is on? > > > Then force other windows like Dialogs and Messages and widows that > > > have > > > not had their position saved to be on the chosen screen? > > > > > > If not then i think gambas could really do with this feature. > > > It was not my experience that all other applications behaved this > > > way. > > > only some. > > > > > > Respects > > > BruceS > > > > > > > The problem are the following: > > > > - You can't directly specifiy the screen a window is. You can only > > specify its position, and the screen is deduced from that position > > (all > > screens making one sole big logical screen). > > > > - The window manager decides where a window appears. On X11, you can > > suggest a position. > > > > - On Wayland, you can't specify a window position! > > > > So it's almost impossible to have a window opening intelligently > > automatically in all cases. I will think a bit and see what I can do, > > but I'm afraid that on Wayland we can't do anything. > > > > Regards, > > > There are acouple of things here that I'd like to comment on. > > First, I see and agree with Benoit that "the window manager decides > where a window appears". It is a right royal pain that most window > managers either deny nor respect any wish that a window should appear > on a particular "screen" i.e a specific virtual desktop "screen". > Windows will appear by default on the current virtual desktop, no > matter how I wish otherwise. > > Secondly, and more importantly as BruceS has intimated, there is no way > that I can control where modal popups or message windows appear. But my > wish would be this... > I would really like the popups to be centered in the window that called > the popup not just in the center of the screen. For example 1) when > using an extended screen across two "X terminals" popups appear > centered exactly on the entire screen. In other words, half on my > primary display and half on the extended display. This is bad enough if > both displays are running at the same resolution and worse if they are > not. For example 2) if I am running several instances of a project > tiled on the display (whether using an extended display or not) the > popup appears in the center of the screen. This gives me no indication > of which instance the message (for instance) belongs to. It would be > much more preferrable that it was in the center of the window that it > belongs to. > I figured out this Bruce.. The attached project has a Form.class and an override for ShowModal() it checks if there is a calling window and notes it to get Window.Screen info. it creates a timer to move the window to the center of the correct calling screen on opening if not on the same screen. the attached project can be tested by moving the main window to a screen and hit the Message button to open a message box The override means it should operate on ANY ShowModal call your application does itself or triggers. (it certainly works for Message() ) It could be modified to use the calling windows position and be positioned relevant to the window and not just center screen My be a good start to a fix :) Just pop the Form.class into your own projects .src folder to have them use it. Respects BruceS ------ File name Form.Class ---------- ' Gambas class file Export Public $MoveTimer As Timer Private $actW As Window Public Sub ShowModal() As Integer If Application.ActiveWindow Then $actW = Application.ActiveWindow $MoveTimer = New Timer As "MTimer" $MoveTimer.Delay = 0 $MoveTimer.Start Endif Return Super.ShowModal() End Public Sub MTimer_Timer() $MoveTimer.Stop $MoveTimer = Null If Me.Screen = $actW.Screen Then Return Me.Move(((Screens[$actW.Screen].W - Me.W) / 2) + Screens[$actW.Screen].X, ((Screens[$actW.Screen].H - Me.H) / 2) + Screens[$actW.Screen].Y) End -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 4QhHOMIRjnCEIxzhCEc4whH+f/FfmtluAgB4AAA= From mbelmonte at belmotek.net Sun Nov 6 21:20:35 2022 From: mbelmonte at belmotek.net (Martin) Date: Sun, 6 Nov 2022 21:20:35 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> Message-ID: ok, I found the error You have to change the line 56 of MMain.module [1] It happens that when installing the package the installer copies the gambas executable in the system directory, this makes that the executable "mpDDclock" is registered, so when you create the .desktop that you will use to open the clock automatically, this .desktop has to point to "mpDDclock" that is what the system knows and not to "/home/mpDDDclock.gambas" that the system doesn't know. [1] 'sApplicationPath = User.Home &/ "." & Application.Name &/ Application.Name & ".gambas" sApplicationPath = "mpDDclock" Regards. Martin. From mbelmonte at belmotek.net Sun Nov 6 21:34:58 2022 From: mbelmonte at belmotek.net (Martin) Date: Sun, 6 Nov 2022 21:34:58 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> Message-ID: <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> Finally, all the data of the process. https://imgur.com/16NSW9Y 1) On a system with Gambas3 IDE (3.17.3) package the program. 2) Then copy the program to a system without Gambas3 nothing at all, no IDE no runtime nothing. 3) Install the package and asked for the dependencies, install them and everything is working the first time. Detail of the output in the terminal see attachment. Regards. Martin. -------------- next part -------------- [testing at runtime sf_archlinux]$ sudo pacman -U mpddclock-0.1.0-1-any.pkg.tar.zst [sudo] contrase?a para testing: cargando los paquetes... resolviendo dependencias... :: Existen 2 proveedores disponibles para gambas3-gui: :: Repositorio community 1) gambas3-gb-gtk3 2) gambas3-gb-qt5 Introduzca un n?mero (por omisi?n=1): 2 buscando conflictos entre paquetes... Paquetes (19) gambas3-gb-dbus-3.17.3-4 gambas3-gb-desktop-3.17.3-4 gambas3-gb-form-3.17.3-4 gambas3-gb-form-mdi-3.17.3-4 gambas3-gb-image-3.17.3-4 gambas3-gb-qt5-3.17.3-4 gambas3-gb-sdl2-audio-3.17.3-4 gambas3-gb-settings-3.17.3-4 gambas3-gb-util-3.17.3-4 gambas3-runtime-3.17.3-4 minizip-1:1.2.13-1 opusfile-0.12-2 qt5-location-5.15.6+kde+r3-1 qt5-webchannel-5.15.6+kde+r3-1 qt5-webengine-5.15.11-1 re2-1:20220601-1 sdl2_mixer-2.6.2-1 snappy-1.1.9-2 mpddclock-0.1.0-1 Tama?o total de la descarga: 51,70 MiB Tama?o total de la instalaci?n: 163,06 MiB :: ?Continuar con la instalaci?n? [S/n] s :: Obteniendo los paquetes... qt5-webengine-5.... 48,7 MiB 6,32 MiB/s 00:08 [######################] 100% qt5-location-5.1... 1204,4 KiB 5,71 MiB/s 00:00 [######################] 100% gambas3-runtime-... 569,8 KiB 4,38 MiB/s 00:00 [######################] 100% gambas3-gb-form-... 269,0 KiB 3,28 MiB/s 00:00 [######################] 100% gambas3-gb-qt5-3... 233,5 KiB 2,75 MiB/s 00:00 [######################] 100% re2-1:20220601-1... 158,3 KiB 2,58 MiB/s 00:00 [######################] 100% sdl2_mixer-2.6.2... 154,2 KiB 2,69 MiB/s 00:00 [######################] 100% qt5-webchannel-5... 74,9 KiB 1873 KiB/s 00:00 [######################] 100% opusfile-0.12-2-... 63,7 KiB 1723 KiB/s 00:00 [######################] 100% gambas3-gb-deskt... 60,3 KiB 1630 KiB/s 00:00 [######################] 100% gambas3-gb-dbus-... 53,9 KiB 1587 KiB/s 00:00 [######################] 100% gambas3-gb-form-... 53,0 KiB 1432 KiB/s 00:00 [######################] 100% gambas3-gb-util-... 45,9 KiB 1391 KiB/s 00:00 [######################] 100% gambas3-gb-image... 34,1 KiB 1136 KiB/s 00:00 [######################] 100% minizip-1:1.2.13... 27,6 KiB 1060 KiB/s 00:00 [######################] 100% snappy-1.1.9-2-x... 26,5 KiB 884 KiB/s 00:00 [######################] 100% gambas3-gb-sdl2-... 12,2 KiB 408 KiB/s 00:00 [######################] 100% gambas3-gb-setti... 12,0 KiB 443 KiB/s 00:00 [######################] 100% Total (18/18) 51,7 MiB 5,64 MiB/s 00:09 [######################] 100% (19/19) comprobando las claves del dep?sito [######################] 100% (18/19) verificando la integridad de los paquetes [######################] 100% (18/19) cargando los archivos de los paquetes [######################] 100% (19/19) comprobando conflictos entre archivos [######################] 100% (19/19) comprobando el espacio disponible en e... [######################] 100% :: Procesando los cambios de los paquetes... ( 1/19) instalando gambas3-runtime [######################] 100% ( 2/19) instalando gambas3-gb-image [######################] 100% ( 3/19) instalando qt5-webchannel [######################] 100% ( 4/19) instalando qt5-location [######################] 100% ( 5/19) instalando snappy [######################] 100% ( 6/19) instalando minizip [######################] 100% ( 7/19) instalando re2 [######################] 100% ( 8/19) instalando qt5-webengine [######################] 100% Dependencias opcionales para qt5-webengine pipewire: WebRTC desktop sharing under Wayland [instalado] ( 9/19) instalando gambas3-gb-qt5 [######################] 100% (10/19) instalando gambas3-gb-form [######################] 100% (11/19) instalando gambas3-gb-dbus [######################] 100% (12/19) instalando gambas3-gb-desktop [######################] 100% (13/19) instalando gambas3-gb-util [######################] 100% (14/19) instalando gambas3-gb-settings [######################] 100% (15/19) instalando gambas3-gb-form-mdi [######################] 100% (16/19) instalando opusfile [######################] 100% (17/19) instalando sdl2_mixer [######################] 100% Dependencias opcionales para sdl2_mixer fluidsynth: MIDI software synth, replaces built-in timidity [instalado] (18/19) instalando gambas3-gb-sdl2-audio [######################] 100% (19/19) instalando mpddclock [######################] 100% :: Ejecutando los ?hooks? de posinstalaci?n... (1/2) Arming ConditionNeedsUpdate... (2/2) Updating the desktop file MIME type cache... [testing at runtime sf_archlinux]$ From bsteers4 at gmail.com Sun Nov 6 21:43:12 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 6 Nov 2022 20:43:12 +0000 Subject: [Gambas-user] an observation on window placement with multiple screens In-Reply-To: References: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> Message-ID: On Sun, 6 Nov 2022 at 20:05, Bruce Steers wrote: > > > On Thu, 13 Oct 2022 at 14:17, bb wrote: > >> On Thu, 2022-10-13 at 14:42 +0200, Benoit Minisini wrote: >> > Le 13/10/2022 ? 14:03, Bruce Steers a ?crit : >> >> Secondly, and more importantly as BruceS has intimated, there is no way >> that I can control where modal popups or message windows appear. But my >> wish would be this... >> I would really like the popups to be centered in the window that called >> the popup not just in the center of the screen. For example 1) when >> using an extended screen across two "X terminals" popups appear >> centered exactly on the entire screen. In other words, half on my >> primary display and half on the extended display. This is bad enough if >> both displays are running at the same resolution and worse if they are >> not. For example 2) if I am running several instances of a project >> tiled on the display (whether using an extended display or not) the >> popup appears in the center of the screen. This gives me no indication >> of which instance the message (for instance) belongs to. It would be >> much more preferrable that it was in the center of the window that it >> belongs to. >> > > I figured out this Bruce.. > The attached project has a Form.class and an override for ShowModal() > it checks if there is a calling window and notes it to get Window.Screen > info. > > it creates a timer to move the window to the center of the correct calling > screen on opening if not on the same screen. > > the attached project can be tested by moving the main window to a screen > and hit the Message button to open a message box > > The override means it should operate on ANY ShowModal call your > application does itself or triggers. (it certainly works for Message() ) > Note: You can make it only work on Message windows (and others you select) and not All your other modal windows by inspecting the window name (Ie. Message.class uses FMessage) like so... Public Sub ShowModal() As Integer If Application.ActiveWindow And if Me.Name = "FMessage" Then $actW = Application.ActiveWindow $MoveTimer = New Timer As "MTimer" $MoveTimer.Delay = 0 $MoveTimer.Start Endif Return Super.ShowModal() End All the best. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sun Nov 6 23:29:20 2022 From: bagoneo at libero.it (gian) Date: Sun, 6 Nov 2022 23:29:20 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> Message-ID: <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> Il 06/11/22 21:34, Martin ha scritto: > Finally, all the data of the process. > > https://imgur.com/16NSW9Y > > 1) On a system with Gambas3 IDE (3.17.3) package the program. > 2) Then copy the program to a system without Gambas3 nothing at all, no > IDE no runtime nothing. > 3) Install the package and asked for the dependencies, install them and > everything is working the first time. > Detail of the output in the terminal see attachment. > > Regards. > Martin. > Hi Martin, I thank you very much for your many tests. You make me feel like a jerk since I have not tested your organizer yet. Unfortunately, yours can't be the solution because that way it doesn't work if you have the IDE installed. And it is not possible to know beforehand for sure whether you start from the IDE or from the packages, Tobias had demonstrated that in a discussion that I can't find anymore :-( I will try to reciprocate, but now I am tired and going to sleep. Greetings Gianluigi From bagoneo at libero.it Sun Nov 6 23:33:50 2022 From: bagoneo at libero.it (gian) Date: Sun, 6 Nov 2022 23:33:50 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> Message-ID: <4f8caa72-b802-952a-510f-4a8ec52a82ea@libero.it> Il 06/11/22 17:56, T Lee Davidson ha scritto: > On 11/5/22 18:37, gian via User wrote: > > Then, perhaps, simply use the Gambas IDE package creator (Project -> > Make -> Installation package)? > > ... > Why complicate things more than necessary? Why try to reinvent the > wheel? Why write scripts or shell commands to do what the package > creator already does rather well? Do we rewrite existing Gambas > Components? No, we use the tools that already exist provided they > produce an adequate solution. (I think Bruce invents excuses to write a > program or script! :-P And, I can understand that as I have found myself > doing the same thing once or thrice.) > > ... > I was referring to making an installation package as mentioned above. > Hi Lee, Look you completely misunderstood my intentions. I wanted to do a project that would work in the Gambas way, a 100% orthodox project. It is only my ignorance that led me to think that the one I had undertaken was the right way. Tomorrow I will calmly try to understand what you are suggesting and try to do it. I thank you Gianluigi From bsteers4 at gmail.com Sun Nov 6 23:50:01 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 6 Nov 2022 22:50:01 +0000 Subject: [Gambas-user] an observation on window placement with multiple screens In-Reply-To: References: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> Message-ID: On Sun, 6 Nov 2022 at 20:43, Bruce Steers wrote: > > > On Sun, 6 Nov 2022 at 20:05, Bruce Steers wrote: > >> >> >> On Thu, 13 Oct 2022 at 14:17, bb wrote: >> >>> On Thu, 2022-10-13 at 14:42 +0200, Benoit Minisini wrote: >>> > Le 13/10/2022 ? 14:03, Bruce Steers a ?crit : >>> >>> Secondly, and more importantly as BruceS has intimated, there is no way >>> that I can control where modal popups or message windows appear. But my >>> wish would be this... >>> I would really like the popups to be centered in the window that called >>> the popup not just in the center of the screen. For example 1) when >>> using an extended screen across two "X terminals" popups appear >>> centered exactly on the entire screen. In other words, half on my >>> primary display and half on the extended display. This is bad enough if >>> both displays are running at the same resolution and worse if they are >>> not. For example 2) if I am running several instances of a project >>> tiled on the display (whether using an extended display or not) the >>> popup appears in the center of the screen. This gives me no indication >>> of which instance the message (for instance) belongs to. It would be >>> much more preferrable that it was in the center of the window that it >>> belongs to. >>> >> >> I figured out this Bruce.. >> The attached project has a Form.class and an override for ShowModal() >> it checks if there is a calling window and notes it to get Window.Screen >> info. >> >> it creates a timer to move the window to the center of the correct >> calling screen on opening if not on the same screen. >> >> the attached project can be tested by moving the main window to a screen >> and hit the Message button to open a message box >> >> The override means it should operate on ANY ShowModal call your >> application does itself or triggers. (it certainly works for Message() ) >> > > Note: > You can make it only work on Message windows (and others you select) and > not All your other modal windows by inspecting the window name (Ie. > Message.class uses FMessage) > > like so... > > Public Sub ShowModal() As Integer > > If Application.ActiveWindow And if Me.Name = "FMessage" Then > $actW = Application.ActiveWindow > $MoveTimer = New Timer As "MTimer" > $MoveTimer.Delay = 0 > $MoveTimer.Start > Endif > > Return Super.ShowModal() > > End > > All the best. > > BruceS > i've edited it to have a couple of additional properies... *Form.ModalMode* select a mode can be MODAL_NORMAL, MODAL_SAMESCREEN, MODAL_WINDOWSTACK, MODAL_WINDOWCENTER MODAL_NORMAL, normal gambas mode MODAL_SAMESCREEN, move centered on the same screen as the active window MODAL_WINDOWSTACK, move to the calling windows TopLeft position MODAL_WINDOWCENTER, move centered to the active window *Form.ModalMode_Windows* As String[] to limit the windows it will operate on by checking the Forms name Eg. Form.ModalMode_Windows = ["FMessage", "FInputBox"] Attached is a simple test app to see the different modes on the message box. Maybe this will help others , or even inspire our Ben to implement something similar in the matrix :) Respects -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From bsteers4 at gmail.com Mon Nov 7 01:14:59 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 00:14:59 +0000 Subject: [Gambas-user] an observation on window placement with multiple screens In-Reply-To: References: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> Message-ID: On Sun, 6 Nov 2022 at 22:50, Bruce Steers wrote: > > > i've edited it to have a couple of additional properies... > > *Form.ModalMode* > select a mode > can be MODAL_NORMAL, MODAL_SAMESCREEN, MODAL_WINDOWSTACK, > MODAL_WINDOWCENTER > > MODAL_NORMAL, normal gambas mode > MODAL_SAMESCREEN, move centered on the same screen as the active window > MODAL_WINDOWSTACK, move to the calling windows TopLeft position > MODAL_WINDOWCENTER, move centered to the active window > > *Form.ModalMode_Windows* As String[] > to limit the windows it will operate on by checking the Forms name > Eg. > Form.ModalMode_Windows = ["FMessage", "FInputBox"] > > Attached is a simple test app to see the different modes on the message > box. > > Maybe this will help others , or even inspire our Ben to implement > something similar in the matrix :) > > Respects > Oops a bug, sorry. had to add the line "Create Static" to the top of the Form.class or it breaks things like InputBox() Tested now with inputbox and it behaves the same as message with the ModalMode options. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From mbelmonte at belmotek.net Mon Nov 7 01:46:44 2022 From: mbelmonte at belmotek.net (Martin) Date: Mon, 7 Nov 2022 01:46:44 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> Message-ID: <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> El 6/11/22 a las 23:29, gian via User escribi?: > Unfortunately, yours can't be the solution because that way it doesn't > work if you have the IDE installed. > And it is not possible to know beforehand for sure whether you start > from the IDE or from the packages ... As my wife says, relax Max. Don't worry. The "solution" works, it doesn't matter if you have the ide installed or not, what matters is that you install the package. And while we're at it, I think the best way to distribute an application is through the package, but if you still don't want to use the package it is possible that the application "knows" how it is working if from the ide or from the installed executable, like follow: '' Indicates if the program is running from the IDE or from an executable only using prawn code. Static Public Function WhereRun() As Integer Dim strProcess As String Dim intRun As Integer strProcess = File.Load("/proc" &/ CStr(Application.Id) &/ "comm") If Left(strProcess, 4) = "gbx3" Then intRun = 1 Else intRun = 0 Endif Return intRun End Regards. Martin. From t.lee.davidson at gmail.com Mon Nov 7 04:47:19 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 6 Nov 2022 22:47:19 -0500 Subject: [Gambas-user] Automatic Startup In-Reply-To: <4f8caa72-b802-952a-510f-4a8ec52a82ea@libero.it> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <76ff0143-e512-0e3a-3c99-cc2857ef3672@gmail.com> <4f8caa72-b802-952a-510f-4a8ec52a82ea@libero.it> Message-ID: <0160f001-3818-da16-34a9-3a60888df03f@gmail.com> On 11/6/22 17:33, gian via User wrote: > Look?you?completely?misunderstood?my?intentions. > I wanted to do a project that would work in the Gambas way, a 100% orthodox?project. > It is only my ignorance that led me to think that the one I had undertaken?was?the?right?way. I wondered if I had perhaps missed something or misunderstood in the midst of my confusion. I just could not understand why you, it seemed to me, were making things more complicated than they needed to be, thereby causing yourself difficulty and frustration. There can be, BTW, more than one "right" way to do a thing; especially in (personal) software design. If it gets the job done without any undue side effects, who's to say it isn't right? -- Lee From bsteers4 at gmail.com Mon Nov 7 17:22:10 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 16:22:10 +0000 Subject: [Gambas-user] an observation on window placement with multiple screens In-Reply-To: References: <4a472483a3f51577492b78241244dc36ec0342d0.camel@gmail.com> Message-ID: On Mon, 7 Nov 2022 at 00:14, Bruce Steers wrote: > > > On Sun, 6 Nov 2022 at 22:50, Bruce Steers wrote: > >> >> >> i've edited it to have a couple of additional properies... >> >> *Form.ModalMode* >> select a mode >> can be MODAL_NORMAL, MODAL_SAMESCREEN, MODAL_WINDOWSTACK, >> MODAL_WINDOWCENTER >> >> MODAL_NORMAL, normal gambas mode >> MODAL_SAMESCREEN, move centered on the same screen as the active window >> MODAL_WINDOWSTACK, move to the calling windows TopLeft position >> MODAL_WINDOWCENTER, move centered to the active window >> >> *Form.ModalMode_Windows* As String[] >> to limit the windows it will operate on by checking the Forms name >> Eg. >> Form.ModalMode_Windows = ["FMessage", "FInputBox"] >> >> Attached is a simple test app to see the different modes on the message >> box. >> >> Maybe this will help others , or even inspire our Ben to implement >> something similar in the matrix :) >> >> Respects >> > I made a few updates to this routine. I added a *Form.ModalUseForm* property so if you set it to FMain then all modal windows use the selected ModalMode on FMain and not the Active window (i figured ActiveWindow could change and not be what you want) It's kinda handy not just as a fix for opening on the same screen as your app but also nice if you have another reason for messages and other modal windows to stick to a particular window and not just be center screen. Rather than keep posting it here you can get it at the gambasone forum https://forum.gambas.one/viewtopic.php?t=1407 Benoit, would you consider something like this for us ? Having modals and other windows open on the same screen as the application is quite beneficial and to be frank, the fact it's not how it works by default is a bit of a let down. (hence my initial moaning) I tried while on holiday to have a movie playing on the cabins telly through the laptops hdmi while doing gambas on the laptop screen. it was impossible as the display config had the telly above the laptop. i wish i had know then that if i had it so the laptop was to the left of the telly then my windows would have popped up on the correct screen. swapping screens primary/secondary had no effect. Having them cling to another window is also beneficial (and btw it fixed the other Bruces issue and made him very happy) But the way I'm doing it here is clearly a tacky workaround (an awesome tacky workaround ;) ) as the window opens at it's original position for a moment then moves to the desired one. possibly you could open up a similar method as I have implemented here. To be blunt using gambas on multiple screens can be rubbish. It is only practical if the screens are a certain way round, otherwise every window that does not use Settings.Write() opens on the wrong screen. This can be said for any gambas application including the gambas IDE It would be good if all forms/windows could have an option or by default attempt to either stick to A) the active screen , B) a selected screen, C) the active window, D) a selected window. I understand that some desktops like wayland do not support it but it's be great to have the option/feature if on a system that does. Or could it be possible that I could use the above mentioned code I made but could somehow modify the modal windows position "before" it opens? Many Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Mon Nov 7 17:29:39 2022 From: bagoneo at libero.it (gian) Date: Mon, 7 Nov 2022 17:29:39 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> Message-ID: <3ba32249-c0f2-f06c-869d-126e8d7b42f1@libero.it> Il 07/11/22 01:46, Martin ha scritto: > As my wife says, relax Max. Don't worry. > > The "solution" works, it doesn't matter if you have the ide installed or > not, what matters is that you install the package... Hi Martin, I am relaxed, or at least I am no more stressed than usual :-) I tried to package the project by changing sApplicationPath and it works great. Thank you very much. Instead, the code you propose for figuring out if you are in the IDE I don't implement it. If Tobias tells me it is not done it is dogma to me. I hope you don't mind that I added you in the authors. I explained in the help the difference between starting from IDE and packaging. I also uncovered a bug in FAlarm that I fixed. Tomorrow I get my second buster plus flu shot, If you don't hear back, it's not out of discourtesy. Regards Gianluigi From gambas at servinfo.it Mon Nov 7 17:51:01 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Mon, 7 Nov 2022 17:51:01 +0100 Subject: [Gambas-user] webform questions. Message-ID: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Hi all , i'm rewriting some tools from gambas desktop (kde) to gambas webform. I've made 99% of work but I can't find a way to make two things: 1) I need to open a url in a new tab passing some parameters , I've made it works in plain html and ??? I've put it in a webhtml container that works but I would like to do it directly in a gambas webbutton. ??? The code I use in the webhtml is: ???
??? ??? ???
??? This open a new tab passing values, but I can't find a way to made the same in the _click code of a webbutton. 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? I can do it on gambas/kde but I don't find ??? a way to do it in the webtabpanel. Thank's in advance, marco. From gambas at servinfo.it Mon Nov 7 17:51:01 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Mon, 7 Nov 2022 17:51:01 +0100 Subject: [Gambas-user] webform questions. Message-ID: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Hi all , i'm rewriting some tools from gambas desktop (kde) to gambas webform. I've made 99% of work but I can't find a way to make two things: 1) I need to open a url in a new tab passing some parameters , I've made it works in plain html and ??? I've put it in a webhtml container that works but I would like to do it directly in a gambas webbutton. ??? The code I use in the webhtml is: ???
??? ??? ???
??? This open a new tab passing values, but I can't find a way to made the same in the _click code of a webbutton. 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? I can do it on gambas/kde but I don't find ??? a way to do it in the webtabpanel. Thank's in advance, marco. From bsteers4 at gmail.com Mon Nov 7 18:19:01 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 17:19:01 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 16:57, Marco Ancillotti wrote: > Hi all , > > i'm rewriting some tools from gambas desktop (kde) to gambas webform. > > I've made 99% of work but I can't find a way to make two things: > > 1) I need to open a url in a new tab passing some parameters , I've made > it works in plain html and > I've put it in a webhtml container that works but I would like to > do it directly in a gambas webbutton. > > The code I use in the webhtml is: > >
> > >
> > This open a new tab passing values, but I can't find a way to made > the same in the _click code of a webbutton. > > > 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? > I can do it on gambas/kde but I don't find > a way to do it in the webtabpanel. > > > Thank's in advance, > marco. > for question 2 WebTabPanel1.Remove(Index As Integer) to remove the tab at Index there does not seem to be a way to disable/hide BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Mon Nov 7 19:10:14 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 7 Nov 2022 13:10:14 -0500 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: <5452cd14-38e6-188b-d0c3-40d8ec2ecc78@gmail.com> On 11/7/22 11:51, Marco Ancillotti wrote: > 1) I need to open a url in a new tab passing some parameters , I've made it?works?in?plain?html?and > ??? I've put it in a webhtml container that works but I would like to do?it?directly?in?a?gambas?webbutton. > > ????The?code?I?use?in?the?webhtml?is: > > ???? > ???? > ???? > ??? > > ??? This open a new tab passing values, but I can't find a way to made the?same?in?the?_click?code?of?a?webbutton. Do you mean the Click event of WebButton? See: http://gambaswiki.org/wiki/comp/gb.web.gui/webbutton/immediate I have not worked with gb.web.gui, so I am unsure exactly how to generate javascript on the client side. Nonetheless, if I am understanding the documentation correctly, you would need to give your form a name, for example:
and then generate this javascript code in the Click event of your WebButton: document.myForm.submit() Now you may already know this, so for the sake of others: by using the GET method in your form, you are sending the "user" and "pass" values in clear text in the URL. -- Lee From bsteers4 at gmail.com Mon Nov 7 19:17:53 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 18:17:53 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 16:57, Marco Ancillotti wrote: > Hi all , > > i'm rewriting some tools from gambas desktop (kde) to gambas webform. > > > 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? > I can do it on gambas/kde but I don't find > a way to do it in the webtabpanel. > > > Thank's in advance, > marco. > Hey marco Find attached a little tester i just did. What I have done.. (and you can do similar things just as easy) * I imported the WebTabPanel.class from gb.web.gui and renamed it to WebTabPanel2.class * I then added a Tabs property that points to the WebTabPanels WebContainer[] array $aTab. Now by referencing WebTabPanel1.Tabs[0] i have control of that individual WebContainer object. I can set WebTabPanel1.Tabs[0].Enabled and it will only disable the container in tab 0 You could probably do some other things. I also exposed the $sText array so that all the tab texts can be set in one hit. WebTabPanel1.TabTexts = ["1st Tab", "2nd Tab", "3rd Tab"] In the attached project there is a 3 tab panel, you can enable/disable tab 2 and delete tab 3 Hope it helps. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From bsteers4 at gmail.com Mon Nov 7 19:45:56 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 18:45:56 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 16:57, Marco Ancillotti wrote: > Hi all , > > i'm rewriting some tools from gambas desktop (kde) to gambas webform. > > I've made 99% of work but I can't find a way to make two things: > > I can do it on gambas/kde but I don't find > a way to do it in the webtabpanel. > to be honest you just can't compare gb.gui with gb.web.gui. the gambas gb.gui (kde) uses quite advanced and configurable toolkits on the linux platforms to make GUIs gb.web.gui is having to do what it can with available HTML/Javascript/css code because it is not your gui toolkits doing things but just your web browser. So it is no way near as advanced or comparable to the gui toolkits. also it is not hugely used so it's a little under-developed, the WebTabPanel for example i would think could do with being able to enable/disable tabs and set tab text without having to cycle through the indexes. but I guess there's never been any call for it. So i'm just saying you cannot compare gb.web.gui to gb.gui, they are very different and you will find gb.web.gui quite limited in some places when it comes to converting complex gb.gui projects and you may need to find some workarounds to fit the html limitations. But as i just showed you with the WebTabPanel2.class it's pretty easy to modify components to suit your more complex needs. But now don't let that stop you coming here to the mailing list and saying things like "hey, gb.web.gui needs to do this.." ! A suggestion for improvement is always a suggestion worth making :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Nov 7 20:10:53 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 7 Nov 2022 20:10:53 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: Le 07/11/2022 ? 17:51, Marco Ancillotti a ?crit?: > Hi all , > > i'm rewriting some tools from gambas desktop (kde) to gambas webform. > > I've made 99% of work but I can't find a way to make two things: > > 1) I need to open a url in a new tab passing some parameters , I've made > it works in plain html and > ??? I've put it in a webhtml container that works but I would like to > do it directly in a gambas webbutton. > > ??? The code I use in the webhtml is: > > ??? > ??? > ??? > ??? > > ??? This open a new tab passing values, but I can't find a way to made > the same in the _click code of a webbutton. > To run some javascript into the browser from an event handler, use the WebForm.Exec() method. > > 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? > I can do it on gambas/kde but I don't find > ??? a way to do it in the webtabpanel. > There is no API for that at the moment. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 7 20:30:04 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 19:30:04 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 19:11, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 07/11/2022 ? 17:51, Marco Ancillotti a ?crit : > > Hi all , > > > > i'm rewriting some tools from gambas desktop (kde) to gambas webform. > > > > I've made 99% of work but I can't find a way to make two things: > > > > 1) I need to open a url in a new tab passing some parameters , I've made > > it works in plain html and > > I've put it in a webhtml container that works but I would like to > > do it directly in a gambas webbutton. > > > > The code I use in the webhtml is: > > > >
> > > > > >
> > > > This open a new tab passing values, but I can't find a way to made > > the same in the _click code of a webbutton. > > > > To run some javascript into the browser from an event handler, use the > WebForm.Exec() method. > > > > > 2) I have a webtabpanel , is there a way to delete/disable/hide a tab ? > > I can do it on gambas/kde but I don't find > > a way to do it in the webtabpanel. > > > > There is no API for that at the moment. > > Regards, > > -- > Beno?t Minisini. > what about just adding a simple _get() to it Ben? Public Function _get(Index As Integer) As WebContainer Return $aTab[Index] End Then could use WebTabPanel[0].Enabled or any individual WebContainer you wanted. Or would you prefer a hidden _WebTabPanelContainer.class to only permit certain actions? (i've done that too, has Enabled and Text only) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Nov 7 20:35:34 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 7 Nov 2022 20:35:34 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: Le 07/11/2022 ? 20:30, Bruce Steers a ?crit?: > > what about just adding a simple _get() to it Ben? > > Public Function _get(Index As Integer) As WebContainer > > ? Return $aTab[Index] > > End > > Then could use WebTabPanel[0].Enabled or any individual WebContainer you > wanted. > > Or would you prefer a hidden _WebTabPanelContainer.class to only permit > certain actions? > (i've done that too, has Enabled and Text only) > > Respects > BruceS > It's more complex than just accessing the underlying containers, if we want to hide tabs. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 7 21:53:43 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 20:53:43 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 19:36, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 07/11/2022 ? 20:30, Bruce Steers a ?crit : > > > > what about just adding a simple _get() to it Ben? > > > > Public Function _get(Index As Integer) As WebContainer > > > > Return $aTab[Index] > > > > End > > > > Then could use WebTabPanel[0].Enabled or any individual WebContainer you > > wanted. > > > > Or would you prefer a hidden _WebTabPanelContainer.class to only permit > > certain actions? > > (i've done that too, has Enabled and Text only) > > > > Respects > > BruceS > > > > It's more complex than just accessing the underlying containers, if we > want to hide tabs. > > Regards, > Yes i was thinking about the "hide" that did not seem so simple. at least being able to access the containers we can disable/enable and add/remove contents (plus other options) Are we likely to break things accessing the underlying containers? I can hide tabs by setting the Enabled property and modifying the _Render() event (i tried with the .Visible property but it failed) So find attached here Marco a WebTabPanel2.class that will hide tabs by setting their enabled property (sadly not Visible property) Do something like this to toggle hidden state.. WebTabPanel1[1].Enabled = Not WebTabPanel1[1].Enabled WebTabPanel1.Refresh Well wishes BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From bsteers4 at gmail.com Mon Nov 7 22:33:03 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 7 Nov 2022 21:33:03 +0000 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: On Mon, 7 Nov 2022 at 20:53, Bruce Steers wrote: > > > On Mon, 7 Nov 2022 at 19:36, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 07/11/2022 ? 20:30, Bruce Steers a ?crit : >> > >> > what about just adding a simple _get() to it Ben? >> > >> > Public Function _get(Index As Integer) As WebContainer >> > >> > Return $aTab[Index] >> > >> > End >> > >> > Then could use WebTabPanel[0].Enabled or any individual WebContainer >> you >> > wanted. >> > >> > Or would you prefer a hidden _WebTabPanelContainer.class to only permit >> > certain actions? >> > (i've done that too, has Enabled and Text only) >> > >> > Respects >> > BruceS >> > >> >> It's more complex than just accessing the underlying containers, if we >> want to hide tabs. >> >> Regards, >> > > Yes i was thinking about the "hide" that did not seem so simple. > at least being able to access the containers we can disable/enable and > add/remove contents (plus other options) > > Are we likely to break things accessing the underlying containers? > > I can hide tabs by setting the Enabled property and modifying the > _Render() event > (i tried with the .Visible property but it failed) > > So find attached here Marco a WebTabPanel2.class that will hide tabs by > setting their enabled property (sadly not Visible property) > Do something like this to toggle hidden state.. > > WebTabPanel1[1].Enabled = Not WebTabPanel1[1].Enabled > WebTabPanel1.Refresh > Dang, Almost perfect, sorry, that glitches if you are on tab 2 and remove tab 2 the contents do not refresh, so fix by changing the index Public Sub HideTab2() ' toggle Tab2 (indexed at 1) Dim bEnable As Boolean = Not WebTabPanel1[1].Enabled WebTabPanel1[1].Enabled = bEnable If WebTabPanel1.Index = 1 And If Not bEnable Then WebTabPanel1.Index = 0 WebTabPanel1.Refresh End Note, you can set index to a hidden tab and it will show it's contents so avoid doing that. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Nov 8 14:37:37 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 8 Nov 2022 13:37:37 +0000 Subject: [Gambas-user] Custom ShowModal() Is it good enough? Message-ID: Hi all. Would the following code be an acceptable ShowModal() override/replacement in a Form.class for a pseudo modal window? This overrides modal window positioning center screen, with properties StickyModals and StickyForms it forces modals or forms to center on active window if required and if a forms X,Y has not been explicitly set. My doubt is in the way i am making ShowModal() open a non-modal window but in a modal mode (i think) Can someone look at the ShowModal() method I've used and let me know if it's missing anything vital that a modal window requires? Attached is a test application that shows how it works, you can enable/disable the properties and test Message, Modal, Form opening. Thanks in advance BruceS ' Gambas class file Create Static Export Private $bIsModal As Boolean Private $iModalValue As Integer '' Make all modal windows center on the active window Static Property StickyModals As Boolean Use $bStickyModals '' Make all form windows without X,Y set center on the active window Static Property StickyForm As Boolean Use $bStickyForm Public Sub Show() Dim XY As Integer = -16 ' gtk uses -16 and a non set position value, qt uses 0 If Component.IsLoaded("gb.qt4") Or If Component.IsLoaded("gb.qt5") Then xy = 0 If $bStickyForm And If Me.X = xy And If Me.Y = xy And If Application.ActiveWindow Then MoveMe Super.Show End Private Sub MoveMe() With Application.ActiveWindow Me.Move(.X + (.W / 2) - (Me.W / 2), .Y + (.H / 2) - (Me.H / 2)) End With End Public Sub ShowModal() As Integer If $bStickyModals And If Application.ActiveWindow Then Dim hWin As Window = Application.ActiveWindow Dim bEnabled As Boolean = hWin.Enabled $bIsModal = True MoveMe hWin.Enabled = False Me.Utility = True Me.Show While Object.IsValid(Me) Wait 0.1 Wend hWin.Enabled = bEnabled Return $iModalValue Else Return Super.ShowModal() Endif End Public Sub Close(Optional Value As Integer) As Boolean If $bIsModal Then $iModalValue = Value Endif Super.Close(Value) End -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 f7sTbNAAeAAA From mbelmonte at belmotek.net Tue Nov 8 15:07:24 2022 From: mbelmonte at belmotek.net (Martin) Date: Tue, 8 Nov 2022 15:07:24 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: <3ba32249-c0f2-f06c-869d-126e8d7b42f1@libero.it> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> <3ba32249-c0f2-f06c-869d-126e8d7b42f1@libero.it> Message-ID: <07ee0064-5704-e51e-1a71-f3692b52d173@belmotek.net> El 7/11/22 a las 17:29, gian via User escribi?: > I tried to package the project by changing sApplicationPath and it works > great. > Instead, the code you propose for figuring out if you are in the IDE I > don't implement it. > If Tobias tells me it is not done it is dogma to me. > I hope you don't mind that I added you in the authors. > I explained in the help the difference between starting from IDE and > packaging. > > I also uncovered a bug in FAlarm that I fixed. > > Tomorrow I get my second buster plus flu shot, If you don't hear back, > it's not out of discourtesy. I'm glad it works with the path change. About the method to know if it runs in the IDE or not, why is it not done, what is the reason? Regarding being on the authors list, it is not necessary, but thanks for the courtesy, you are very kind. I am interested in the method to make something autostart from gambas, since I have a program called Giskard which is to mount network directories using sshfs but to make it start you just have to add it by hand in "autostart". I hope all goes well with the vaccines. Best regards. Martin. From t.lee.davidson at gmail.com Tue Nov 8 16:07:00 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 8 Nov 2022 10:07:00 -0500 Subject: [Gambas-user] Automatic Startup In-Reply-To: <07ee0064-5704-e51e-1a71-f3692b52d173@belmotek.net> References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> <3ba32249-c0f2-f06c-869d-126e8d7b42f1@libero.it> <07ee0064-5704-e51e-1a71-f3692b52d173@belmotek.net> Message-ID: On 11/8/22 09:07, Martin wrote: > I am interested in the method to make something autostart from gambas, since I have a program called Giskard which is to mount > network directories using sshfs but to make it start you just have to add it by hand?in?"autostart". Just FYI, KDE desktop settings configuration utility (called System Settings for some reason) has, in "Startup and Shutdown", an Autostart tab which allows for programs and scripts to be added (under the hood to "autostart" and "autostart-scripts", respectively). Perhaps other desktops have a similar facility. -- Lee From mbelmonte at belmotek.net Tue Nov 8 16:19:16 2022 From: mbelmonte at belmotek.net (Martin) Date: Tue, 8 Nov 2022 16:19:16 +0100 Subject: [Gambas-user] Automatic Startup In-Reply-To: References: <1334489251.3764.1667586022667.JavaMail.zimbra@westwoodsvcs.com> <1667624546.140873924@f6.my.com> <5e21ce02-16f6-2f08-06e8-aa82ab6d9ecf@belmotek.net> <1db7b06d-3fad-ce10-c149-44e29e6a2b60@belmotek.net> <83e06769-e1c1-07c3-f78b-4bdef19ff579@belmotek.net> <358b66bd-3140-c0d6-8f3f-5ed219ebaae7@libero.it> <1a08d748-f0c3-f59c-a13c-bcad4b058743@belmotek.net> <3ba32249-c0f2-f06c-869d-126e8d7b42f1@libero.it> <07ee0064-5704-e51e-1a71-f3692b52d173@belmotek.net> Message-ID: El 8/11/22 a las 16:07, T Lee Davidson escribi?: > Just FYI, KDE desktop settings configuration utility (called System > Settings for some reason) has, in "Startup and Shutdown", an Autostart > tab which allows for programs and scripts to be added (under the hood to > "autostart" and "autostart-scripts", respectively). Perhaps other > desktops have a similar facility. Yes, of course there are tools in all serius desktops, indeed I use one of this en XFCE. From bagoneo at libero.it Tue Nov 8 17:13:23 2022 From: bagoneo at libero.it (gian) Date: Tue, 8 Nov 2022 17:13:23 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. Message-ID: Hi Martin, I tried to get photo-organizer-main to work but I can't :-( Here's what I did: I installed libexif-dev I connected my phone with the USB cable to transfer the photos in pictures I created two folders (organizer and organizer2) to tell the program where to download. i downloaded photo-organizer-main version 0.0.6 on startup it gives me division by zero error on line 109 of FMain (iRemaining = (Config.PicturesQty) / Config.PicturesRatio) then i downloaded version 0.0.5 a window pops up I click on the Directory button (there is a memory drawn) and navigate to the folder /run/user/1000/gvfs/mtp:host=...DCIM/Camera where I see all the pictures but I can't select anything. What am I doing wrong? Regards Gianluigi From gambas at servinfo.it Tue Nov 8 18:03:14 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Tue, 8 Nov 2022 18:03:14 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: Il 07/11/22 17:51, Marco Ancillotti ha scritto: Thank's to all for the answers ! * For the first question if I understand well I have to: - Put a button and set it immediate = true - Convert my: /
// //
/ /to Javascript./ - Create a button _click event where i run webform.exec() is it right ? * For the Second question I can adapt my code to use WebTabPanel.Remove(Index As Integer) , so I'm ok with that. * Another little question , how can I open a form on a new tab ? ? I can have the need to use somethink like: /public sub button_click()// //???? dim pluto as new myformxxx// //???? pluto.data1 = "blabla"// //???? pluto.data2 = "popipopi"// //???? pluto.show() '<- in a new tab// //? end/ ? and open multiple form on multiple tab with different data. is it possible ? Thank's a lot , I've moved a lot of little programs to web and they work really well. -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 8 18:41:16 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 8 Nov 2022 18:41:16 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: Le 08/11/2022 ? 18:03, Marco Ancillotti a ?crit?: > Il 07/11/22 17:51, Marco Ancillotti ha scritto: > > Thank's to all for the answers ! > > > * For the first question if I understand well I have to: > > - Put a button and set it immediate = true > - Convert my: > > /
type="hidden" name="user" value="pippo"> // > //
/ > > /to Javascript./ > > - Create a button _click event where i run webform.exec( as string>) > > is it right ? Settings Immediate is not needed. It us faster in that case, as you avoid one request with the server, but then you can't run any other code (for example if you want to do some tests before opening the link). > > > * For the Second question I can adapt my code to use > WebTabPanel.Remove(Index As Integer) , > so I'm ok with that. > > > * Another little question , how can I open a form on a new tab ? > ? I can have the need to use somethink like: > > /public sub button_click()// > //???? dim pluto as new myformxxx// > //???? pluto.data1 = "blabla"// > //???? pluto.data2 = "popipopi"// > //???? pluto.show() '<- in a new tab// > //? end/ > > ? and open multiple form on multiple tab with different data. > > is it possible ? No. With 'gb.web.gui' your application has only one page. Every other form is opened in pseudo-windows (made with HTML) inside the unique page. 'gb.web.gui' mimics the desktop way of creating UI. Regards, -- Beno?t Minisini. From gambas at servinfo.it Tue Nov 8 18:52:43 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Tue, 8 Nov 2022 18:52:43 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> Message-ID: <12b6a2f7-c093-5be0-39fe-6638772db2a9@servinfo.it> Il 08/11/22 18:41, Benoit Minisini ha scritto: > > Settings Immediate is not needed. It us faster in that case, as you > avoid one request with the server, but then you can't run any other > code (for example if you want to do some tests before opening the link). > Ok , perfect , I will try. > No. With 'gb.web.gui' your application has only one page. Every other > form is opened in pseudo-windows (made with HTML) inside the unique page. > > 'gb.web.gui' mimics the desktop way of creating UI. Ok , but I can create another app , put it in another url and call it with js as the first question right ? From benoit.minisini at gambas-basic.org Tue Nov 8 19:00:51 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 8 Nov 2022 19:00:51 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: <12b6a2f7-c093-5be0-39fe-6638772db2a9@servinfo.it> References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> <12b6a2f7-c093-5be0-39fe-6638772db2a9@servinfo.it> Message-ID: Le 08/11/2022 ? 18:52, Marco Ancillotti a ?crit?: > Il 08/11/22 18:41, Benoit Minisini ha scritto: >> >> Settings Immediate is not needed. It us faster in that case, as you >> avoid one request with the server, but then you can't run any other >> code (for example if you want to do some tests before opening the link). >> > Ok , perfect , I will try. > > >> No. With 'gb.web.gui' your application has only one page. Every other >> form is opened in pseudo-windows (made with HTML) inside the unique page. >> >> 'gb.web.gui' mimics the desktop way of creating UI. > > Ok , but I can create another app , put it in another url and call it > with js as the first question right ? > Provided that, if it is another application made with 'gb.web.gui', it does not have the same name. It's how it works at the moment, but it will change. The idea is that you can't run twice the same application in the same browser. Regards, -- Beno?t Minisini. From mbelmonte at belmotek.net Tue Nov 8 19:09:02 2022 From: mbelmonte at belmotek.net (Martin) Date: Tue, 8 Nov 2022 19:09:02 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: Message-ID: El 8/11/22 a las 17:13, gian via User escribi?: > I installed libexif-dev > I connected my phone with the USB cable to transfer the photos > in pictures I created two folders (organizer and organizer2) to tell the > program where to download. > i downloaded photo-organizer-main version 0.0.6 > on startup it gives me division by zero error on line 109 of FMain > (iRemaining = (Config.PicturesQty) / Config.PicturesRatio) Hello Gianluigi. You haven't done anything wrong I guess. Maybe the errors are because I added a method of scanning photos from the existing photo directory and that division by zero error is from that change, I will correct it and upload the new version. I am also in the process of adding support for a sqlite database. The intention is to have everything tidy and allow more refined searches. The installation of the libexif-dev library is correct. Attention: Please work with a copy of the photos from the phone or camera, it's a TESTING program and there can be errors. Thanks for the feedback. Martin. From gambas at servinfo.it Tue Nov 8 19:23:10 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Tue, 8 Nov 2022 19:23:10 +0100 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> <12b6a2f7-c093-5be0-39fe-6638772db2a9@servinfo.it> Message-ID: Il 08/11/22 19:00, Benoit Minisini ha scritto: > > Provided that, if it is another application made with 'gb.web.gui', it > does not have the same name. > > It's how it works at the moment, but it will change. The idea is that > you can't run twice the same application in the same browser. > Is it possible when it will change to add a flag to permit multiple same application on the same browser ? From olivier.cruilles at yahoo.fr Tue Nov 8 20:22:43 2022 From: olivier.cruilles at yahoo.fr (Linus) Date: Tue, 8 Nov 2022 14:22:43 -0500 Subject: [Gambas-user] webform questions. In-Reply-To: References: <855584d6-8e93-b7dc-a634-4219bb44bc77@servinfo.it> <12b6a2f7-c093-5be0-39fe-6638772db2a9@servinfo.it> Message-ID: Hello, Yes you can run multiple instance of the same web application, you just need to change the port of each instance like that: GB_HTTP_PORT=9080 gbr3 -H http://localhost:9081 Olivier > Le 8 nov. 2022 ? 13:23, Marco Ancillotti a ?crit : > > Il 08/11/22 19:00, Benoit Minisini ha scritto: >> >> Provided that, if it is another application made with 'gb.web.gui', it does not have the same name. >> >> It's how it works at the moment, but it will change. The idea is that you can't run twice the same application in the same browser. >> > Is it possible when it will change to add a flag to permit multiple same application on the same browser ? > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Tue Nov 8 20:56:57 2022 From: mbelmonte at belmotek.net (Martin) Date: Tue, 8 Nov 2022 20:56:57 +0100 Subject: [Gambas-user] Beta testing - Photo organizer. In-Reply-To: References: Message-ID: <72253a34-0b52-3fde-4eb2-567e781d137d@belmotek.net> Is there the version Bond :-) https://gitlab.com/belmotek/photo-organizer Best Regards. Martin. From tercoide at hotmail.com Wed Nov 9 16:57:57 2022 From: tercoide at hotmail.com (martin p cristia) Date: Wed, 9 Nov 2022 12:57:57 -0300 Subject: [Gambas-user] Little bug in Format$ In-Reply-To: References: Message-ID: Format(123456789,"0.000000E+000") = "1,234568E+008" wich is correct, but Format(0.000123,"0.000000E+000") = "1,230000E0-4" wich leads to bad re-conversion with CSingle() it shoud be "1,230000E-004" -- Saludos Ing. Martin P Cristia From hans at gambas-buch.de Wed Nov 9 18:43:22 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Wed, 9 Nov 2022 18:43:22 +0100 Subject: [Gambas-user] CFloat() and CDate() Message-ID: Hello, why do the following two lines (1) Print CFloat(Date("01/01/-4801 01:00:00")) (2) Print CFloat(Date("01/01/-4801 00:00:00")) the *same* real number 0.958333333333333 and Print CDate(0.95833333333) 23:00:00 ? With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 9 19:43:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 9 Nov 2022 19:43:42 +0100 Subject: [Gambas-user] CFloat() and CDate() In-Reply-To: References: Message-ID: <013b7106-12d7-e7a8-8bcd-cbfee155777a@gambas-basic.org> Le 09/11/2022 ? 18:43, Hans Lehmann a ?crit?: > Hello, > > why do the following two lines > > (1) Print CFloat(Date("01/01/-4801 01:00:00")) > (2) Print CFloat(Date("01/01/-4801 00:00:00")) > > the *same* real number 0.958333333333333 > Because Date() returns the date part without the time part (and converts your string into a Date with CDate automatically). > and > > Print CDate(0.95833333333) > > 23:00:00 > > ? Because Date() is for localized dates, which are a string converted automatically with CDate() is not. As soon as you mix date functions using localization and date functions not using localization without knowing exactly what you are doing, you get problems. In that specific case, your date is '31/12/-4802 23:00:00 GMT', and as the minimum date is -4801, you get a time only. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Wed Nov 9 21:20:11 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 9 Nov 2022 20:20:11 +0000 Subject: [Gambas-user] Getting the launcher name if no Env["GIO_LAUNCHED_DESKTOP_FILE"] Message-ID: I wanted a way to find the name of the launcher that runs my program. i found this Print Env["GIO_LAUNCHED_DESKTOP_FILE"] prints /usr/local/share/applications/gambas3.desktop just what i wanted but that Env is only filled if i run the launcher from the MATE Desktop or system menu but it's not if i run from the mate-panel icon Has anyone looked at another way to get the launchers name? I thought maybe backtracing PIDs or using Apllication.ParentHandle or something. Or the launcher is just mate-panel and i cannot get any info about the .desktop file. Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Nov 10 01:06:16 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 10 Nov 2022 00:06:16 +0000 Subject: [Gambas-user] With (can we use it?) Message-ID: Can we use With or is it a private internal only thing reserved for specific commands? If it's private could it's usage be made public with a way to retrieve the With data? Thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Nov 10 01:15:55 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 10 Nov 2022 10:45:55 +1030 Subject: [Gambas-user] With (can we use it?) In-Reply-To: References: Message-ID: <04660731-731f-9462-e68a-dc3020a2e9d1@gmail.com> On 10/11/22 10:36 am, Bruce Steers wrote: > Can we use With or is it a private internal only thing reserved for > specific commands? > > If it's private could it's usage be made public with a way to retrieve > the With data? > > Thanks > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- You sure can use it anywhere With MyClass ??? .Ahab=12 End With or With MyClass.Subclass With Mylass._hiddensubclass ' !! very handy With MyClass.Subclass.Subclass2.... I think that the only things that don't work / aren't supported are With MyClass!someproperty With MyClass["someproperty"] Go at it! It's saved about 3mm of my fingers over the years. b p.s. With within a With isn't a good idea -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Nov 10 01:29:25 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 10 Nov 2022 00:29:25 +0000 Subject: [Gambas-user] With (can we use it?) In-Reply-To: <04660731-731f-9462-e68a-dc3020a2e9d1@gmail.com> References: <04660731-731f-9462-e68a-dc3020a2e9d1@gmail.com> Message-ID: On Thu, 10 Nov 2022, 00:17 BB, wrote: > > On 10/11/22 10:36 am, Bruce Steers wrote: > > Can we use With or is it a private internal only thing reserved for > specific commands? > > If it's private could it's usage be made public with a way to retrieve the > With data? > > Thanks > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > You sure can use it anywhere > > > With MyClass > > .Ahab=12 > > End With > > > or > > With MyClass.Subclass > With Mylass._hiddensubclass ' !! very handy > With MyClass.Subclass.Subclass2.... > > > I think that the only things that don't work / aren't supported are > > With MyClass!someproperty > With MyClass["someproperty"] > > > Go at it! It's saved about 3mm of my fingers over the years. > > b > > p.s. With within a With isn't a good idea > > Aah sorry I meant with a function call. Like Shell "command" With aEnvArray Funny as soon as I posted this I wondered if I even need it now as I think I can use an optional arg instead ? Thanks anyway ? Respects BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Nov 10 10:12:03 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 10 Nov 2022 19:42:03 +1030 Subject: [Gambas-user] With (can we use it?) In-Reply-To: References: <04660731-731f-9462-e68a-dc3020a2e9d1@gmail.com> Message-ID: <4350af12-ef9e-d4fc-1c5d-57007c34b030@gmail.com> On 10/11/22 10:59 am, Bruce Steers wrote: > > Aah sorry I meant with a function call. > > Like > Shell "command" With aEnvArray > > Funny as soon as I posted this I wondered if I even need it now as I > think I can use an optional arg instead ? > > Thanks anyway ? > Respects > BruceS > I didn't think you could specify an environment for a Shell command? From bsteers4 at gmail.com Thu Nov 10 13:42:54 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 10 Nov 2022 12:42:54 +0000 Subject: [Gambas-user] With (can we use it?) In-Reply-To: <4350af12-ef9e-d4fc-1c5d-57007c34b030@gmail.com> References: <04660731-731f-9462-e68a-dc3020a2e9d1@gmail.com> <4350af12-ef9e-d4fc-1c5d-57007c34b030@gmail.com> Message-ID: On Thu, 10 Nov 2022 at 09:13, BB wrote: > > On 10/11/22 10:59 am, Bruce Steers wrote: > > > > Aah sorry I meant with a function call. > > > > Like > > Shell "command" With aEnvArray > > > > Funny as soon as I posted this I wondered if I even need it now as I > > think I can use an optional arg instead ? > > > > Thanks anyway ? > > Respects > > BruceS > > > I didn't think you could specify an environment for a Shell command? > Indeed you can :) I thought it would make perfect sense to use it with something like Form.Show() Ie.. Form1.Show With Screen[1] But then it occurred to me if i'm overriding the Show() method then i can probably just put the arg inside the brackets. Using With made grammatical sense , seemed like a good idea at the time. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at servinfo.it Thu Nov 10 17:54:54 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Thu, 10 Nov 2022 17:54:54 +0100 Subject: [Gambas-user] New problem on webform. Message-ID: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> Hi all, my project made with gb.web.form is growing up. Now I have update to gambas 3.17.3 (ubuntu ppa) and every time I open a secondo form with .showmodal() browser hang , I made some debugging and found that error on the browser: lib:0.0.59.js:404 Uncaught RangeError: Maximum call stack size exceeded ??? at Object.onFocus (lib:0.0.59.js:404:20) ??? at Object.setFocus (lib:0.0.59.js:470:10) ??? ... ??? at Object.setFocus (lib:0.0.59.js:470:10) It continue a lot speaking of lines , I download the generated .js and I found that every line have a: gw.setFocus(gw.active); or a gw.onFocus(); Is this a bug ? From gambas at servinfo.it Thu Nov 10 17:54:54 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Thu, 10 Nov 2022 17:54:54 +0100 Subject: [Gambas-user] New problem on webform. Message-ID: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> Hi all, my project made with gb.web.form is growing up. Now I have update to gambas 3.17.3 (ubuntu ppa) and every time I open a secondo form with .showmodal() browser hang , I made some debugging and found that error on the browser: lib:0.0.59.js:404 Uncaught RangeError: Maximum call stack size exceeded ??? at Object.onFocus (lib:0.0.59.js:404:20) ??? at Object.setFocus (lib:0.0.59.js:470:10) ??? ... ??? at Object.setFocus (lib:0.0.59.js:470:10) It continue a lot speaking of lines , I download the generated .js and I found that every line have a: gw.setFocus(gw.active); or a gw.onFocus(); Is this a bug ? From benoit.minisini at gambas-basic.org Thu Nov 10 19:25:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 10 Nov 2022 19:25:42 +0100 Subject: [Gambas-user] New problem on webform. In-Reply-To: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> References: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> Message-ID: <1e776099-cb38-b2d5-96d4-a594d4ffb93b@gambas-basic.org> Le 10/11/2022 ? 17:54, Marco Ancillotti a ?crit?: > Hi all, > > my project made with gb.web.form is growing up. > > Now I have update to gambas 3.17.3 (ubuntu ppa) and every time I open a > secondo form with .showmodal() > browser hang , I made some debugging and found that error on the browser: > > lib:0.0.59.js:404 Uncaught RangeError: Maximum call stack size exceeded > ??? at Object.onFocus (lib:0.0.59.js:404:20) > ??? at Object.setFocus (lib:0.0.59.js:470:10) > ??? ... > ??? at Object.setFocus (lib:0.0.59.js:470:10) > > It continue a lot speaking of lines , I download the generated .js and I > found that every line have a: > gw.setFocus(gw.active); or a gw.onFocus(); > > Is this a bug ? > 'gb.web.form' is deprecated. You should port your project to 'gb.web.gui' instead. I can help you for that. Regards, -- Beno?t Minisini. From gambas at servinfo.it Thu Nov 10 19:40:16 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Thu, 10 Nov 2022 19:40:16 +0100 Subject: [Gambas-user] New problem on webform. In-Reply-To: <1e776099-cb38-b2d5-96d4-a594d4ffb93b@gambas-basic.org> References: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> <1e776099-cb38-b2d5-96d4-a594d4ffb93b@gambas-basic.org> Message-ID: <7a6891ca-640d-5db8-35eb-82065b4e3284@servinfo.it> Il 10/11/22 19:25, Benoit Minisini ha scritto: > > 'gb.web.form' is deprecated. You should port your project to > 'gb.web.gui' instead. I can help you for that. > My Fault , I'm already using gb.web.gui , I simply write it wrong. From benoit.minisini at gambas-basic.org Fri Nov 11 07:40:20 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 11 Nov 2022 07:40:20 +0100 Subject: [Gambas-user] New problem on webform. In-Reply-To: <7a6891ca-640d-5db8-35eb-82065b4e3284@servinfo.it> References: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> <1e776099-cb38-b2d5-96d4-a594d4ffb93b@gambas-basic.org> <7a6891ca-640d-5db8-35eb-82065b4e3284@servinfo.it> Message-ID: <01839c0a-4705-7578-0002-6874e2ec7e01@gambas-basic.org> Le 10/11/2022 ? 19:40, Marco Ancillotti a ?crit?: > Il 10/11/22 19:25, Benoit Minisini ha scritto: >> >> 'gb.web.form' is deprecated. You should port your project to >> 'gb.web.gui' instead. I can help you for that. >> > My Fault , I'm already using gb.web.gui , I simply write it wrong. > Ah, OK. Then I think you should try the development version where the bug must have been fixed. Regards, -- Beno?t Minisini. From gambas at servinfo.it Fri Nov 11 10:22:05 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Fri, 11 Nov 2022 10:22:05 +0100 Subject: [Gambas-user] New problem on webform. In-Reply-To: <01839c0a-4705-7578-0002-6874e2ec7e01@gambas-basic.org> References: <37328e6d-bdb1-9aa2-f1ba-a5fc588799ce@servinfo.it> <1e776099-cb38-b2d5-96d4-a594d4ffb93b@gambas-basic.org> <7a6891ca-640d-5db8-35eb-82065b4e3284@servinfo.it> <01839c0a-4705-7578-0002-6874e2ec7e01@gambas-basic.org> Message-ID: Il 11/11/22 07:40, Benoit Minisini ha scritto: > > Ah, OK. Then I think you should try the development version where the > bug must have been fixed. > ok , version 3.17.90 works ! Thank's. From brian at westwoodsvcs.com Fri Nov 11 18:08:17 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 11 Nov 2022 09:08:17 -0800 (PST) Subject: [Gambas-user] Quick way to see Which Gambas components and Libraries are Insalled and available Message-ID: <267286367.5896.1668186497075.JavaMail.zimbra@westwoodsvcs.com> Scripter(gbs3) supports an interface to list all the components and libraries available to your application through standard environment variable paths. There are a couple of examples using this at the end. Maybe this is usefull to some. So if Scripter is installed on your system the following will display all the components installed and available to be used by a Gambas3 application. $ gbs3 -l component Will list all installed and available components on the system $ gbs3 -l library Will list all installed and available Gambas3 libraries on the system with the path that locates them. I hope this helps a few people. Example Component: 11/11/2022 08:00:00 > gbs3 -l component gb gb.args gb.cairo gb.chart gb.clipper gb.complex gb.compress gb.compress.bzlib2 gb.compress.zlib gb.compress.zstd gb.crypt gb.data gb.db gb.db.form gb.db.mysql gb.db.odbc gb.db.postgresql gb.db.sqlite2 gb.db.sqlite3 gb.dbus gb.dbus.trayicon gb.debug gb.desktop gb.desktop.x11 gb.eval gb.eval.highlight gb.form gb.form.dialog gb.form.editor gb.form.htmlview gb.form.mdi gb.form.print gb.form.stock gb.form.terminal gb.geom gb.gmp gb.gsl gb.gtk gb.gtk.opengl gb.gtk3 gb.gtk3.opengl gb.gtk3.wayland gb.gtk3.webview gb.gtk3.x11 gb.gui gb.gui.base gb.gui.opengl gb.gui.qt gb.gui.qt.opengl gb.gui.qt.webkit gb.gui.trayicon gb.gui.webview gb.httpd gb.image gb.image.effect gb.image.imlib gb.image.io gb.inotify gb.jit gb.libxml gb.logging gb.map gb.markdown gb.media gb.media.form gb.memcached gb.mime gb.mysql gb.ncurses gb.net gb.net.curl gb.net.pop3 gb.net.smtp gb.openal gb.opengl gb.opengl.glsl gb.opengl.glu gb.opengl.sge gb.openssl gb.option gb.pcre gb.pdf gb.poppler gb.qt5 gb.qt5.ext gb.qt5.opengl gb.qt5.wayland gb.qt5.webkit gb.qt5.webview gb.qt5.x11 gb.report gb.report2 gb.scanner gb.scripter gb.sdl gb.sdl.sound gb.sdl2 gb.sdl2.audio gb.settings gb.signal gb.term gb.term.form gb.terminfo gb.test gb.util gb.util.web gb.v4l gb.vb gb.web gb.web.feed gb.web.form gb.web.gui gb.xml gb.xml.html gb.xml.rpc gb.xml.xslt Example Libaray 11/11/2022 08:00:00 > gbs3 -l library /usr/lib/gambas3/biz1/liba:1.1.0.gambas /usr/lib/gambas3/biz1/liba:1.2.0.gambas /usr/lib/gambas3/biz1/liba:2.1.0.gambas /usr/lib/gambas3/biz1/liba:3.1.3.gambas /usr/lib/gambas3/gb/gb.scripter:3.16.gambas "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Nov 11 18:17:16 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 12 Nov 2022 03:47:16 +1030 Subject: [Gambas-user] Quick way to see Which Gambas components and Libraries are Insalled and available In-Reply-To: <267286367.5896.1668186497075.JavaMail.zimbra@westwoodsvcs.com> References: <267286367.5896.1668186497075.JavaMail.zimbra@westwoodsvcs.com> Message-ID: On 12/11/22 3:38 am, Brian G wrote: > Scripter(gbs3) supports an interface to list all the components and > libraries available to your application through standard environment > variable paths. There are a couple of examples using this at the end. > > Maybe this is usefull to some. > > So if Scripter is installed on your system? the following will display > all the components installed and available to be used by a Gambas3 > application. > > $ gbs3 -l component > > Will list all installed and available components on the system > > $ gbs3 -l library > > Will list all installed and available Gambas3 libraries on the system > with the path that locates them. > > I hope this helps a few people. > > 8< > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > That needs to show up in the Args help i.e. gbs3 -h b -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Fri Nov 11 18:29:18 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 11 Nov 2022 18:29:18 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: <5634f16a-4402-2bca-c13e-b3a298de7e38@freenet.de> Hi Beno?t From my humble point of view the documentation of CDate on http://gambaswiki.org/wiki/lang/cdate has a few issues: 1. CDate converts the date to UTC, when the argument contains a date and time component. This fact is not mentioned. 2. The UTC-Offset is always the current UTC-Offset - even if the offset at given date/point of time is supposed to be different. Example for the time zone Berlin/Germany: Print CDate("11/11/2022 13:00:00")???? -> 11.11.2022 14:00:00 Print CDate("08/11/2022 13:00:00")???? -> 11.08.2022 14:00:00 (should actually be 15:00:00) I don't regard this as a bug, but it is important to know. An according information would be helpful. 3. The provided example may mislead the reader, because it doesn't show any UTC-offset. 4. There is only an indirect mentioning about the mandatory format of the date component, which must be the US-format mm/dd/yyyy. I suggest to provide an according information. 5. The example should have provided a day > 12 to indicate where the day has to be placed. 6. The "run" example is irritating, because in my case it shows a different result - dd/mm/yyyy instead of dd/mm/yyyy. The reason may be found in the following point. 7. The result of Print CDate(..) depends on the locale of the platform. Hence the result of Print CDate on the GambasWiki depends on the time zone and locale of the server platform. That means, that visitors may get a different result on their local platform - because of a different time zone and locale. I suggest an according revision of that wiki page. Best regards Claus From brian at westwoodsvcs.com Fri Nov 11 18:44:26 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 11 Nov 2022 09:44:26 -0800 (PST) Subject: [Gambas-user] Quick way to see Which Gambas components and Libraries are Insalled and available In-Reply-To: References: <267286367.5896.1668186497075.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1212203444.5968.1668188666944.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 11, 2022, at 9:17 AM, Bruce wrote: > On 12/11/22 3:38 am, Brian G wrote: >> Scripter(gbs3) supports an interface to list all the components and libraries >> available to your application through standard environment variable paths. >> There are a couple of examples using this at the end. >> Maybe this is usefull to some. >> So if Scripter is installed on your system the following will display all the >> components installed and available to be used by a Gambas3 application. >> $ gbs3 -l component >> Will list all installed and available components on the system >> $ gbs3 -l library >> Will list all installed and available Gambas3 libraries on the system with the >> path that locates them. >> I hope this helps a few people. >> 8< >> "Failure is the key to success; >> each mistake teaches us something" .. Morihei Ueshiba >> Brian G > That needs to show up in the Args help i.e. gbs3 -h > b It was in originally for testing, Did not know if it was useful to others Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at servinfo.it Fri Nov 11 19:03:58 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Fri, 11 Nov 2022 19:03:58 +0100 Subject: [Gambas-user] webtree select from code Message-ID: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> Hi all , I'm using gb.web.gui webtree but I don't find a way to select the first item from code. When I do webtree.movefirst first item is not selected , I search but don't find a way to do that , where is the trick ? thank's in advance , marco. From adamnt42 at gmail.com Fri Nov 11 21:05:56 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 12 Nov 2022 06:35:56 +1030 Subject: [Gambas-user] webtree select from code In-Reply-To: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> References: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> Message-ID: <2531dc33-070f-fe37-3299-df49530e5a33@gmail.com> On 12/11/22 4:33 am, Marco Ancillotti wrote: > Hi all , > > I'm using gb.web.gui webtree but I don't find a way to select the > first item from code. > > When I do webtree.movefirst first item is not selected , I search but > don't find a way to do that , > where is the trick ? > > thank's in advance , > marco. > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I presume that you are trying to select a node as if the user clicked on it. The trick is to read _every word_ of the help page. WebTree.MoveFirst moves the index of the *internal cursor*. It does nothing about the "selection" on the screen. What you want is to find a particular node, which is a *_WebTreeItem*, and set its *Selected* property. I note that the help page for the _WebTreeItem hasn't been written yet but we can assume that it is the same as the TreeView._TreeItem property. So research that page . b -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Nov 12 10:17:23 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 12 Nov 2022 10:17:23 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: <5634f16a-4402-2bca-c13e-b3a298de7e38@freenet.de> References: <5634f16a-4402-2bca-c13e-b3a298de7e38@freenet.de> Message-ID: Le 11/11/2022 ? 18:29, Claus Dietrich a ?crit?: > Hi Beno?t > > From my humble point of view the documentation of CDate on > http://gambaswiki.org/wiki/lang/cdate has a few issues: > > 1. CDate converts the date to UTC, when the argument contains a date and > time component. This fact is not mentioned. No. CDate() does not "convert a date to UTC". It converts a string representation of a date that is assumed to be in UTC into a date value. > > 2. The UTC-Offset is always the current UTC-Offset - even if the offset > at given date/point of time is supposed to be different. > Example for the time zone Berlin/Germany: > Print CDate("11/11/2022 13:00:00")???? -> 11.11.2022 14:00:00 > Print CDate("08/11/2022 13:00:00")???? -> 11.08.2022 14:00:00 (should > actually be 15:00:00) > I don't regard this as a bug, but it is important to know. An according > information would be helpful. Indeed. I don't know if there is some code somewhere in the OS that can take into account every time zone change at any time in any country. I don't think so! > > 3. The provided example may mislead the reader, because it doesn't show > any UTC-offset. Yes. It's because the playground uses 'en_GB.UTF-8' localization. > > 4. There is only an indirect mentioning about the mandatory format of > the date component, which must be the US-format mm/dd/yyyy. I suggest to > provide an according information. > Yes. > 5. The example should have provided a day > 12 to indicate where the day > has to be placed. Maybe. If 4) is fixed, it should be enough. > > 6. The "run" example is irritating, because in my case it shows a > different result - dd/mm/yyyy instead of dd/mm/yyyy. The reason may be > found in the following point. > > 7. The result of Print CDate(..) depends on the locale of the platform. > Hence the result of Print CDate on the GambasWiki depends on the time > zone and locale of the server platform. That means, that visitors may > get a different result on their local platform - because of a different > time zone and locale. Yes. This must be explained clearly too, which timezone is used by the playground server. > > > I suggest an according revision of that wiki page. > If you can do that, you are welcome! Best regards, -- Beno?t Minisini. From gambas at servinfo.it Sat Nov 12 10:43:22 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Sat, 12 Nov 2022 10:43:22 +0100 Subject: [Gambas-user] webtree select from code In-Reply-To: <2531dc33-070f-fe37-3299-df49530e5a33@gmail.com> References: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> <2531dc33-070f-fe37-3299-df49530e5a33@gmail.com> Message-ID: <0a40b177-d502-cc2b-a4a5-8dc66188f57c@servinfo.it> Il 11/11/22 21:05, BB ha scritto: > > I presume that you are trying to select a node as if the user clicked > on it. > > The trick is to read _every word_ of the help page. WebTree.MoveFirst > moves the index of the *internal cursor*. It does nothing about the > "selection" on the screen. What you want is to find a particular node, > which is a *_WebTreeItem*, and set its *Selected* property. I note > that the help page for the _WebTreeItem hasn't been written yet but we > can assume that it is the same as the TreeView._TreeItem property. So > research that page > . > I've read the help page , I try using same way as TreeView but don't work. This TreeView code work without problem: /Treeview1.Add("0", "CIAO", Picture.Load("icon:/32/add"))// //?Treeview1.Add("1", "PIPPO", Picture.Load("icon:/32/agenda"))// //?Treeview1.Add("2", "PLUTO", Picture.Load("icon:/32/alarm"))// //?Treeview1.Add("3", "MINNI", Picture.Load("icon:/32/blue"))// //?Treeview1.Add("4", "TOPO", Picture.Load("icon:/32/color"))// //?Treeview1["0"].Selected = True/ But when I do the same with WebTree on the line where I set selected = true I get: /Type mismatch: wanted String, got _WebTreeItem instead/ The line is the same: WebTree1["0"].Selected = True What is wrong ? I'm using dev ppa on ubuntu ( 3.17.90 ). Thank's, marco. -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 12 10:44:40 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 12 Nov 2022 20:14:40 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <5634f16a-4402-2bca-c13e-b3a298de7e38@freenet.de> Message-ID: On 12/11/22 7:47 pm, Benoit Minisini wrote: > Le 11/11/2022 ? 18:29, Claus Dietrich a ?crit?: >> Hi Beno?t >> >> ?From my humble point of view the documentation of CDate on >> http://gambaswiki.org/wiki/lang/cdate has a few issues: >> >> 1. CDate converts the date to UTC, when the argument contains a date >> and time component. This fact is not mentioned. > > No. CDate() does not "convert a date to UTC". It converts a string > representation of a date that is assumed to be in UTC into a date value. > >> >> 2. The UTC-Offset is always the current UTC-Offset - even if the >> offset at given date/point of time is supposed to be different. >> Example for the time zone Berlin/Germany: >> Print CDate("11/11/2022 13:00:00")???? -> 11.11.2022 14:00:00 >> Print CDate("08/11/2022 13:00:00")???? -> 11.08.2022 14:00:00 (should >> actually be 15:00:00) >> I don't regard this as a bug, but it is important to know. An >> according information would be helpful. > > Indeed. I don't know if there is some code somewhere in the OS that > can take into account every time zone change at any time in any > country. I don't think so! > >> >> 3. The provided example may mislead the reader, because it doesn't >> show any UTC-offset. > > Yes. It's because the playground uses 'en_GB.UTF-8' localization. >> >> 4. There is only an indirect mentioning about the mandatory format of >> the date component, which must be the US-format mm/dd/yyyy. I suggest >> to provide an according information. >> > > Yes. > >> 5. The example should have provided a day > 12 to indicate where the >> day has to be placed. > > Maybe. If 4) is fixed, it should be enough. > >> >> 6. The "run" example is irritating, because in my case it shows a >> different result - dd/mm/yyyy instead of dd/mm/yyyy. The reason may >> be found in the following point. >> >> 7. The result of Print CDate(..) depends on the locale of the >> platform. Hence the result of Print CDate on the GambasWiki depends >> on the time zone and locale of the server platform. That means, that >> visitors may get a different result on their local platform - because >> of a different time zone and locale. > > Yes. This must be explained clearly too, which timezone is used by the > playground server. > >> >> >> I suggest an according revision of that wiki page. >> > > If you can do that, you are welcome! > > Best regards, > I?would have thought that the complete explanation in the Date & Time Management page would have been enough for anyone. Perhaps all that is needed is a warning box at the top of the page linking to that doc. I am a *firm* believer that the main documentation should be as brief and succinct as possible. Gambas help is generally excellent in that respect. I would hate to see something like the godawful Lazarus help pop up whenever I am typing some code (or if you-all are really masochistic, try the QT documentation for real fun.)? I reckon that: * any help that is going to pop up while typing code should be as brief as possible * any sample code should be as basic as possible * any long involved explanations as to why, where, who (and who was she with, what they ate etc etc etc) belongs in the *Documents* section. The Documents and Topics section of the wiki is not used enough by many people IMHO. ! b -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Nov 12 10:53:14 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 12 Nov 2022 10:53:14 +0100 Subject: [Gambas-user] webtree select from code In-Reply-To: <0a40b177-d502-cc2b-a4a5-8dc66188f57c@servinfo.it> References: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> <2531dc33-070f-fe37-3299-df49530e5a33@gmail.com> <0a40b177-d502-cc2b-a4a5-8dc66188f57c@servinfo.it> Message-ID: Le 12/11/2022 ? 10:43, Marco Ancillotti a ?crit?: > But when I do the same with WebTree on the line where I set selected = > true I get: > > /Type mismatch: wanted String, got _WebTreeItem instead/ > > The line is the same: > > WebTree1["0"].Selected = True > > What is wrong ? I'm using dev ppa on ubuntu ( 3.17.90 ). > > Thank's, > marco. > You are not wrong, it's a bug. It's fixed in commit https://gitlab.com/gambas/gambas/-/commit/795cd79f61b7a9d8cf1d4bbc69ce2e6869d8e1d2. Regards, -- Beno?t Minisini. From gambas at servinfo.it Sat Nov 12 11:02:03 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Sat, 12 Nov 2022 11:02:03 +0100 Subject: [Gambas-user] webtree select from code In-Reply-To: References: <96f857fa-f95f-251b-fd7c-b320d1d3165c@servinfo.it> <2531dc33-070f-fe37-3299-df49530e5a33@gmail.com> <0a40b177-d502-cc2b-a4a5-8dc66188f57c@servinfo.it> Message-ID: <281df082-1c2f-59c2-69e9-e6c31c2a6eaa@servinfo.it> Il 12/11/22 10:53, Benoit Minisini ha scritto: > > You are not wrong, it's a bug. It's fixed in commit > https://gitlab.com/gambas/gambas/-/commit/795cd79f61b7a9d8cf1d4bbc69ce2e6869d8e1d2. > Ok thank's a lot ! From claus.dietrich at freenet.de Sat Nov 12 16:34:16 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Sat, 12 Nov 2022 16:34:16 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: <02eef39c-55e8-282b-1510-a32c0e1349e7@freenet.de> Hi Beno?t >Indeed. I don't know if there is some code somewhere in the OS that can >take into account every time zone change at any time in any country. I >don't think so! Correct, but I just developed a Gambas function based on tzdata which is supposed to do this for all time zones and a huge time range which should cover most practical cases. First tests are encouraging. >/>I suggest an according revision of that wiki page./ >If you can do that, you are welcome! Will be done. Brgds Claus From jussi.lahtinen at gmail.com Sun Nov 13 00:47:16 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 01:47:16 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <5634f16a-4402-2bca-c13e-b3a298de7e38@freenet.de> Message-ID: > > > 2. The UTC-Offset is always the current UTC-Offset - even if the offset > > at given date/point of time is supposed to be different. > > Example for the time zone Berlin/Germany: > > Print CDate("11/11/2022 13:00:00") -> 11.11.2022 14:00:00 > > Print CDate("08/11/2022 13:00:00") -> 11.08.2022 14:00:00 (should > > actually be 15:00:00) > > I don't regard this as a bug, but it is important to know. An according > > information would be helpful. > > Indeed. I don't know if there is some code somewhere in the OS that can > take into account every time zone change at any time in any country. I > don't think so! > This could be fixed as suggested several times; assume the user is always correct. IE no conversions. So you would simply get what you give, instead of something unexpected: Print CDate("11/11/2022 13:00:00") -> 11.11.2022 13:00:00 Print CDate("08/11/2022 13:00:00") -> 08.11.2022 13:00:00 But I think it would need its own class or set of methods to maintain the old way people are using. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Nov 13 13:53:58 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 13 Nov 2022 12:53:58 +0000 Subject: [Gambas-user] can gambas package itself? Message-ID: Is there a function/script anywhere that packages all of gambas into repository ready packages after compilation? I'm wondering if we can expand from just having the launchpad ppa method on ubuntu systems? I'm guessing something like this exists for ubuntu (unless it's all done by launchpad). I have a gambas enabled web server on a DigitalOcean droplet. I chose an ubuntu system when i created it for the ppa bonus but i compile and install gambas via autotools so ubuntu isn't essential. I could probably use anything. So i could also create repo-packages for whatever system it is if it's possible. And if it is possible i could probably also make it auto-update to stay current. I'm thinking Debian at least would probably be able to use the same package making method as used for launchpad (or something very similar, just a few tweaks maybe to make compatible .debs and set the info). Any ideas? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Sun Nov 13 14:15:17 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 13 Nov 2022 14:15:17 +0100 Subject: [Gambas-user] WebPage and external files Message-ID: Hello. For the Gambas book on gambas-buch.de I would like to provide some simple web projects based on the class `WebPage`. For this I want to use the internal HTTP server - either in the IDE or in the console (**) with (1) Console:??? hans at pc-mint20:~/CGI/wp_example1$ GB_HTTPD_PORT=8080 gbx3 -H (2) URL:??? ??? http://localhost:8080/ Reason: Not everyone wants to install and configure an HTTP server like Lighttpd or Apache2 for first tests. For CSS I use Inline-CSS and for JavaSript Inline-JS, but this makes the source code difficult to read. However, I am unable to integrate multimedia objects such as images, favicons, audio files or video files. Question: When using the internal HTTP server in the IDE or via the console as in (**), is it possible to include the content of external files (CSS, JavaScript, multimedia objects)? If `Yes`, then I would like to know how this can be realised. With kind regards Hans From bsteers4 at gmail.com Sun Nov 13 16:23:26 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 13 Nov 2022 15:23:26 +0000 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: Message-ID: On Sun, 13 Nov 2022 at 13:16, Hans Lehmann wrote: > Hello. > > For the Gambas book on gambas-buch.de I would like to provide some > simple web projects based on the class `WebPage`. > For this I want to use the internal HTTP server - either in the IDE or > in the console (**) with > > (1) > Console: hans at pc-mint20:~/CGI/wp_example1$ GB_HTTPD_PORT=8080 gbx3 -H > (2) > URL: http://localhost:8080/ > > Reason: Not everyone wants to install and configure an HTTP server like > Lighttpd or Apache2 for first tests. > > For CSS I use Inline-CSS and for JavaSript Inline-JS, but this makes the > source code difficult to read. > So don't then ;) However, I am unable to integrate multimedia objects such as images, > favicons, audio files or video files. > > Question: > When using the internal HTTP server in the IDE or via the console as in > (**), is it possible to include the content of external files (CSS, > JavaScript, multimedia objects)? If `Yes`, then I would like to know how > this can be realised. > > With kind regards > > Hans > How exactly do you mean "external" ? Files on your computer that are not part of the project or URLs? I would say only if they are online. (I do no know this for concrete fact, but this is as i understand things) You should be able to use online URLs, URLs of online resources should be reachable (if the computer is online) but not anything on your local machine external to your project as the server will not be configured to see your computers files in any way except for the currently running project files. Running the internal server is like letting gambas do the "install and configure" a server for you and It does nothing at all fancy in any way. it's a minimum requirement server to run the current project only. I find using the .public folder is a good place to put things your project will be able to see. Pretty sure gambas internal server can use the .public folder. For your examples for your book entries you should try to use online URLs to the resources or provide them with the source project. I think ultimately if you are going to write web projects then configuring apache or lighttpd is a bridge you must cross pretty early on. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Sun Nov 13 17:28:20 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Sun, 13 Nov 2022 17:28:20 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: >This could be fixed as suggested several times; assume the user is always >correct. IE no conversions. >So you would simply get what you give, instead of something unexpected: > >Print CDate("11/11/2022 13:00:00") -> 11.11.2022 13:00:00 >Print CDate("08/11/2022 13:00:00") -> 08.11.2022 13:00:00 > >But I think it would need its own class or set of methods to maintain the >old way people are using. I also think, that that no conversion to UTC would have been better. The function Date() also doesn't do this and in VBA and Visual Basic 6 CDate also doesn't convert to UTC. So far and because of the traps I used this function with a time component only, which is not converted to UTC. So to me a hard cut would be acceptable but this is easily said. Brgds Claus From bsteers4 at gmail.com Sun Nov 13 17:46:11 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 13 Nov 2022 16:46:11 +0000 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: Message-ID: On Sun, 13 Nov 2022 at 13:16, Hans Lehmann wrote: > Hello. > > For the Gambas book on gambas-buch.de I would like to provide some > simple web projects based on the class `WebPage`. > For this I want to use the internal HTTP server - either in the IDE or > in the console (**) with > > (1) > Console: hans at pc-mint20:~/CGI/wp_example1$ GB_HTTPD_PORT=8080 gbx3 -H > (2) > URL: http://localhost:8080/ > > Reason: Not everyone wants to install and configure an HTTP server like > Lighttpd or Apache2 for first tests. > > For CSS I use Inline-CSS and for JavaSript Inline-JS, but this makes the > source code difficult to read. > > However, I am unable to integrate multimedia objects such as images, > favicons, audio files or video files. > > Question: > When using the internal HTTP server in the IDE or via the console as in > (**), is it possible to include the content of external files (CSS, > JavaScript, multimedia objects)? If `Yes`, then I would like to know how > this can be realised. > > With kind regards > Or maybe you are talking about this?... WebForm.AddJavascriptFile(sFile As String) ' to add your .js url (I used this once and i think it mattered where i put it, it had to be early, like in the header or the _new or _init i cannot remember, i'm sure you will figure it out. you can use chromium or firefox devtools to see if it's loaded properly) as for css i think you can use WebControl._AddStyleSheet(sStyle As String) but it not a URL it's the style text so you must load the file first using File.load() (there may be a way to load a css url directly but i do not know) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Sun Nov 13 17:48:40 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 13 Nov 2022 17:48:40 +0100 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: Message-ID: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> Am 13.11.22 um 16:23 schrieb Bruce Steers: > I find using the .public folder is a good place to put things your > project will be able to see. > Pretty sure gambas internal server can use the .public folder. Hello Bruce, unfortunately the implementation of this hint does not bring the hoped for access to the content of external files like style.css or logo.png. With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Nov 13 17:49:12 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 13 Nov 2022 16:49:12 +0000 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: Message-ID: On Sun, 13 Nov 2022 at 16:46, Bruce Steers wrote: > > > On Sun, 13 Nov 2022 at 13:16, Hans Lehmann wrote: > >> Hello. >> >> For the Gambas book on gambas-buch.de I would like to provide some >> simple web projects based on the class `WebPage`. >> For this I want to use the internal HTTP server - either in the IDE or >> in the console (**) with >> >> (1) >> Console: hans at pc-mint20:~/CGI/wp_example1$ GB_HTTPD_PORT=8080 gbx3 -H >> (2) >> URL: http://localhost:8080/ >> >> Reason: Not everyone wants to install and configure an HTTP server like >> Lighttpd or Apache2 for first tests. >> >> For CSS I use Inline-CSS and for JavaSript Inline-JS, but this makes the >> source code difficult to read. >> >> However, I am unable to integrate multimedia objects such as images, >> favicons, audio files or video files. >> >> Question: >> When using the internal HTTP server in the IDE or via the console as in >> (**), is it possible to include the content of external files (CSS, >> JavaScript, multimedia objects)? If `Yes`, then I would like to know how >> this can be realised. >> >> With kind regards >> > > Or maybe you are talking about this?... > WebForm.AddJavascriptFile(sFile As String) ' to add your .js url > (I used this once and i think it mattered where i put it, it had to be > early, like in the header or the _new or _init i cannot remember, i'm sure > you will figure it out. you can use chromium or firefox devtools to see if > it's loaded properly) > > > as for css i think you can use WebControl._AddStyleSheet(sStyle As String) > but it not a URL it's the style text so you must load the file first using > File.load() > > (there may be a way to load a css url directly but i do not know) > > BruceS > Oops. My apologies this is relevant to gb.web.gui not gb.web/webpage -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sun Nov 13 17:50:15 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 13 Nov 2022 11:50:15 -0500 Subject: [Gambas-user] can gambas package itself? In-Reply-To: References: Message-ID: <0f2fa2b3-032f-d82c-a6fe-b2bb26985731@gmail.com> On 11/13/22 07:53, Bruce Steers wrote: > Is there a function/script anywhere that packages all of gambas into repository ready packages after compilation? > > I'm wondering if we can expand from just having the launchpad ppa method on ubuntu systems? > [snip] > So i could also create repo-packages for whatever system it is if it's possible. Before you go about reinventing the wheel (unless of course you want to), you might take a look at a public service that already exists for community members to provide package repos for various distros: https://build.opensuse.org/ For example, if you go to https://software.opensuse.org and search for "gambas3", you will find that there are community-provided package repos for Debian as well as openSUSE (although they appear to be outdated). I use the package provided by a repo maintained by user 'munix9' which is hosted at https://build.opensuse.org/package/show/home:munix9/gambas3 It should just be a matter of creating a repo for the target distribution & version, and customizing the SPEC file for each package & for each target. -- Lee From hans at gambas-buch.de Sun Nov 13 17:52:41 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 13 Nov 2022 17:52:41 +0100 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: Message-ID: <90e5bf4b-5720-4635-cb8a-2fd8ddb9a6d3@gambas-buch.de> Am 13.11.22 um 17:46 schrieb Bruce Steers: > Or maybe you are talking about this?... No Bruce, that won't work because I only use the /WebPage/ class consistently. With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sun Nov 13 18:35:37 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 13 Nov 2022 12:35:37 -0500 Subject: [Gambas-user] WebPage and external files In-Reply-To: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> References: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> Message-ID: <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> On 11/13/22 11:48, Hans Lehmann wrote: > unfortunately the implementation of this hint does not bring the hoped for access to the content of external files like > style.css or logo.png. Hmmm, that should work. Are you certain you are specifying the path correctly? If you have a style sheet in the project's Public directory (and not in a subdirectory of that directory), the link tag in the HEAD of the web page should be similar to: I just tried it with both a style sheet and an image (in a "img" subdirectory), and it does work. -- Lee From benoit.minisini at gambas-basic.org Sun Nov 13 20:26:41 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 13 Nov 2022 20:26:41 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: Message-ID: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Le 13/11/2022 ? 17:28, Claus Dietrich a ?crit?: >> This could be fixed as suggested several times; assume the user is always >> correct. IE no conversions. >> So you would simply get what you give, instead of something unexpected: >> >> Print CDate("11/11/2022 13:00:00")???? -> 11.11.2022 13:00:00 >> Print CDate("08/11/2022 13:00:00")???? -> 08.11.2022 13:00:00 >> >> But I think it would need its own class or set of methods to maintain the >> old way people are using. > > I also think, that that no conversion to UTC would have been better. The > function Date() also doesn't do this and in VBA and Visual Basic 6 CDate > also doesn't convert to UTC. > > So far and because of the traps I used this function with a time component > only, which is not converted to UTC. So to me a hard cut would be > acceptable but this is easily said. > > Brgds > Claus > You both don't get it. When transforming a string into a date, there is no such "no conversion" thing. You must guess an implicit timezone. Exactly with a string, where you have to guess an implicit charset. So you have CDate(), that uses UTC as timezone, and Val(), that uses the timezone of the current localization. CDate() is the contrary of CStr(). I.e.: CStr(CDate(X)) = X and CDate(CStr(aDate)) = aDate. The same way, Val() is the contrary of Str() or Print (which uses Str() to print its arguments). Jussi wants 'CDate()' to act like 'Val()'. But then just use 'Val()', not 'CDate()'. A real enhancement would be to add a syntax to allow to specify the timezone explicitely inside the string representation of a date: CDate("11/11/2020 13:00:00 UTC+2") for example. Regards, -- Beno?t Minisini. From jussi.lahtinen at gmail.com Sun Nov 13 21:02:47 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 22:02:47 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: > You both don't get it. > > When transforming a string into a date, there is no such "no conversion" > thing. You must guess an implicit timezone. Exactly with a string, where > you have to guess an implicit charset. > No, Benoit you don't get it. The assumed time zone does not matter, when the conversion is left to the user. It can be anything I want. So you have CDate(), that uses UTC as timezone, and Val(), that uses the > timezone of the current localization. > > CDate() is the contrary of CStr(). I.e.: CStr(CDate(X)) = X and > CDate(CStr(aDate)) = aDate. The same way, Val() is the contrary of Str() > or Print (which uses Str() to print its arguments). > > Jussi wants 'CDate()' to act like 'Val()'. But then just use 'Val()', > not 'CDate()'. > No. All that is just an unnecessary mess. A real enhancement would be to add a syntax to allow to specify the > timezone explicitely inside the string representation of a date: > > CDate("11/11/2020 13:00:00 UTC+2") for example. > I agree, this would also fix the problem. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Nov 13 22:05:34 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 13 Nov 2022 22:05:34 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: Le 13/11/2022 ? 21:02, Jussi Lahtinen a ?crit?: > > You both don't get it. > > When transforming a string into a date, there is no such "no > conversion" > thing. You must guess an implicit timezone. Exactly with a string, > where > you have to guess an implicit charset. > > > No, Benoit you don't get it. The assumed time zone does not matter, > when the conversion is left to the user. It can be anything I want. > Please explain how you convert a string representation of a date with no explicit timezone into a date timestamp, without an implicit timezone. I'm curious! -- Beno?t Minisini. From jussi.lahtinen at gmail.com Sun Nov 13 22:25:43 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 23:25:43 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: Please explain how you convert a string representation of a date with no > explicit timezone into a date timestamp, without an implicit timezone. > In most cases you don't need to convert at all, you just assume it is the timezone in use. If you need to convert it to some specified timezone, then you need to have information what was the timezone given with the date. IE you are in the same situation as we are now, expect no automatic failures. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sun Nov 13 22:40:26 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 23:40:26 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: In other words, this is exactly equal to how a simple paper calendar works. Jussi On Sun, Nov 13, 2022 at 11:25 PM Jussi Lahtinen wrote: > > Please explain how you convert a string representation of a date with no >> explicit timezone into a date timestamp, without an implicit timezone. >> > > In most cases you don't need to convert at all, you just assume it is the > timezone in use. > If you need to convert it to some specified timezone, then you need to > have information what was the timezone given with the date. > IE you are in the same situation as we are now, expect no automatic > failures. > > > Jussi > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sun Nov 13 22:41:54 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 23:41:54 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: IE you are in the same situation as we are now, *except* no automatic failures. Auto correct... Jussi On Sun, Nov 13, 2022 at 11:25 PM Jussi Lahtinen wrote: > > Please explain how you convert a string representation of a date with no >> explicit timezone into a date timestamp, without an implicit timezone. >> > > In most cases you don't need to convert at all, you just assume it is the > timezone in use. > If you need to convert it to some specified timezone, then you need to > have information what was the timezone given with the date. > IE you are in the same situation as we are now, expect no automatic > failures. > > > Jussi > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Nov 13 22:46:19 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 13 Nov 2022 22:46:19 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Le 13/11/2022 ? 22:25, Jussi Lahtinen a ?crit?: > > Please explain how you convert a string representation of a date > with no > explicit timezone into a date timestamp, without an implicit timezone. > > > In most cases you don't need to convert at all, you just assume it is > the timezone in use. > If you need to convert it to some specified timezone, then you need to > have information what was the timezone given with the date. > IE you are in the same situation as we are now, expect no automatic > failures. > > > Jussi > If you want the timezone in use, just use 'Val()' then. Leave 'CDate()' alone. I don't see why it is a problem. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sun Nov 13 22:49:22 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 13 Nov 2022 22:49:22 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: <39d229e9-910c-cd37-b1a1-d5d7e24f6628@gambas-basic.org> Le 13/11/2022 ? 22:46, Benoit Minisini a ?crit?: > Le 13/11/2022 ? 22:25, Jussi Lahtinen a ?crit?: >> >> ??? Please explain how you convert a string representation of a date >> ??? with no >> ??? explicit timezone into a date timestamp, without an implicit >> timezone. >> >> >> In most cases you don't need to convert at all, you just assume it is >> the timezone in use. >> If you need to convert it to some specified timezone, then you need to >> have information what was the timezone given with the date. >> IE you are in the same situation as we are now, expect no automatic >> failures. >> >> >> Jussi >> > > If you want the timezone in use, just use 'Val()' then. Leave 'CDate()' > alone. I don't see why it is a problem. > > Regards, > And if you want to understand why it is like that, it's because in 2000, when I designed Gambas from VB, I took its date functions, but there were a lot of incoherences. To fix that, I decided that some of the functions assumes GMT, and other the timezone in use. And in both cases I had to have one function that converts from string to date, and one that converts from date to string. -- Beno?t Minisini. From adamnt42 at gmail.com Sun Nov 13 22:50:56 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 14 Nov 2022 08:20:56 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: On 14/11/22 8:10 am, Jussi Lahtinen wrote: > In other words, this is exactly equal to how a simple paper calendar > works. > > Jussi I didn't know that simple paper calendars could do datetime conversions! ? To be serious and with apologies, I agree with Benoit - You just don't seem to get it. A Date is a number and a String is a string. b From jussi.lahtinen at gmail.com Sun Nov 13 22:58:55 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 13 Nov 2022 23:58:55 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: > > In other words, this is exactly equal to how a simple paper calendar > > works. > > I didn't know that simple paper calendars could do datetime conversions! ? > > To be serious and with apologies, I agree with Benoit - You just don't > seem to get it. > If I have a date "24.12.2024 12:00" in a paper calendar, then what is the ambiguity? In Gambas that can mean just about anything depending on example whether the date was given in winter or summer (if you live in a country which has different summer and winter time). A Date is a number and a String is a string. > LOL, of course. Was this really an issue? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sun Nov 13 23:06:12 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Mon, 14 Nov 2022 00:06:12 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: > If you want the timezone in use, just use 'Val()' then. Leave 'CDate()' > alone. I don't see why it is a problem. > Yes, I don't use CDate at all, but still the problem occurs when switching from summer time to winter time. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sun Nov 13 23:20:54 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Mon, 14 Nov 2022 00:20:54 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: If this really wasn't obvious, then here, the common way: iTimeStamp = (iYear - 1900) * 31556926 + iMonth * 2629743 + iDay * 86400 + and so on... No need to put a timezone anywhere. Just like with a paper calendar. Unless you need/want to specify it. Jussi On Sun, Nov 13, 2022 at 11:58 PM Jussi Lahtinen wrote: > > >> > In other words, this is exactly equal to how a simple paper calendar >> > works. >> >> I didn't know that simple paper calendars could do datetime conversions! >> ? >> >> To be serious and with apologies, I agree with Benoit - You just don't >> seem to get it. >> > > > If I have a date "24.12.2024 12:00" in a paper calendar, then what is the > ambiguity? > In Gambas that can mean just about anything depending on example whether > the date was given in winter or summer (if you live in a country which has > different summer and winter time). > > > A Date is a number and a String is a string. >> > > LOL, of course. Was this really an issue? > > > Jussi > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Nov 14 00:27:26 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 14 Nov 2022 00:27:26 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> Message-ID: <892864ef-3c41-bd24-b4a7-fd5197686452@gambas-basic.org> Le 13/11/2022 ? 23:20, Jussi Lahtinen a ?crit?: > If this really wasn't obvious, then here, the common way: > iTimeStamp = (iYear - 1900) * 31556926 + iMonth * 2629743?+ iDay * 86400 > + and so on... > > No need to put a timezone anywhere. Just like with a paper calendar. > Unless you need/want to specify it. > > > Jussi > A timestamp, which the Gambas 'Date' datatype is, must represent the same physical moment, whereever the program using it runs, so that it can be freely moved over the Internet. Your timestamp computation return different values with different timezones for the same physical moment. So it is useless as a timestamp. -- Beno?t Minisini. From jussi.lahtinen at gmail.com Mon Nov 14 00:47:53 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Mon, 14 Nov 2022 01:47:53 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <892864ef-3c41-bd24-b4a7-fd5197686452@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <892864ef-3c41-bd24-b4a7-fd5197686452@gambas-basic.org> Message-ID: > > A timestamp, which the Gambas 'Date' datatype is, must represent the > same physical moment, whereever the program using it runs, so that it > can be freely moved over the Internet. > > Your timestamp computation return different values with different > timezones for the same physical moment. So it is useless as a timestamp. > Then you need to give the timezone as one of the parameters. Right now it is not in the datatype. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Nov 14 05:20:05 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 14 Nov 2022 14:50:05 +1030 Subject: [Gambas-user] Request property for gd.db.Result mode Message-ID: <97511746-520d-39e5-f3fa-a37936dcc7a3@gmail.com> Benoit, Would it be possible that you could add a (readonly) property to the Result class to indicate the mode of that result? I am passing some result objects between several classes in a project and sometimes they are updateable and sometimes not (on purpose). At the moment all one of these classes can do is to try to update the result and if it gets an error then re-read the result in a updateable mode and then do the update. This is extremely messy and requires up to three accesses to the database. I have had a look at the CResult.c class but the level of C is well beyond my abilities. tia bruce From gambas at servinfo.it Mon Nov 14 11:41:31 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Mon, 14 Nov 2022 11:41:31 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui Message-ID: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> HI all , I think I found two bug on gb.web.gui . FIRST: I've create a simple web page with a webtabpanel and a webcombobox linked by code: /Public Sub cbox_Click()// //? tab.index = cbox.Index// //End/ So when combobox change tabpanel change as well. Now on webform_open I have a / / /tab.index = 2 cbox.index = 2/ And everythink work as expected... BUT if I put before the index change a simple webtextbox.text = "somethink" ti completely hangs. SECOND: if I call the same webform from another as form.showmodal() the tabbox don't refresh the tab selected if I change it on form opening. I attach an example of bugs. gambas is latest daily trunk from ubuntu ppa. Thank's in advance , marco. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: sviluppowebform-0.0.1.tar.gz Type: application/gzip Size: 12952 bytes Desc: not available URL: From rwe-sse at osnanet.de Mon Nov 14 11:47:38 2022 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 14 Nov 2022 11:47:38 +0100 Subject: [Gambas-user] QR codes in PDF Message-ID: Hi folks, For printing confirmational PDFs for participants in a course, I would appreciate using a QR code rather than stamp/signature (which had to be printed + signed + scanned again). As far as I can see, Paint does not include a QR functionality, so my question is, is there any in Gambas yet? Or if not, how have you possibly solved this? Thanks for any hints! Regards Rolf From benoit.minisini at gambas-basic.org Mon Nov 14 12:30:33 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 14 Nov 2022 12:30:33 +0100 Subject: [Gambas-user] QR codes in PDF In-Reply-To: References: Message-ID: Le 14/11/2022 ? 11:47, Rolf-Werner Eilert a ?crit?: > Hi folks, > > For printing confirmational PDFs for participants in a course, I would > appreciate using a QR code rather than stamp/signature (which had to be > printed + signed + scanned again). > > As far as I can see, Paint does not include a QR functionality, so my > question is, is there any in Gambas yet? > > Or if not, how have you possibly solved this? > > Thanks for any hints! > > Regards > Rolf > I use the 'qrencode' program to get a 'png' file with the wanted QR code. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 14 12:33:21 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 14 Nov 2022 11:33:21 +0000 Subject: [Gambas-user] QR codes in PDF In-Reply-To: References: Message-ID: Command 'zbarimg' can be installed with: sudo apt install zbar-tools Command 'qrencode' can be installed with: sudo apt install qrencode Here's some info. https://askubuntu.com/questions/22871/software-to-read-a-qr-code BruceS On Mon, 14 Nov 2022 at 10:54, Rolf-Werner Eilert wrote: > Hi folks, > > For printing confirmational PDFs for participants in a course, I would > appreciate using a QR code rather than stamp/signature (which had to be > printed + signed + scanned again). > > As far as I can see, Paint does not include a QR functionality, so my > question is, is there any in Gambas yet? > > Or if not, how have you possibly solved this? > > Thanks for any hints! > > Regards > Rolf > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Mon Nov 14 12:43:42 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Mon, 14 Nov 2022 12:43:42 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: I agree with Jussi. Here is my summary of concrete arguments to change the CDate() function: 1. Visual Basic is not inconsistent - Gambas is inconsistent because a. Other than CDate() the Date() function of Gambas doesn't convert to UTC b. The CDate() function potentially delivers a wrong UTC time because it always applies the current UTC offset instead of the real offset 2. To get a timestamp, the user has to decide, whether he wants a local or UTC timestamp. Other than in Visual Basic it can easily be recalculated with System.Timezone in Gambas. 3. Other than CDate() the Val() function the string representation of a date must comply with the locale of the platform. This is a different capability and may impose inconsistencies for applications if used in different regions. 4. For timestamps Gambas also provides Unix-timestamps. 5. Timestamps transported over the Internet sometimes contain a time zone information: Gas prices here in Germany are i.e. delivered with following timestamp: 2022-07-20 23:10:09+02 6. Although we don't want a Visual Basic clone, we should at least take note that CDate() in VB doesn't convert to UTC and should reflect whether a deviation is necessary. With best regards Claus From rwe-sse at osnanet.de Mon Nov 14 12:49:55 2022 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 14 Nov 2022 12:49:55 +0100 Subject: [Gambas-user] QR codes in PDF In-Reply-To: References: Message-ID: Thank you for this quick answer, I'll try these! Regards Rolf Am 14.11.22 um 12:33 schrieb Bruce Steers: > > > Command 'zbarimg' can be installed with: > sudo apt install zbar-tools > > Command 'qrencode' can be installed with: > sudo apt install qrencode > > Here's some info. > https://askubuntu.com/questions/22871/software-to-read-a-qr-code > > > BruceS > > > On Mon, 14 Nov 2022 at 10:54, Rolf-Werner Eilert > wrote: > > Hi folks, > > For printing confirmational PDFs for participants in a course, I would > appreciate using a QR code rather than stamp/signature (which had to be > printed + signed + scanned again). > > As far as I can see, Paint does not include a QR functionality, so my > question is, is there any in Gambas yet? > > Or if not, how have you possibly solved this? > > Thanks for any hints! > > Regards > Rolf > > ----[ http://gambaswiki.org/wiki/doc/netiquette > ]---- > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From rwe-sse at osnanet.de Mon Nov 14 12:50:25 2022 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 14 Nov 2022 12:50:25 +0100 Subject: [Gambas-user] QR codes in PDF In-Reply-To: References: Message-ID: <4a45ac2e-6f18-7cac-3eac-ea23b20f0bcf@osnanet.de> Am 14.11.22 um 12:30 schrieb Benoit Minisini: > Le 14/11/2022 ? 11:47, Rolf-Werner Eilert a ?crit?: >> Hi folks, >> >> For printing confirmational PDFs for participants in a course, I would >> appreciate using a QR code rather than stamp/signature (which had to >> be printed + signed + scanned again). >> >> As far as I can see, Paint does not include a QR functionality, so my >> question is, is there any in Gambas yet? >> >> Or if not, how have you possibly solved this? >> >> Thanks for any hints! >> >> Regards >> Rolf >> > > I use the 'qrencode' program to get a 'png' file with the wanted QR code. > > Regards, > Thank you for the tip Benoit, I'll try it. Regards Rolf From benoit.minisini at gambas-basic.org Mon Nov 14 13:02:18 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 14 Nov 2022 13:02:18 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: Message-ID: <60e8c302-ca36-dba7-fdf3-a83c3a89f5a2@gambas-basic.org> Le 14/11/2022 ? 12:43, Claus Dietrich a ?crit?: > I agree with Jussi. Here is my summary of concrete arguments to change > the CDate() function: > > 1. Visual Basic is not inconsistent - Gambas is inconsistent because > a. Other than CDate() the Date() function of Gambas doesn't convert to UTC > b. The CDate() function potentially delivers a wrong UTC time > because it always applies the current UTC offset instead of the real > offset > > 2. To get a timestamp, the user has to decide, whether he wants > a local or UTC timestamp. Other than in Visual Basic it can easily > be recalculated with System.Timezone in Gambas. > > 3. Other than CDate() the Val() function the string representation > of a date must comply with the locale of the platform. This is > a different capability and may impose inconsistencies for > applications if used in different regions. > > 4. For timestamps Gambas also provides Unix-timestamps. > > 5. Timestamps transported over the Internet sometimes contain a > time zone information: > Gas prices here in Germany are i.e. delivered with following timestamp: > 2022-07-20 23:10:09+02 > > 6. Although we don't want a Visual Basic clone, we should at least > take note that CDate() in VB doesn't convert to UTC and should > reflect whether a deviation is necessary. > > With best regards > Claus > You don't understand: 1) That the Gambas 'Date' datatype is a timestamp, not a local representation of a date. 2) That a timestamp is the representation of a *absolute physical instant*. It is not relative like a string representation of a date. If you can't get with this logic, because you still mix relative representation of time and absolute representation (as shown by your point #5), just create your own "date" datatype. Or, in other words, store your dates as strings. Gambas will keep its logic, because it's logic, and CDate() won't change, because it will break programs. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 14 13:52:27 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 14 Nov 2022 12:52:27 +0000 Subject: [Gambas-user] CDate Documentation In-Reply-To: <60e8c302-ca36-dba7-fdf3-a83c3a89f5a2@gambas-basic.org> References: <60e8c302-ca36-dba7-fdf3-a83c3a89f5a2@gambas-basic.org> Message-ID: On Mon, 14 Nov 2022 at 12:03, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 14/11/2022 ? 12:43, Claus Dietrich a ?crit : > > I agree with Jussi. Here is my summary of concrete arguments to change > > the CDate() function: > > > > Gambas will keep its logic, because it's logic, and CDate() won't > change, because it will break programs. > > Regards, > > -- > Beno?t Minisini. > That is a VERY strong counter-argument and one to remember for any argument that something in gambas must change. Any commands that have been around for sometime cannot just change as they're probably being used in many programs already and may break them. Like Benoit says Claus you either have to get your head around the logic of the way it is and has always been (most others have), or make a command to do it how you think it should be done. No long-time gambas command is going to change how it works for you or anyone unless there is a bug that's interfering with how Benoit made it to function. So... What EXACTLY is the desired result you are wanting to achieve with the existing date functions as they currently work? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Nov 14 14:02:58 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 14 Nov 2022 14:02:58 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <60e8c302-ca36-dba7-fdf3-a83c3a89f5a2@gambas-basic.org> Message-ID: Le 14/11/2022 ? 13:52, Bruce Steers a ?crit?: > > > On Mon, 14 Nov 2022 at 12:03, Benoit Minisini > > wrote: > > Le 14/11/2022 ? 12:43, Claus Dietrich a ?crit?: > > I agree with Jussi. Here is my summary of concrete arguments to > change > > the CDate() function: > > > > Gambas will keep its logic, because it's logic, and CDate() won't > change, because it will break programs. > > Regards, > > -- > Beno?t Minisini. > > > > That is a VERY strong counter-argument and one to remember for any > argument that something in gambas must change. > Any commands that have been around for sometime cannot just change as > they're probably being used in many programs already and may break them. > > Like Benoit says Claus you either have to get your head around the logic > of the way it is and has always been (most others have), or make a > command to do it how you think it should be done. > No long-time gambas command is going to change how it works for you or > anyone unless there is a bug that's interfering with how Benoit made it > to function. > > So... > What EXACTLY is the desired result you are wanting to achieve with the > existing date functions as they currently work? > > > Respects > BruceS > I think the core of this misunderstanding is the definition of what is a "date". The Gambas "Date", is not a "date" in the common sense, but an integer representation of an absolute instant in time. So if you think that a Gambas "Date" is a "date" in the common sense, the behaviour of the different date/time functions becomes automatically not coherent with what you have in mind. Regards, -- Beno?t Minisini. From bagoneo at libero.it Mon Nov 14 15:45:31 2022 From: bagoneo at libero.it (gian) Date: Mon, 14 Nov 2022 15:45:31 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: Il 14/11/22 11:41, Marco Ancillotti ha scritto: > HI all , > > I think I found two bug on gb.web.gui . > > FIRST: > I've create a simple web page with a webtabpanel and a webcombobox > linked by code: > > /Public Sub cbox_Click()// > //? tab.index = cbox.Index// > //End/ > > So when combobox change tabpanel change as well. > Now on webform_open I have a / > / > > /tab.index = 2 > cbox.index = 2/ > > And everythink work as expected... > BUT if I put before the index change a simple webtextbox.text = > "somethink" ti completely hangs. > > > SECOND: > > if I call the same webform from another as form.showmodal() the tabbox > don't refresh the tab selected if I change it > on form opening. > > > I attach an example of bugs. > > gambas is latest daily trunk from ubuntu ppa. > > Thank's in advance , > marco. > Hi Marco, In test.class delete the current code and try this code: Public Sub cbox_Click() tab.Index = cbox.Index End From the project menu first you need to give a "Compile All" Regards Gianluigi From claus.dietrich at freenet.de Mon Nov 14 15:51:51 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Mon, 14 Nov 2022 15:51:51 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: <16722389-a409-68f5-34d4-4cb74c80124c@freenet.de> >You don't understand: > >1) That the Gambas 'Date' datatype is a timestamp, not a local >representation of a date. I didn't refer to Date as datatype. I clearly referred to the Date function and both functions - Date(y,m,d,h,m,s) and CDate(mm/dd/yyyy hh:mm:ss)- deliver the datatype Date but with different results. >2) That a timestamp is the representation of a *absolute physical >instant*. It is not relative like a string representation of a date. Then standard ISO 8601 must be a misunderstanding. >If you can't get with this logic, because you still mix relative >representation of time and absolute representation (as shown by your >point #5) I don't see reasons to have doubts about my logic and to get personal. >just create your own "date" datatype. Or, in other words, >store your dates as strings. > >Gambas will keep its logic, because it's logic, and CDate() won't >change, because it will break programs. As said earlier it is no problem for me. So I will provide you with a change proposal for the CDate documentation. Best regards Claus From bsteers4 at gmail.com Mon Nov 14 16:49:26 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 14 Nov 2022 15:49:26 +0000 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: On Mon, 14 Nov 2022 at 10:44, Marco Ancillotti wrote: > HI all , > > I think I found two bug on gb.web.gui . > > FIRST: > I've create a simple web page with a webtabpanel and a webcombobox linked > by code: > > *Public Sub cbox_Click()* > * tab.index = cbox.Index* > *End* > > So when combobox change tabpanel change as well. > Now on webform_open I have a > > > *tab.index = 2 cbox.index = 2* > By setting the cbox.index without locking it first it will trigger the cbox_Click event so tabs.index gets set twice. Having the cbox_Click() event means you should only have to set cbox.Index and tab.index will update itself so try removing tabs.Index = 2. (I do not think this is the reason for the hang though) > And everythink work as expected... > BUT if I put before the index change a simple webtextbox.text = > "somethink" ti completely hangs. > Yes for some reason the tab cannot set itself in WebForm_Open I fixed it by creating a WebTimer and in WebForm_Open() i start the timer, then set tab.Index in the timer event. This frees the main event loop i believe thus preventing the hang. SECOND: if I call the same webform from another as form.showmodal() the tabbox don't refresh the tab selected if I change it on form opening. I attach an example of bugs. > WebTabPanel not setting in a modal window does seem like a bug but modal windows are different. Attached is a working version using a webtimer. I also made it set the cbox.Index if tab changes and use tab.Refresh in the cbox_Click event to ensure tab shows correctly. It all seems to function/refresh correctly with the minor change to using a timer Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: sviluppowebform-0.0.2.tar.gz Type: application/gzip Size: 13211 bytes Desc: not available URL: From gambas at servinfo.it Mon Nov 14 16:49:53 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Mon, 14 Nov 2022 16:49:53 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: <084a0439-28f5-1ef7-f06d-953d02daacda@servinfo.it> Il 14/11/22 15:45, gian via User ha scritto: > > In test.class delete the current code and try this code: > > Public Sub cbox_Click() > > ? tab.Index = cbox.Index > > End Removing the code from webform_open () obviously works but the bugs remain .... You get the same code I have already reported as working in the comments. From gambas at servinfo.it Mon Nov 14 16:53:16 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Mon, 14 Nov 2022 16:53:16 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: <1a60a15d-876b-3e27-cdf1-feb47d492003@servinfo.it> Il 14/11/22 16:49, Bruce Steers ha scritto: > ... I also found a workaround, if I insert a message.info when changing the tab everything works magically, in my opinion, however, the bug remains. From t.lee.davidson at gmail.com Mon Nov 14 17:57:15 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 14 Nov 2022 11:57:15 -0500 Subject: [Gambas-user] WebPage and external files In-Reply-To: <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> References: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> Message-ID: On 11/13/22 12:35, T Lee Davidson wrote: > On 11/13/22 11:48, Hans Lehmann wrote: >> unfortunately the implementation of this hint does not bring the hoped for access to the content of external files like >> style.css or logo.png. > > Hmmm, that should work. > > Are you certain you are specifying the path correctly? > > If you have a style sheet in the project's Public directory (and not in a subdirectory of that directory), the link tag in the > HEAD of the web page should be similar to: > > > I just tried it with both a style sheet and an image (in a "img" subdirectory), and it does work. Attached is the test project I used based on the example given at: http://gambaswiki.org/wiki/doc/webpage -- Lee -------------- next part -------------- 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 3loL9g6hZWJrole/9rePrzny9fX6+dPn9/vx3Q8feo/3x/7dj99/90O3OV9e2hz7OIlUzZMUlFHG VOVwuBnMmaJlEWPl0MFhPJo1VhmKfGKuqOWHezpAwuBh19etWfvTb/Xzl/OctqSrCYeZEb1Z7vvj 09cXt62dYZHV7/fHON+bl0yig2G9XRtv+eV6bRZrMqXWGHRSXLw2pxnDzL0DT7VWtMuX999M83r5 UUxauXuP1mIzxjHTLFZh5snipHvfPPyJEspYL+jGcG/uLmCW6GG97Y+cA1Ux5dba99+/hPG+nzNJ D0NpHMxUCuYijbz7T3+Ot2md8Pp90yuzMsARnD+OAya5G+SAU0Z0543ZfHPwZhXkcu0uXZ65LQjd ghxtSCOGXYdtejLQV9QIRn/jl4s9khtQ4TOstdZEJc24II3L773Rr25dRIQnlU/1eC47rlJ2Kopb s7vle1mU3w71znnhwfko/3jYR3ELO8yOfXztbqhaWnusiREpI60UQD5f+OkRned9WrO2dfhCz65Y Uqr827fDWjevzCOI7nXdtlR8/ryntv7ysr1+eH37u7/5+/8iVW6P91/++OXXP759//LHf/6XYxS3 bVQui6dMQy4JQGgmFJcXvh+laSwwwHAilZTXM/AnaJoTLBCCVWF7jf2wL1/nwmpDVJlDDJtVCJtM A1rTt/v9NbG94ev9HjkCehSlkJlZMQeq7+qe2S/WyjKzcvbtgtaykgDctAQxdjEY2KoMya1v71+/ GrbLS4h78YRdllvH4yJp29p+HoSyaoWEpcgqsZmj5tK2p2RZmXKBDD/OWSmS0PR+iyC1f/5833ed s6yyanopq9xW8okHrp/9lt5QlivQpSergGSg/lU7/o2d38T/y9oQXfIqV7EE8AG/CKPGYdxqBmCg 0xeQdaV2QJqbiw5NetGw8kbUkiUNAD1SYdbBxLI+a4qebM4Js0pCjWCqEBHVwJVg8SijPBaAruzl LNsdV8elv93xPWgDw/K3BBUf7vYRiMAVet9iRp0eLlEwlvW+CUtxlKnDlobZbJHy3z5eUysoEqTW 594+h7bmULgVZooe/vXTLyDefvrP+nY9ld6vnAateO39/fMv89z3kS+317/+m59+3v85Z+y0MkcY B2xkZVI2ppudtQXlvo9SBtpkVB40Q8mepL+W7qsgoiqGvX33+vOvOU6bXjWLeiqJgyQ1jYRsa73R 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 From t.lee.davidson at gmail.com Mon Nov 14 18:10:06 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 14 Nov 2022 12:10:06 -0500 Subject: [Gambas-user] QR codes in PDF In-Reply-To: <4a45ac2e-6f18-7cac-3eac-ea23b20f0bcf@osnanet.de> References: <4a45ac2e-6f18-7cac-3eac-ea23b20f0bcf@osnanet.de> Message-ID: <69cfe0f3-afc2-4b9f-2113-5531b3071b52@gmail.com> On 11/14/22 06:50, Rolf-Werner Eilert wrote: > Am 14.11.22 um 12:30 schrieb Benoit Minisini: >> Le 14/11/2022 ? 11:47, Rolf-Werner Eilert a ?crit?: >>> Hi folks, >>> >>> For printing confirmational PDFs for participants in a course, I would appreciate using a QR code rather than stamp/signature >>> (which had to be printed + signed + scanned again). >>> >>> As far as I can see, Paint does not include a QR functionality, so my question is, is there any in Gambas yet? >>> >>> Or if not, how have you possibly solved this? >>> >>> Thanks for any hints! >>> >>> Regards >>> Rolf >>> >> >> I use the 'qrencode' program to get a 'png' file with the wanted QR code. >> >> Regards, >> > > Thank you for the tip Benoit, I'll try it. > > Regards > Rolf On my system there is also a C library, libqrencode4, if you'd like to go the external interface route. -- Lee From t.lee.davidson at gmail.com Mon Nov 14 18:30:15 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 14 Nov 2022 12:30:15 -0500 Subject: [Gambas-user] CDate Documentation In-Reply-To: <16722389-a409-68f5-34d4-4cb74c80124c@freenet.de> References: <16722389-a409-68f5-34d4-4cb74c80124c@freenet.de> Message-ID: <0bd191dc-fbf6-d800-c179-d50075d3501d@gmail.com> On 11/14/22 09:51, Claus Dietrich wrote: >> 2) That a timestamp is the representation of a *absolute physical >> instant*.?It?is?not?relative?like?a?string?representation?of?a?date. > > Then?standard?ISO?8601?must?be?a?misunderstanding. Unless I missed it, ISO 8601 does not even mention, "timestamp". It covers, instead, the format of *string* representation of dates and times. -- Lee From benoit.minisini at gambas-basic.org Mon Nov 14 18:56:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 14 Nov 2022 18:56:42 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: <16722389-a409-68f5-34d4-4cb74c80124c@freenet.de> References: <16722389-a409-68f5-34d4-4cb74c80124c@freenet.de> Message-ID: Le 14/11/2022 ? 15:51, Claus Dietrich a ?crit?: >> You don't understand: >> >> 1) That the Gambas 'Date' datatype is a timestamp, not a local >> representation of a date. > > I didn't refer to Date as datatype. I clearly referred to the Date > function and both functions > - Date(y,m,d,h,m,s) and CDate(mm/dd/yyyy hh:mm:ss)- > deliver the datatype Date but with different results. > >> 2) That a timestamp is the representation of a *absolute physical >> instant*. It is not relative like a string representation of a date. > > Then standard ISO 8601 must be a misunderstanding. ISO 8601 tries to represent timestamp with the usual human "date as a string" representation - as soon as the timezone is specified of course. It works only by using Gregorian calendar. > >> If you can't get with this logic, because you still mix relative >> representation of time and absolute representation (as shown by your >> point #5) > > I don't see reasons to have doubts about my logic and to get personal. Sorry, I didn't want to be personal at all. I just try to untie the problem where we both use the same words with different meanings, which won't lead the discussion anywhere. This is why I talked about point #5: it seems that you think Gambas understands in some way the usual concept of date. But Gambas doesn't. It does not store things like day, month, year... It only manipulates timestamp, i.e. absolute time instants. Maybe if "Date" datatype and "CDate" functions had been named "Timestamp" and "CTimestamp", it would have been more clear? Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 14 19:30:55 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 14 Nov 2022 18:30:55 +0000 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: <1a60a15d-876b-3e27-cdf1-feb47d492003@servinfo.it> References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> <1a60a15d-876b-3e27-cdf1-feb47d492003@servinfo.it> Message-ID: On Mon, 14 Nov 2022 at 15:54, Marco Ancillotti wrote: > Il 14/11/22 16:49, Bruce Steers ha scritto: > > ... > > I also found a workaround, if I insert a message.info when changing the > tab everything works magically, in my opinion, however, the bug remains. > If it is a bug? , it could be a limitation. As much as gb.web.gui tries to mimic gb.gui it's not the same and restricted in some ways. I do not know why but moving setting the combo from the Open() event and into a timer started in Open() seems to fix everything. I tried all manner of different ways to get it all to work in the Open() event but all failed in various ways, mostly the tab view would not update as you say when changing. The difference with my workaround is the WebTimer happens client-side after the code is sent not server-side. I don't understand the exact reason it makes it work but it does. (plus i think more reasonable than calling Message()) I have had a few previous issues with gambas that the problem turned out to be "You should not do that inside an event handler". The answer was to use a timer as I have here instead thus freeing the event handler. That was why i thought of it as a solution to this problem and it worked :) I noticed things like using WebForm_Event() in the main form triggers okay. in the form opened by the main form it does not. There seems to be a few differences with a main window and a sub window in web.gui. Perhaps there is a big difference that causes limitations? Or it's just a bug? ;) Benoit of course is the best qualified to know the difference here i think, I'm just good at workarounds :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Nov 14 20:10:35 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 14 Nov 2022 19:10:35 +0000 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> <1a60a15d-876b-3e27-cdf1-feb47d492003@servinfo.it> Message-ID: On Mon, 14 Nov 2022 at 18:30, Bruce Steers wrote: > > > On Mon, 14 Nov 2022 at 15:54, Marco Ancillotti wrote: > >> Il 14/11/22 16:49, Bruce Steers ha scritto: >> > ... >> >> I also found a workaround, if I insert a message.info when changing the >> tab everything works magically, in my opinion, however, the bug remains. >> > > If it is a bug? , it could be a limitation. > As much as gb.web.gui tries to mimic gb.gui it's not the same and > restricted in some ways. > > I do not know why but moving setting the combo from the Open() event and > into a timer started in Open() seems to fix everything. > > I tried all manner of different ways to get it all to work in the Open() > event but all failed in various ways, mostly the tab view would not update > as you say when changing. > > The difference with my workaround is the WebTimer happens client-side > after the code is sent not server-side. I don't understand the exact reason > it makes it work but it does. (plus i think more reasonable than calling > Message()) > > I have had a few previous issues with gambas that the problem turned out > to be "You should not do that inside an event handler". The answer was to > use a timer as I have here instead thus freeing the event handler. That > was why i thought of it as a solution to this problem and it worked :) > > > I noticed things like using WebForm_Event() in the main form triggers > okay. in the form opened by the main form it does not. > There seems to be a few differences with a main window and a sub window in > web.gui. > Perhaps there is a big difference that causes limitations? > > Or it's just a bug? ;) > > Benoit of course is the best qualified to know the difference here i > think, I'm just good at workarounds :) > Pretty sure it's a bug in WebTabPanel after all i said there i changed the other form to be the Startup class and when that was the main form It still hangs. changing cbox.Index did not hang but tab.Index did. I think it is because the tabs have not initialized properly before you set the text box items. The following code also fixes it by setting index to all tabs before you set the text box strings... Public Sub WebForm_Open() ' Run through the tabs to initialize them For c As Integer = tab.Count - 1 DownTo 0 tab.Index = c Next ' nothing fails now :) cbox.Index = 2 T1.Text = "CIAO1" T2.Text = "CIAO2" T3.Text = "CIAO3" End Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Mon Nov 14 22:45:51 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Mon, 14 Nov 2022 22:45:51 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: <8645c1df-2fa9-660d-a7a3-71caac38b8fe@freenet.de> >This is why I talked about point #5: it seems that you think Gambas >understands in some way the usual concept of date. But Gambas doesn't. >It does not store things like day, month, year... It only manipulates >timestamp, i.e. absolute time instants. >Maybe if "Date" datatype and "CDate" functions had been named >"Timestamp" and "CTimestamp", it would have been more clear? I am aware of the details of the datatype Date including how data are stored and I also don't mix up things. The example in #5 is just a real practical example of a timestamp with UTC notation represented by a string and communicated over the Internet. The term timestamp refers to a certain event and doesn't have to be absolute. The Gambas datatype Date just represents an absolute value for a particular point of time and CDate delivers such a value against a certain input argument. That's a different thing and regrettably the result is only consistent and usable as timestamp if the input argument is exactly the current local date and time. This hardly makes sense to me I am wondering about the intended practical use of CDate. Nevertheless, the argument of maintaining compatibility is fully accepted. Best regards Claus From chrisml at deganius.de Mon Nov 14 23:29:19 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Mon, 14 Nov 2022 23:29:19 +0100 Subject: [Gambas-user] =?utf-8?q?Quoting_and_Threads_=E2=80=93_was=3A_CDa?= =?utf-8?q?te_Documentation?= In-Reply-To: <8645c1df-2fa9-660d-a7a3-71caac38b8fe@freenet.de> References: <8645c1df-2fa9-660d-a7a3-71caac38b8fe@freenet.de> Message-ID: Am 14.11.22 um 22:45 schrieb Claus Dietrich: >> This is why I talked about point #5: it seems that you think Gambas >> understands in some way the usual concept of date. But Gambas doesn't. >> It does not store things like day, month, year... It only manipulates >> timestamp, i.e. absolute time instants. >> Maybe if "Date" datatype and "CDate" functions had been named >> "Timestamp" and "CTimestamp", it would have been more clear? > > I am aware of the details of the datatype Date including > how data are stored and I also don't mix up things. The example > in #5 is just a real practical example of a timestamp with UTC > notation represented by a string and communicated over the Internet. When you quote, can you please specify who you are quoting and when the quote is from? Like I did here: "Am 14.11.22 um 22:45 schrieb Claus Dietrich:" Otherwise it is difficult to follow the discussion. Also please reply to a mail you are quoting instead of creating a new one with the same topic and pasting the quote inside the text. AFAICS you started four different threads with the same topic "CDate Documentation" by writing a new mail with the same topic. When you reply instead, your email program creates an "In-Reply-To" header that allows different clients to sort your reply to the correct place in the thread. Thank you! Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From benoit.minisini at gambas-basic.org Tue Nov 15 02:15:20 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 15 Nov 2022 02:15:20 +0100 Subject: [Gambas-user] Request property for gd.db.Result mode In-Reply-To: <97511746-520d-39e5-f3fa-a37936dcc7a3@gmail.com> References: <97511746-520d-39e5-f3fa-a37936dcc7a3@gmail.com> Message-ID: <8b7398ff-bc03-15d1-ca1b-cf6e5f7654a8@gambas-basic.org> Le 14/11/2022 ? 05:20, BB a ?crit?: > Benoit, > > Would it be possible that you could add a (readonly) property to the > Result class to indicate the mode of that result? > > I am passing some result objects between several classes in a project > and sometimes they are updateable and sometimes not (on purpose). At the > moment all one of these classes can do is to try to update the result > and if it gets an error then re-read the result in a updateable mode and > then do the update. This is extremely messy and requires up to three > accesses to the database. > > I have had a look at the CResult.c class but the level of C is well > beyond my abilities. > > > tia > > bruce > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- If I add a "ReadOnly" or "Editable" boolean property, that tells if you can modify the Result contents, will it fit? -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 15 02:18:32 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 11:48:32 +1030 Subject: [Gambas-user] Request property for gd.db.Result mode In-Reply-To: <8b7398ff-bc03-15d1-ca1b-cf6e5f7654a8@gambas-basic.org> References: <97511746-520d-39e5-f3fa-a37936dcc7a3@gmail.com> <8b7398ff-bc03-15d1-ca1b-cf6e5f7654a8@gambas-basic.org> Message-ID: <560a189e-71a2-28d5-09f1-1ff51f9d1ef3@gmail.com> On 15/11/22 11:45 am, Benoit Minisini wrote: > Le 14/11/2022 ? 05:20, BB a ?crit?: >> Benoit, >> >> Would it be possible that you could add a (readonly) property to the >> Result class to indicate the mode of that result? >> >> I am passing some result objects between several classes in a project >> and sometimes they are updateable and sometimes not (on purpose). At >> the moment all one of these classes can do is to try to update the >> result and if it gets an error then re-read the result in a >> updateable mode and then do the update. This is extremely messy and >> requires up to three accesses to the database. >> >> I have had a look at the CResult.c class but the level of C is well >> beyond my abilities. >> >> >> tia >> >> bruce >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > If I add a "ReadOnly" or "Editable" boolean property, that tells if > you can modify the Result contents, will it fit? > That would be fine. I think? "ReadOnly" would be more consistent with general Gambas. From jussi.lahtinen at gmail.com Tue Nov 15 03:06:24 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 15 Nov 2022 04:06:24 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: > > If you want the timezone in use, just use 'Val()' then. Leave 'CDate()' >> alone. I don't see why it is a problem. >> > > Yes, I don't use CDate at all, but still the problem occurs when switching > from summer time to winter time. > Let's say I have a date variable, which contains my chosen date "something 12:00", which internally (IE in UTC) is "something 10:00" (in reality of course as float). Now suddenly "timezone changes" and instead of +2, becomes +1. IE still internally "something 10:00", but shown is "something 11:00". IE the shown is *not* the date I have chosen! I could run my program as "TZ=UTC ./myprogram" to avoid that, but then I would not have the correct output from Time(), etc functions. Or alternatively a lot of similar problems, if I do equivalent in Gambas (IE use only and show only the internal presentation forced to be "something 12:00"). If there would be let's say LocalDate datatype which would not have timezone at all, then "something 12:00" would always be shown "something 12:00" independently of timezone and internally it could be float as well. Of course it would not have much sense if transferred as float over internet, without data about the timezone. But I see this as very trivial problem, just use a string instead. However, how to fix the current problem? I'm out of ideas. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 15 03:38:40 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 13:08:40 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: @ everyone Just in case everyone is cooling down, what's this? Public Sub Main() Dim LunchDate As Date LunchDate = Date(2023, 5, 1, 12, 30, 0) Print Format(LunchDate, "ddd d mmm yy hh:nn t") End Outputs: *Mon 1 May 23 12:30 ACDT* Here in South Aus it is currently late spring and daylight savings is in use. The TZ abbrev is ACDT. But the 1st of May next year is NOT daylight saving time. It should print IMO *Mon 1 May 23 12:30 ACST* ? b > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Nov 15 03:46:18 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 15 Nov 2022 04:46:18 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: This is related to what I have tried to explain several times. The date datatype does not contain timezone information, UTC is always used internally and what is shown is adjusted according to the currently used timezone. Thus you can't get correct results like that. It does not work like a paper calendar. Jussi On Tue, Nov 15, 2022 at 4:39 AM BB wrote: > @ everyone > > Just in case everyone is cooling down, what's this? > > Public Sub Main() > > Dim LunchDate As Date > > LunchDate = Date(2023, 5, 1, 12, 30, 0) > Print Format(LunchDate, "ddd d mmm yy hh:nn t") > > End > > Outputs: *Mon 1 May 23 12:30 ACDT* > > Here in South Aus it is currently late spring and daylight savings is in > use. The TZ abbrev is ACDT. > > But the 1st of May next year is NOT daylight saving time. It should print > IMO *Mon 1 May 23 12:30 ACST* > > ? > > b > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 15 04:39:21 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 14:09:21 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> On 15/11/22 1:16 pm, Jussi Lahtinen wrote: > This is related to what I have tried to explain several times. The > date datatype does not contain timezone information, UTC is always > used internally and what is shown is adjusted according to the > currently used timezone. Thus you can't get correct results like that. > It does not work like a paper calendar. > > > Jussi > > Maybe I am finally starting to see your issue. But the date and time are correct in that they are a specific instance. I have changed the TZ in Env to several places and it always returns the same date and time. What I think here is wrong is that Gambas is just printing the Env["TZ"] value, it is not looking at the date and deciding which *local timezone* to print based on that date. So if you and I agree to meet for lunch in Honolulu at 12:30 America/Hawaii next MayDay to both of us the Date value should be 2492170.52083333 and should not change no matter what the current TZ is on our respective laptops. However when you display that date (in ECT?) it should be 1/May/2023 12:30pm _unless you want to see what date/time it would be in "your time" or "my time" etc._ Is that what you are getting at? AFAIK we dont have a datetime conversion function. Historically, I have used a postgres function to do this like "SELECT '2023-5-1 12:30 HST' AT TIME ZONE 'ACDT';" as it was easier than doing the complex conversion myself. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Nov 15 05:00:52 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 15 Nov 2022 06:00:52 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> Message-ID: > > But the date and time are correct in that they are a specific instance. I > have changed the TZ in Env to several places and it always returns the same > date and time. What I think here is wrong is that Gambas is just printing > the Env["TZ"] value, it is not looking at the date and deciding which *local > timezone* to print based on that date. > > So if you and I agree to meet for lunch in Honolulu at 12:30 > America/Hawaii next MayDay to both of us the Date value should be > 2492170.52083333 and should not change no matter what the current TZ is on > our respective laptops. However when you display that date (in ECT?) it > should be 1/May/2023 12:30pm *unless you want to see what date/time it > would be in "your time" or "my time" etc.* Is that what you are getting > at? > Yes, my timezone does not matter at all, if we plan to meet in Honolulu local time 12:30. Try different TZ values with this code (note that wrongly given values fallback to UTC): Dim hDate1 As Date = CDate("12/24/2024 12:00") ''<-- here it is given as UTC Dim hDate2 As Date = Val("12/24/2024 12:00") ''<-- here it is given as local time Print CStr(hDate1);; Str(hDate1) ''internal presentation & localized presentation accordingly Print CStr(hDate2);; Str(hDate2) Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Tue Nov 15 05:47:27 2022 From: tobs at taboege.de (Tobias Boege) Date: Tue, 15 Nov 2022 06:47:27 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> Message-ID: <20221115044727.GH2393497@T580.localdomain> On Tue, 15 Nov 2022, BB wrote: > > On 15/11/22 1:16 pm, Jussi Lahtinen wrote: > > This is related to what I have tried to explain several times. The date > > datatype does not contain timezone information, UTC is always used > > internally and what is shown is adjusted according to the currently used > > timezone. Thus you can't get correct results like that. It does not work > > like a paper calendar. > > > > > > Jussi > > > > > Maybe I am finally starting to see your issue. > > But the date and time are correct in that they are a specific instance. I > have changed the TZ in Env to several places and it always returns the same > date and time. What I think here is wrong is that Gambas is just printing > the Env["TZ"] value, it is not looking at the date and deciding which *local > timezone* to print based on that date. > > So if you and I agree to meet for lunch in Honolulu at 12:30 America/Hawaii > next MayDay to both of us the Date value should be 2492170.52083333 and > should not change no matter what the current TZ is on our respective > laptops. However when you display that date (in ECT?) it should be > 1/May/2023 12:30pm _unless you want to see what date/time it would be in > "your time" or "my time" etc._ Is that what you are getting at? > > AFAIK we dont have a datetime conversion function. Historically, I have used > a postgres function to do this like "SELECT '2023-5-1 12:30 HST' AT TIME > ZONE 'ACDT';" as it was easier than doing the complex conversion myself. > Calendar date/time is so, so subtle! I for one prefer the Date as it is in Gambas: an instant. Its string representation looks different depending on the timezone it is rendered for and it alone is entirely unsuitable for presenting the date and time of an appointment to humans, as your LunchDate demonstrates. We don't care so much about instants, but about the time relative to the instant our nearest clock shows 00:00 on any given day (or maybe 03:00 twice a year). Creating a Date subjects it to your local timezone in that it is subtracted to yield a UTC timestamp of the instant you meant. Here Gambas is crucially making an assumption (but a documented one) about what you mean when you create a Date: you mean that date in the current timezone. This can be confusing in the commonly cited scenario that you're trying to represent a local appointment in the future that crosses a daylight savings boundary; but I feel like I have wrapped my head around this a while ago and have not been surprised by CDate & co. since then. Calendar date/time should be its own and separate datatype that can deal with all the human subtlety associated with it. If we plan to meet N years from now, who knows if daylight saving will still be a thing? What if the time lords add another leap second [1]? Both are things that will screw up an instant such as Date and they are out of control of my small computer at the moment we make the appointment. They should not screw up a robust implementation of a calendar date/time because most of our appointments do not depend on the leap second or daylight saving (my lunch time certainly doesn't). The Date in Gambas is for storing dumb instances and doing dumb arithmetic on them. That's just right for a basic datatype, IMHO. Best, Tobias [1] https://en.wikipedia.org/wiki/Leap_second -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From adamnt42 at gmail.com Tue Nov 15 06:24:41 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 15:54:41 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: <20221115044727.GH2393497@T580.localdomain> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> <20221115044727.GH2393497@T580.localdomain> Message-ID: <854f8782-7079-26fc-7265-62c386b6c5f9@gmail.com> On 15/11/22 3:17 pm, Tobias Boege via User wrote: > If we plan to meet N years > from now, who knows if daylight saving will still be a thing? What if the > time lords add another leap second [1]? TZData (the website) is quite explicit on this, any "future" *tzdata* that does not exist in the database should be assumed to be the same as the "latest" data for that TZ. IOW the one with "max" in it. So for here, # South Australia # Rule??? NAME??? FROM??? TO??? -??? IN??? ON??? AT??? SAVE??? LETTER/S Rule??? AS??? 1971??? 1985??? -??? Oct??? lastSun??? 2:00s??? 1:00??? D Rule??? AS??? 1986??? only??? -??? Oct??? 19??? 2:00s??? 1:00??? D Rule??? AS??? 1987??? 2007??? -??? Oct??? lastSun??? 2:00s??? 1:00??? D Rule??? AS??? 1972??? only??? -??? Feb??? 27??? 2:00s??? 0??? S Rule??? AS??? 1973??? 1985??? -??? Mar??? Sun>=1??? 2:00s??? 0??? S Rule??? AS??? 1986??? 1990??? -??? Mar??? Sun>=15??? 2:00s??? 0??? S Rule??? AS??? 1991??? only??? -??? Mar??? 3??? 2:00s??? 0??? S Rule??? AS??? 1992??? only??? -??? Mar??? 22??? 2:00s??? 0??? S Rule??? AS??? 1993??? only??? -??? Mar??? 7??? 2:00s??? 0??? S Rule??? AS??? 1994??? only??? -??? Mar??? 20??? 2:00s??? 0??? S Rule??? AS??? 1995??? 2005??? -??? Mar??? lastSun??? 2:00s??? 0??? S Rule??? AS??? 2006??? only??? -??? Apr??? 2??? 2:00s??? 0??? S Rule??? AS??? 2007??? only??? -??? Mar??? lastSun??? 2:00s??? 0??? S Rule??? AS??? 2008??? max??? -??? Apr??? Sun>=1??? 2:00s??? 0??? S Rule??? AS??? 2008??? max??? -??? Oct??? Sun>=1??? 2:00s??? 1:00??? D any date after 2008 should use the 2008 rules. But I agree with everything you are saying, the only "gripe" I have with the entire Gambas "Date" regime is that Format(fDate, "t" or "tt") gave me the wrong local timezone for a specific date. It should return the timezone for that date, not simply the current timezone as seen in the Env[] value. Since Gambas does the subtraction to get its UTC value for the "date" then it should be able to figure out the DST/nonDST variant for a date. In fact it must have already have done that in order to do that subtraction. AFAICS the "dates" are right, *Format* isn't. b (p.s. If my lunch isn't on time to the millisecond then words will be spoken! ?) -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 15 07:12:35 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 16:42:35 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <5042fb34-c28a-a847-934d-cef3a07e1ae5@gmail.com> Message-ID: <1686cb19-66ca-e620-0c58-d95a80dd0cc4@gmail.com> On 15/11/22 2:30 pm, Jussi Lahtinen wrote: > > Dim hDate1 As Date = CDate("12/24/2024 12:00") ''<-- here it is given > as UTC > Dim hDate2 As Date = Val("12/24/2024 12:00") ''<-- here it is given as > local time > > Print CStr(hDate1);; Str(hDate1) ''internal presentation & localized > presentation accordingly > Print CStr(hDate2);; Str(hDate2) > > > Jussi I gave that a try (albeit, slightly differently) over several timezones and everything worked as expected? Dim hDate1 As Date = CDate("12/24/2024 12:00") ''<-- here it is assumed that the string is UTC" Dim hDate2 As Date = Val("24/12/2024 12:00") ''<-- here it is assumed to be a local time ' So whats the values? Print Env["TZ"], CFloat(hdate1), CFloat(hDate2) '' "As expected, they are different" ' Now do some conversions... ' CStr(Date) gives the representation of the date in UTC TZ ' Str(Date) gives the representation of the date in the "current" TZ i.e. Env("TZ") ' Printing the raw date is the same as Str(Date) ' Printing the Formatted raw time gives the converted time and the right TZ Print CStr(hDate1), Str(hDate1), hDate1, "!", Format(hDate1, "hh:nn t") '' "All 4 outputs are as expected" Print CStr(hDate2), Str(hDate2), hDate2, "!", Format(hDate2, "hh:nn t") '' "All 4 ouputs are as expected" Print CStr(CDate(CFloat(hDate1))) '' "UTC As expected" Print (CDate(CFloat(hDate1))) '' "Local As expected" Print CStr(CDate(CStr(hDate1))) '' "UTC As expected" Sample output: HST 2492773.5 2492773.91666667 12/24/2024 12:00:00 24/12/2024 02:00:00 24/12/2024 02:00:00 ! 02:00 HST 12/24/2024 22:00:00 24/12/2024 12:00:00 24/12/2024 12:00:00 ! 12:00 HST 12/24/2024 12:00:00 24/12/2024 02:00:00 12/24/2024 12:00:00 b -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 15 09:21:31 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 15 Nov 2022 09:21:31 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: <9b9d4e3e-4cef-f6fe-40f9-1ee6e76a966a@gambas-basic.org> Le 15/11/2022 ? 03:06, Jussi Lahtinen a ?crit?: > If you want the timezone in use, just use 'Val()' then. Leave > 'CDate()' > alone. I don't see why it is a problem. > > > Yes, I don't use CDate at all, but still the problem occurs when > switching from summer time to winter time. > > > Let's say I have a date variable, which contains my chosen date > "something 12:00", which internally (IE in UTC) is "something 10:00" (in > reality of course as float). No, Gambas "Dates" are not "internally UTC" at all. Again, Gambas "Dates" are not dates, they are timestamp, i.e. *points in time*. > Now suddenly "timezone changes" and instead of +2, becomes +1. IE still > internally "something 10:00", but shown is "something 11:00". > IE the shown is *not* the date I have chosen! Because you think you are storing a date inside the Date datatype, whereas you are not. Here is a similar confusion with strings and charsets. `` Let's say I have a String variable, which contains my chosen character string "Winter is coming", which internally is 87, 105, 110, 116, 101, 114, 32, 105... Now suddenly my local charset changes, and instead of "Windows-1252" becomes "EBCDIC-FR". IE still internally 87, 105, 110..., but shown is "????@??@??????". IE the shown is *not* the character string I have chosen! '' Of course, as you don't store characters in a string, but bytes. Bytes becomes characters through a charset. There is always an implicit charset when Gambas deals with String datatype. UTF-8 or ASCII. And so there is always an implicit timezone when dealing with Date datatype. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Tue Nov 15 09:30:43 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 15 Nov 2022 09:30:43 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> Message-ID: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> Le 15/11/2022 ? 03:38, BB a ?crit?: > @ everyone > > Just in case everyone is cooling down, what's this? > > Public Sub Main() > > Dim LunchDate As Date > > LunchDate = Date(2023, 5, 1, 12, 30, 0) > Print Format(LunchDate, "ddd d mmm yy hh:nn t") > > End > > Outputs: *Mon 1 May 23 12:30 ACDT* > > Here in South Aus it is currently late spring and daylight savings is in > use. The TZ abbrev is ACDT. > > But the 1st of May next year is NOT daylight saving time. It should > print IMO *Mon 1 May 23 12:30 ACST* > > > ? > > b > Because you think Gambas Date datatype stores a date. But it does not. A Gambas Date is a *point in time*. ``LunchDate = Date(2023, 5, 1, 12, 30, 0)'' means: Store in LunchDate the "time point" associated with the specified local date in current timezone. ``Print Format(LunchDate, "ddd d mmm yy hh:nn t")'' means: Get that time point and print the date associated with it in local format using the current timezone. Anyway I don't think there is an API in Linux to know what the timezone is for a specific timestamp (and a specific country). Regards, -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 15 10:27:25 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 15 Nov 2022 19:57:25 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> Message-ID: Now you've got me confused. (Inline) On 15/11/22 7:00 pm, Benoit Minisini wrote: > A Gambas Date is a *point in time*. > > ``LunchDate = Date(2023, 5, 1, 12, 30, 0)'' means: > > Store in LunchDate the "time point" associated with the specified > local date in current timezone. I thought that we had all agreed that the *point in time*was a numerical (float) representation of the parameters converted to a UTC based equivalent. Or is it arbitrary? If it is UTC then how do you do it? From the Env["TZ"] value? From the timezone offset? If so how do you get the -9.5 in winter and -10.5 in summer? Whatever a) the "point in time is correct AFAICS but b) then you must know how to get a timezone in the "active environment". > > ``Print Format(LunchDate, "ddd d mmm yy hh:nn t")'' means: > > Get that time point and print the date associated with it in local > format using the current timezone. > I have no problem with that apart from "t" is not correct within the *timeframe* for that date. IOW, I am totally happy with the way that Dates work but disappointed in the way Format works. I dont want it to change the date or time, just to print/display the correct timezone for the "date" concerned. So where or how does Format() get the timezone information? It appears to me that it is just using the "environment" timezone at the time the project is loaded. But this raises another matter, if I change the Env["TZ"] value on the fly printing the Env["TZ"] value works as expected *but* the Format() function still prints the value in force when the program was started? I would have expected that if I set Env["TZ"]="EET" then format would display that value i.e. Format(Now, "d-mmm-yy hh:nn t") would display (say) "1-May-23 12:30 EET" but it doesn't. It still displays "1-May-23 12:30 ACDT". (When slightly more correctly it should display "1-May-23 12:30 ACST") > Anyway I don't think there is an API in Linux to know what the > timezone is for a specific timestamp (and a specific country). I am having a look through the*tzset, tzname, timezone, daylight* man pages at the moment to see if their is anything there. (I should be working on that massive database conversion, but hey.) [Aside] Oh and thanks for the Result.Editable property it has revealed how many errors I had in my migration code. Also you asked about the partitioned tables, they are giving us a throughput benefit of more than 80%. Batch queries that used to take around 8 minutes now complete in seconds! :-) I am eager to see what happens when we use similar queries from inside Gambas but expect the same benefit. regards b b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Nov 15 16:29:04 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 15 Nov 2022 17:29:04 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <9b9d4e3e-4cef-f6fe-40f9-1ee6e76a966a@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <9b9d4e3e-4cef-f6fe-40f9-1ee6e76a966a@gambas-basic.org> Message-ID: > > > Let's say I have a date variable, which contains my chosen date > > "something 12:00", which internally (IE in UTC) is "something 10:00" > *(in > reality of course as float).* > > No, Gambas "Dates" are not "internally UTC" at all. > > Again, Gambas "Dates" are not dates, they are timestamp, i.e. *points in > time*. > You insist on this point again and again, but I have never made it!!! Please re-read what I actually wrote. The timestamp is in float, but it corresponds to UTC time. > Here is a similar confusion with strings and charsets. > Yeah, and this would make strings quite useless in Gambas. This really is a similar issue to the date datatype. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 15 16:59:19 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 15 Nov 2022 16:59:19 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <9b9d4e3e-4cef-f6fe-40f9-1ee6e76a966a@gambas-basic.org> Message-ID: <680120f8-2e6a-cba3-81e5-3c02f9634e7a@gambas-basic.org> Le 15/11/2022 ? 16:29, Jussi Lahtinen a ?crit?: > > Let's say I have a date variable, which contains my chosen date > > "something 12:00", which internally (IE in UTC) is "something > 10:00" *(in > > reality of course as float).* > > No, Gambas "Dates" are not "internally UTC" at all. > > Again, Gambas "Dates" are not dates, they are timestamp, i.e. > *points in > time*. > > > You insist on this point again and again, but I have never made it!!! That's exactly the problem. > Please re-read what I actually wrote. > The timestamp is in float, but it corresponds to UTC time. > > Here is a similar confusion with strings and charsets. > > > Yeah, and this would make strings quite useless in Gambas. This really > is a similar issue to the date datatype. > > Jussi > After having written thousands of lines of code in Gambas for applications sold to dozen of clients having completely different activities and using it daily with millions of objects, I'm relatively confident that the way strings and dates work in Gambas is perfectly useful and valid. I'm not arguing with you. I'm just trying to explain you how it *actually* works, because you seems to not get it and try to twist the Date datatype in a way that can't work. -- Beno?t Minisini. From jussi.lahtinen at gmail.com Tue Nov 15 17:56:02 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 15 Nov 2022 18:56:02 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <680120f8-2e6a-cba3-81e5-3c02f9634e7a@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <9b9d4e3e-4cef-f6fe-40f9-1ee6e76a966a@gambas-basic.org> <680120f8-2e6a-cba3-81e5-3c02f9634e7a@gambas-basic.org> Message-ID: > ... I'm relatively confident that the way strings and dates work in Gambas > is perfectly useful and valid. > Does the character set spontaneously change twice a year? No, thus Gambas strings *are* useful. Not sure about the date datatype, but maybe it is good enough for most people. However, I think the situation could be improved. Read what Tobias wrote. He gets the problem and his solution is good (new datatype for calendar dates). I'm not arguing with you. I'm just trying to explain you how it > *actually* works, because you seems to not get it and try to twist the > Date datatype in a way that can't work. > You are arguing with me. I know how they work and I'm trying to tell you about the limitations of the design. Instead of listening you claim I don't understand how they work. Your argument against timezoneless date is that they are not usable when sent over the internet, which is not a valid argument as explained already. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Wed Nov 16 02:41:03 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 15 Nov 2022 20:41:03 -0500 Subject: [Gambas-user] WebPage and external files In-Reply-To: References: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> Message-ID: <21737dd1-7a82-e2e7-c470-a54f0bc2cce6@gmail.com> On 11/14/22 11:57, T Lee Davidson wrote: > On 11/13/22 12:35, T Lee Davidson wrote: >> On 11/13/22 11:48, Hans Lehmann wrote: >>> unfortunately the implementation of this hint does not bring the hoped for access to the content of external files like >>> style.css or logo.png. >> >> Hmmm, that should work. >> >> Are you certain you are specifying the path correctly? >> >> If you have a style sheet in the project's Public directory (and not in a subdirectory of that directory), the link tag in the >> HEAD of the web page should be similar to: >> >> >> I just tried it with both a style sheet and an image (in a "img" subdirectory), and it does work. > > Attached is the test project I used based on the example given at: > http://gambaswiki.org/wiki/doc/webpage [I apologize to the members of this list for the lack of context as the other half of this conversation has been sent to me off-list.] That particular project works fine with the IDE's embedded http server. However, it does not work as expected on either Apache or Lighttpd web servers. It appears that the files, linked in the WebPage using <%=Application.Root%>, are provided to the server by the Gambas executable (eg. the path for style.css in the project's Public directory is /webapp.gambas/style.css). This does not work on the web servers, apparently, due to what the executable is providing to the server as hinted at by this browser console error message: The stylesheet http://localhost:8888/~user/webapp.gambas/style.css was not loaded because its MIME type, ?text/html?, is not ?text/css?. Indeed, what the server is receiving is the actual HTML of the page itself as can be seen by the attached pic. I think it is a bug. But, I could be wrong. -- Lee P.S. Hans, the questions you ask me privately are more appropriately posed to this list. In that way, the community can benefit from the discussion and solution. There is no reason for you to contact me off-list. I am not your personal consultant. -------------- next part -------------- A non-text attachment was scrubbed... Name: Screenshot_gambaswebpage.png Type: image/png Size: 67984 bytes Desc: not available URL: From chrisml at deganius.de Wed Nov 16 13:14:59 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 16 Nov 2022 13:14:59 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> Message-ID: <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> Am 15.11.22 um 10:27 schrieb BB: > I thought that we had all agreed that the *point in time*was a numerical > (float) representation of the parameters converted to a UTC based > equivalent. Or is it arbitrary? No. It is not converted to UTC or local time in any way. The datatype 'Date' in Gambas is a point in time, aka just a number. It's for example 2022.11.16 13:10:00 stored as floating point. There's no additional information at all. So there is no further information about a timezone or whether it is UTC. Your program must decide whether it considers it being UTC or any local time. I think that's pretty simple and ingenious, by the way. Alles Gute Christof Thalhofer -- Dies ist keine Signatur From jussi.lahtinen at gmail.com Wed Nov 16 14:52:15 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 16 Nov 2022 15:52:15 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> Message-ID: > > No. It is not converted to UTC or local time in any way. > > The datatype 'Date' in Gambas is a point in time, aka just a number. > It's for example 2022.11.16 13:10:00 stored as floating point. > > There's no additional information at all. So there is no further > information about a timezone or whether it is UTC. > > Your program must decide whether it considers it being UTC or any local > time. I think that's pretty simple and ingenious, by the way. > That is not true. The float value corresponds to the date in UTC. If you do not believe me, then test it. Give local date (in area of UTC+X, where X<>0) and you will see that the date without localization is printed as the date-X. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Wed Nov 16 15:06:42 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 16 Nov 2022 16:06:42 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> Message-ID: "Internally, the date is stored in UTC." - Beno?t Minisini Sun, Oct 27, 2019, 8:26 PM Jussi On Wed, Nov 16, 2022 at 3:52 PM Jussi Lahtinen wrote: > No. It is not converted to UTC or local time in any way. >> >> The datatype 'Date' in Gambas is a point in time, aka just a number. >> It's for example 2022.11.16 13:10:00 stored as floating point. >> >> There's no additional information at all. So there is no further >> information about a timezone or whether it is UTC. >> >> Your program must decide whether it considers it being UTC or any local >> time. I think that's pretty simple and ingenious, by the way. >> > > That is not true. > The float value corresponds to the date in UTC. If you do not believe me, > then test it. Give local date (in area of UTC+X, where X<>0) and you will > see that the date without localization is printed as the date-X. > > Jussi > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 16 20:27:56 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 16 Nov 2022 20:27:56 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> Message-ID: <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Le 16/11/2022 ? 15:06, Jussi Lahtinen a ?crit?: > > "Internally, the date is stored in UTC." > > > - Beno?t Minisini Sun, Oct 27, 2019, 8:26 PM > > It's actually not really true, it's a simplification. To be exact, a Date instant is stored as a duration between the instant and another pre-defined instant in the past. That duration is stored as a number of days (all supposed to be equal to 86,400 seconds, which is an approximation), and a number of microseconds. The pre-defined instant is a specific day in the past (see it as as a number of days backwards from the first day of the Gregorian calendar), and at midnight, in UTC. This is why I summarized that by "the date is stored in UTC.". But that pre-defined instant could have been anything else. Regards, -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Nov 16 22:44:58 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 16 Nov 2022 23:44:58 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: > > This is why I summarized that by "the date is stored in UTC.". > Yes, and others are criticized for using the same shorthand. Everyone knows it is actually a numerical value. We get that. Doesn't change a thing I have said. But that pre-defined instant could have been anything else. > Yes, could have been, but it is *not* something else. And if aunt had balls, then they would be uncle. However, I think we should focus on how things actually are. IE date is numerical value corresponding to UTC. And the majority of the relevant functions use localization as well as your system clock, which makes this not so handy. Are we finally at the same page? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 16 22:55:19 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 16 Nov 2022 22:55:19 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: Le 16/11/2022 ? 22:44, Jussi Lahtinen a ?crit?: > This is why I summarized that by "the date is stored in UTC.". > > > Yes, and others are criticized for using the same shorthand. > Everyone knows it is actually a numerical value. We get that. Doesn't > change a thing I have said. > > But that pre-defined instant could have been anything else. > > > Yes, could have been, but it is *not* something else. And if aunt had > balls, then they would be uncle. However, I think we should focus on how > things actually are. > IE date is numerical value corresponding to UTC. And the majority of the > relevant functions use localization as well as your system clock, which > makes this not so handy. > > Are we finally at the same page? > > > Jussi > If you want, I can store the date with a random origin in the day that changes at each program startup. It will change nothing. Everything will continue to work exactly the same way. And then I will be able to remove the sentence "the date is stored in UTC" from the wiki. Got it? -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Nov 16 22:58:29 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 16 Nov 2022 23:58:29 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <51eb45a5-7adc-c78c-97e1-3ba687ad05f0@gambas-basic.org> <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: > > If you want, I can store the date with a random origin in the day that > changes at each program startup. > > It will change nothing. > > Everything will continue to work exactly the same way. > > And then I will be able to remove the sentence "the date is stored in > UTC" from the wiki. > > Got it? > And how would that work with the timestamps sent over the Internet? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 16 23:02:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 16 Nov 2022 23:02:39 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: Le 16/11/2022 ? 22:58, Jussi Lahtinen a ?crit?: > If you want, I can store the date with a random origin in the day that > changes at each program startup. > > It will change nothing. > > Everything will continue to work exactly the same way. > > And then I will be able to remove the sentence "the date is stored in > UTC" from the wiki. > > Got it? > > > And how would that work with the timestamps sent over the Internet? > > > Jussi > The internal representation of any datatype is never sent over the Internet. -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Nov 16 23:04:35 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 17 Nov 2022 00:04:35 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: > The internal representation of any datatype is never sent over the > Internet. > *"A timestamp, which the Gambas 'Date' datatype is, must represent the same physical moment, whereever the program using it runs, so that it can be freely moved over the Internet."* - Beno?t Minisini. Your words, not mine. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 16 23:23:34 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 16 Nov 2022 23:23:34 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> Le 16/11/2022 ? 23:04, Jussi Lahtinen a ?crit?: > > The internal representation of any datatype is never sent over the > Internet. > > > /"A timestamp, which the Gambas 'Date' datatype is, must represent the > same physical moment, whereever the program using it runs, so that it > can be freely moved over the Internet." > / > > ?- Beno?t Minisini. > > Your words, not mine. > > > Jussi > Yes, but now, if the origin changes at each run, the Gambas 'Date' datatype is not an universal timestamp anymore. -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Nov 16 23:25:28 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 17 Nov 2022 00:25:28 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> References: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> Message-ID: > > Yes, but now, if the origin changes at each run, the Gambas 'Date' > datatype is not an universal timestamp anymore. > Yeah, no shit. You made that idea and claimed it doesn't change anything. Are you drunk? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Nov 16 23:40:38 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 17 Nov 2022 09:10:38 +1030 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <94ca88bc-8184-c111-621c-151aa34b679a@gambas-basic.org> <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> Message-ID: <9ad266bb-3436-326b-ca2e-2c7fca92f716@gmail.com> Personally, I don't care if it is stored internally as the number of beans in two small pots in a grass hut on the Plains of Zebulon on a planet somewhere near Betelgeuse. On 947265.277254, Jussi Lahtinen and others wrote: > A lot of stuff that is generally getting us nowhere. My only issue is that when the keeper of the grass hut tells me the datetime he demands to know the current timezone on my laptop and does some magic incantations that changes his response accordingly. What he doesn't do is figure out what the current**time *frame* of the program I am running at the exact moment I ask. For example, I am currently in a timezone (if being "in" a timezone is possible) of ACDT (otherwise "Adelaide summer time") and a time*frame* of "Australia/Adelaide". See the difference. Getting back to lunch, if there are 2492170 and 8333333 beans in the pots respectively, then he should work out that 2492170/0833333 is not a "summer time" in "Australia/Adelaide" and respond "oh that is 12:30 on the 1st May, 2023 *ACST*". It's why many other programs eschew returning the timeframe in formatted displays of "moments". I have found a promising R library that might have routines suitable for converting timeframes to timezones for a "moment", but I haven't been able to obtain the source code at the moment. b || -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Nov 17 02:13:59 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 17 Nov 2022 02:13:59 +0100 Subject: [Gambas-user] Syntax of dates represented in a string Message-ID: <35ac952d-7c9a-f460-cdaa-717825f2155b@gambas-basic.org> Hi, To fix the difficulties encountered by Claus and others, I added in the last commit the ability to explicitly specify the timezone in a date inside a string. For example (in english format): "11/17/2022 01:41 UTC+1" It should help those that don't get the difference between functions that use UTC implicitly, and functions that use local timezone implicitly. With that, in French localization (UTC+1), you will have: Print CDate("11/17/2022 01:41") 17/11/2022 02:41 Print Val("17/11/2022 01:41") 17/11/2022 01:41 Print CDate("11/17/2022 01:41 UTC") 17/11/2022 02:41 Print Val("17/11/2022 01:41 UTC") 17/11/2022 02:41 Print CDate("11/17/2022 01:41 UTC+1") 17/11/2022 01:41 Print Val("17/11/2022 01:41 UTC+1") 17/11/2022 01:41 To understand the printed result, remember that 'Print' internally uses 'Str()', that converts the date to a string using the current localization and the local timezone. Note that you can use "GMT" instead of "UTC", and there is still no function to format a date at a specific timezone other than the local one. The other problem raised by Bruce (BB ) is another beast: in a few words, how to know which timezone must be used at a specific date. The data exists, but apparently the C library does not have any API for that. Moreover, the problem can be circular: to define the specific date, you may need the timezone you are looking for. So I don't think there is a solution for that at the moment. Regards, -- Beno?t Minisini. From adamnt42 at gmail.com Thu Nov 17 07:59:39 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 17 Nov 2022 17:29:39 +1030 Subject: [Gambas-user] Syntax of dates represented in a string In-Reply-To: <35ac952d-7c9a-f460-cdaa-717825f2155b@gambas-basic.org> References: <35ac952d-7c9a-f460-cdaa-717825f2155b@gambas-basic.org> Message-ID: <2fc29593-762b-de98-d311-112bed52da53@gmail.com> On 17/11/22 11:43 am, Benoit Minisini wrote: > The other problem raised by Bruce (BB ) is another > beast: in a few words, how to know which timezone must be used at a > specific date. > > The data exists, but apparently the C library does not have any API > for that. > > Moreover, the problem can be circular: to define the specific date, > you may need the timezone you are looking for. > > So I don't think there is a solution for that at the moment. I now believe that you are fully correct. Although the libc "tm" struct contains "tm_isdst" which supposedly can indicate whether a date/time is or is not in dst, it is never set as specified in all the documentation. All the libraries I have looked at so far depend on this struct. All that is ever returned in this integer is the same value that went in on the call. There is a plethora of complaints about this across the internet with no satisfactory reply. So much for linux! (or was it that Kernighan et al had never heard of daylight savings?) Bah! b From chrisml at deganius.de Thu Nov 17 09:43:38 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 17 Nov 2022 09:43:38 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> Message-ID: Am 16.11.22 um 23:25 schrieb Jussi Lahtinen: > Yeah, no shit. You made that idea and claimed it doesn't change anything. > Are you drunk? Can you please remain friendly? That's not the kind of behavior we need here. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From claus.dietrich at freenet.de Thu Nov 17 13:54:21 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Thu, 17 Nov 2022 13:54:21 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: On Thu Nov 17 09:43:38 Christof Thalhofer wrote: >Can you please remain friendly? That's not the kind of behavior we need >here. Thanks Christof. The subject was raised by me and you may have noticed, that I stepped out of this thread. Although the actual subject is rather trivial, people are are easily carried away and come up with arguments, which are barely related to the actual subject. While this may be regarded as rather normal for forums it is much more frustrating to see, that people are occasionally offended - often for shallow reasons or because of an obvious misunderstanding. So far I didn't catch up any reason to change my position with regard to the usability of the CDate function but I decided to live with it instead of further stomach ache. Best regards Claus From benoit.minisini at gambas-basic.org Thu Nov 17 14:44:12 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 17 Nov 2022 14:44:12 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: Message-ID: Le 17/11/2022 ? 13:54, Claus Dietrich a ?crit?: > So far I didn't catch up any reason to change my position > with regard to the usability of the CDate function but I > decided to live with it instead of further stomach ache. > > Best regards > Claus > Actually you should never use the CDate() function. Because it only and arbitrarily interprets strings as UTC dates in the american format. The only case I would see it useful is when storing and retrieving UTC dates from configuration files. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Thu Nov 17 14:47:24 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 17 Nov 2022 14:47:24 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: Message-ID: <9058b8b4-dda6-15ba-5464-2d849a839e87@gambas-basic.org> Le 17/11/2022 ? 14:44, Benoit Minisini a ?crit?: > Le 17/11/2022 ? 13:54, Claus Dietrich a ?crit?: >> So far I didn't catch up any reason to change my position >> with regard to the usability of the CDate function but I >> decided to live with it instead of further stomach ache. >> >> Best regards >> Claus >> > > Actually you should never use the CDate() function. Because it only and > arbitrarily interprets strings as UTC dates in the american format. > > The only case I would see it useful is when storing and retrieving UTC > dates from configuration files. > > Regards, > By the way, does the last commit help you with dealing with CDate()? -- Beno?t Minisini. From jussi.lahtinen at gmail.com Thu Nov 17 17:13:14 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 17 Nov 2022 18:13:14 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> Message-ID: > > Can you please remain friendly? That's not the kind of behavior we need > here. > Oh, like Benoit? It was an honest question for a man who argue against his own arguments. It just seems to be all wrong when *I* say the same things. Re-read the thread. Jussi > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at cd-bahia.com Thu Nov 17 19:25:41 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Thu, 17 Nov 2022 19:25:41 +0100 Subject: [Gambas-user] Problem with String[] Message-ID: Hi all, I have defined this: P/ublic arorder As New String[]// //Public arorderb As New String[]// / and make this in a subroutine: /??? arorder.Add(fld)// //??? arorderb.Add(ada) /// /fld/ contains a field name, /ada/ = "ASC" the first assignment with /aroder/ succeeds, the second with /arorderb/ makes an error : null object I can't see any difference between these objects, and they are only changed in? this routine (so far). I am thankful for any help, allt he best, Dag JNJ -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Nov 17 21:42:25 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 17 Nov 2022 21:42:25 +0100 Subject: [Gambas-user] Little bug in Format$ In-Reply-To: References: Message-ID: <37f4c51a-2b10-f1ce-e82e-6d69207d2462@gambas-basic.org> Le 09/11/2022 ? 16:57, martin p cristia a ?crit?: > Format(123456789,"0.000000E+000") = "1,234568E+008" wich is correct, but > > Format(0.000123,"0.000000E+000") = "1,230000E0-4" wich leads to bad > re-conversion with CSingle() > > it shoud be "1,230000E-004" > It should be fixed by commit https://gitlab.com/gambas/gambas/-/commit/5621991e1f3b805e17da97a572f5c9bbe03dbed3. Regards, -- Beno?t Minisini. From chrisml at deganius.de Thu Nov 17 21:54:42 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 17 Nov 2022 21:54:42 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> Message-ID: <01a65806-dfef-6bdc-7c73-567cfd973f18@deganius.de> Am 17.11.22 um 17:13 schrieb Jussi Lahtinen: > Re-read the thread. No. It was enough to read your mail and I am not the kindergarten teacher here. :-) Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From jussi.lahtinen at gmail.com Thu Nov 17 22:02:35 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 17 Nov 2022 23:02:35 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: <01a65806-dfef-6bdc-7c73-567cfd973f18@deganius.de> References: <82a48d95-5f6f-ece5-a43d-8741ca3c8d28@gambas-basic.org> <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> <01a65806-dfef-6bdc-7c73-567cfd973f18@deganius.de> Message-ID: > > No. It was enough to read your mail and I am not the kindergarten > teacher here. > Sure? You sound like one. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Thu Nov 17 22:33:36 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 17 Nov 2022 22:33:36 +0100 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: <698c5d59-469d-fda8-2172-6b64b45db6e7@deganius.de> <6d2e37f9-267c-f533-e837-8e008937509e@gambas-basic.org> <78a2c202-5fcf-fcf3-d645-65816913701f@gambas-basic.org> <01a65806-dfef-6bdc-7c73-567cfd973f18@deganius.de> Message-ID: <2cceea0c-4d98-7a51-8d78-25dfff824265@deganius.de> Am 17.11.22 um 22:02 schrieb Jussi Lahtinen: >> No. It was enough to read your mail and I am not the kindergarten >> teacher here. > > Sure? You sound like one. Oh! ... Yes, my little one ... and be nice to the others now, dear little Jussi, or I'll tell your mom. ;-) Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From benoit.minisini at gambas-basic.org Fri Nov 18 01:38:58 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 18 Nov 2022 01:38:58 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: Le 14/11/2022 ? 11:41, Marco Ancillotti a ?crit?: > HI all , > > I think I found two bug on gb.web.gui . > > FIRST: > I've create a simple web page with a webtabpanel and a webcombobox > linked by code: > > /Public Sub cbox_Click()// > //? tab.index = cbox.Index// > //End/ > > So when combobox change tabpanel change as well. > Now on webform_open I have a / > / > > /tab.index = 2 > cbox.index = 2/ > > And everythink work as expected... > BUT if I put before the index change a simple webtextbox.text = > "somethink" ti completely hangs. > > > SECOND: > > if I call the same webform from another as form.showmodal() the tabbox > don't refresh the tab selected if I change it > on form opening. > > > I attach an example of bugs. > > gambas is latest daily trunk from ubuntu ppa. > > Thank's in advance , > marco. > Hi, The two bugs should have been fixed by commit https://gitlab.com/gambas/gambas/-/commit/d8831c7bbc49f1a914e19752d9dcf9afb6a88c79. Regards, -- Beno?t Minisini. From adamnt42 at gmail.com Fri Nov 18 02:38:10 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 12:08:10 +1030 Subject: [Gambas-user] IDE suggestion/request Message-ID: <5f2b7267-9978-6d1f-a9ae-5958522458e4@gmail.com> Would you mind adding the following generic editors to the list that the IDE checks whether they are installed. * Geany * CodeBlocks (I know at least one other mailing list user uses it) and perhaps * Tea regards bruce (perhaps it's time to move towards one of those "Default Applications" popup configurators type of thing?) -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Nov 18 02:48:07 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 12:18:07 +1030 Subject: [Gambas-user] EDITOR environment variable In-Reply-To: References: <532e1ea9-520d-800b-b747-c86b0337c6e4@libero.it> <0e58a7a2-e9b1-abf5-da63-ca31a5a35dc5@gmail.com> <62024b60-a0c3-8302-db56-ee0cea918d08@libero.it> <29c47ff6-d92a-65f6-1ab3-744b6d7d4f27@gambas-basic.org> Message-ID: I know this is old, but as far as I know it doesn't appear if the project isn't version controlled. b On 30/10/22 2:29 am, gian via User wrote: > Il 29/10/22 14:16, Benoit Minisini ha scritto: >> Le 28/10/2022 ? 23:17, gian via User a ?crit?: >>> Il 28/10/22 15:28, Benoit Minisini ha scritto: >>>> The $EDITOR environment variable is used only when the IDE run >>>> specific git / svn commands that requires it. >>>> >>>> Maybe I should find a way to workaround this requirement... >>>> >>>> -- >>>> Beno?t Minisini. >>> >>> Hi Benoit, >>> >>> OK, stable Gambas (compiled on Mint 21) no longer asks to set an >>> environment variable, no more problems, everything works fine. >>> >>> Although I didn't understand how you did it.... Thank you very much >>> >>> Regards >>> >>> Gianluigi >>> >> >> I did nothing yet. >> > > Hi Benoit, > > I don't know what to say, I installed both Mint 21 and Ubuntu 22.10 on > VBox, installed both stable and master and nothing happened. > > No request for $EDITOR. > > Yet on both systems the required editors are not installed and the > environment variable :-\ > > Regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From adamnt42 at gmail.com Fri Nov 18 09:50:22 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 19:20:22 +1030 Subject: [Gambas-user] Starting a new process - but not as a child Message-ID: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> This one has got me beat. In a non-gui project: (let's call it the "megaparser") ??? I'm processing a large bunch of text files, during which a status is decided on each ones fundamental validity. ??? If it looks OK then I want to start a new program/project (the "fileparser") that has a GUI that I want to, *at MY leisure*, look at how it is going and what to do about it. ??? So far so fine, the megaparser shells the fileparser quite nicely without a wait, so I get what I expected - a gazillion forms each displaying the progress and any problems it's having. Fine. So, here's my problem... When the megaparser has finished it wants to exit, but there are all these child processes running and I want them to keep going. ? I'll try again. I have about 30,000 text (actually ahem "xml") files that I need to firstly check that each one looks "reasonable" and if so start a processing job for that file. No, thats still not clear. The megaparser looks at each of the files and determines if it is valid xml if so then it starts a new process to parse that file and update the database. That new job needs to be *async**hronous* as the megaparser continues on and creates more and more parser jobs, no problem yet. *BUT* if the meagaparser fails and crashes as it is frequently doing (which is not a Gambas issue, it's normally a result of the rotten XML file being totally or partially unreadable) the megaparser crashes and I lose all the spawned jobs. I have been going through this repetitive joke for 8 days now so I am screaming for help. *Is there any way to spawn a new process that is **_not_**a child of the running gambas process?* Going slightly bonkers here bruxe, or brice or wahayetever my name is. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at servinfo.it Fri Nov 18 10:38:00 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Fri, 18 Nov 2022 10:38:00 +0100 Subject: [Gambas-user] Two bugs on gb.web.gui In-Reply-To: References: <66d832fc-be60-e28d-6e72-df0c8f300685@servinfo.it> Message-ID: <526d462a-b35f-34e9-a976-e29bb1f71ce5@servinfo.it> Il 18/11/22 01:38, Benoit Minisini ha scritto: > Hi, > > The two bugs should have been fixed by commit > https://gitlab.com/gambas/gambas/-/commit/d8831c7bbc49f1a914e19752d9dcf9afb6a88c79. > ---> TOP !! <--- Thank's a lot, marco. From bagoneo at libero.it Fri Nov 18 11:34:34 2022 From: bagoneo at libero.it (gian) Date: Fri, 18 Nov 2022 11:34:34 +0100 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> Message-ID: <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> Il 18/11/22 09:50, BB ha scritto: > *Is there any way to spawn a new process that is **_not_**a child of the > running gambas process?* > I don't know if it is feasible. If I were to do it myself (to puttanesca :-)), I would do a pre-megaparser to skim text files to send to three folders (Rotten, Sick, Healthy) and then run the megaparser for the Healthy folder and then the parsers. Regards Gianluigi From adamnt42 at gmail.com Fri Nov 18 11:52:46 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 21:22:46 +1030 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> Message-ID: On 18/11/22 9:04 pm, gian via User wrote: > Il 18/11/22 09:50, BB ha scritto: >> *Is there any way to spawn a new process that is **_not_**a child of >> the running gambas process?* >> > > > I don't know if it is feasible. > If I were to do it myself (to puttanesca :-)), I would do a > pre-megaparser to skim text files to send to three folders (Rotten, > Sick, Healthy) and then run the megaparser for the Healthy folder and > then the parsers. > > Regards > > Gianluigi > You are probably right, I was trying to avoid this (for reasons of non-disclosure agreements, I was trying to avoid that). But you may have given me another idea. If the megaparser thinks the file is a puttanesca (yes, I know what it means) then I'll just send it back to them with a "Garbage In - Garbage Out" message. Let's see how that like that! thanks for the input b p.s. The remainder of this post is in Australian and describes what I think of W*n*o*s programmers. &&*&%^$## %^$%% ^ ^%$%%%$$#34$#$@#! (*&*& ^%%? %%$%$$###%!!! From dag at cd-bahia.com Fri Nov 18 12:19:44 2022 From: dag at cd-bahia.com (Dag JNJ) Date: Fri, 18 Nov 2022 12:19:44 +0100 Subject: [Gambas-user] Only a mail test Message-ID: <05ba6dc9-c9f6-a4ec-9168-5a859975f560@cd-bahia.com> Hi, I have some problems with the subscription, either my mails to the list doesn't occur or I can't answer to the list. Please ignore! Dag From gambas at cd-bahia.com Fri Nov 18 12:31:35 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Fri, 18 Nov 2022 12:31:35 +0100 Subject: [Gambas-user] Just a mail test Message-ID: <8c78e9b7-f5eb-8d84-5394-3baf31032f73@cd-bahia.com> Please ignore Dag JNJ From gambas at cd-bahia.com Fri Nov 18 12:38:46 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Fri, 18 Nov 2022 12:38:46 +0100 Subject: [Gambas-user] Just a mail test In-Reply-To: <8c78e9b7-f5eb-8d84-5394-3baf31032f73@cd-bahia.com> References: <8c78e9b7-f5eb-8d84-5394-3baf31032f73@cd-bahia.com> Message-ID: <0d0bca2c-9879-3b55-da71-e685be83f54d@cd-bahia.com> Now it works. But my name doesn't occur like all the others,... only user at lists.gambas-basic.org Although I am registered Am 18/11/22 um 12:31 schrieb Dag JNJ: > Please ignore > Dag JNJ > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > From karl.reinl at fen-net.de Fri Nov 18 12:39:06 2022 From: karl.reinl at fen-net.de (Karl Reinl) Date: Fri, 18 Nov 2022 12:39:06 +0100 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> Message-ID: <05678e30d898a19f5619d9f39891846827e17471.camel@fen-net.de> Am Freitag, dem 18.11.2022 um 21:22 +1030 schrieb BB: > But you may have given me another idea. If the megaparser thinks the > > file is a puttanesca (yes, I know what it means) then I'll just send > it > > back to them with a "Garbage In - Garbage Out" message. Let's see > how > > that like that! Salut, look with your browser 'linux check if a xml is valid' , choose one of the found way to make the triage. Copy all xml to a start folder and let the engine make the Cinderella job. -- Amicalement Charlie From adamnt42 at gmail.com Fri Nov 18 12:58:55 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 22:28:55 +1030 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <05678e30d898a19f5619d9f39891846827e17471.camel@fen-net.de> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> <05678e30d898a19f5619d9f39891846827e17471.camel@fen-net.de> Message-ID: <45229497-6f43-0c51-f2c2-c5dd5f26f002@gmail.com> On 18/11/22 10:09 pm, Karl Reinl wrote > Salut, > > look with your browser 'linux check if a xml is valid' , > choose one of the found way to make the triage. > Copy all xml to a start folder and let the engine make the Cinderella > job. Salute Charlie! Basically that's what I m doing (with a few tweaks). Thanks to Gian I am now sending the garbage back to them. Damn the magic, let them sort this ordure out. I should have quoted about $2M USD per hour for this job, but my rotten lousy friend (now degraded to "acquaintance") fooled me into it. b From chrisml at deganius.de Fri Nov 18 13:09:23 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Fri, 18 Nov 2022 13:09:23 +0100 Subject: [Gambas-user] Just a mail test In-Reply-To: <0d0bca2c-9879-3b55-da71-e685be83f54d@cd-bahia.com> References: <8c78e9b7-f5eb-8d84-5394-3baf31032f73@cd-bahia.com> <0d0bca2c-9879-3b55-da71-e685be83f54d@cd-bahia.com> Message-ID: Am 18.11.22 um 12:38 schrieb Dag JNJ: > Now it works. > But my name doesn't occur like all the others,... > only user at lists.gambas-basic.org That's a problem of Thunderbird/102.4.2. Your name can be seen properly. I also can't see my name. Someone should write a bugreport for the TB developers. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From gambas at cd-bahia.com Fri Nov 18 13:14:09 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Fri, 18 Nov 2022 13:14:09 +0100 Subject: [Gambas-user] Just a mail test In-Reply-To: References: <8c78e9b7-f5eb-8d84-5394-3baf31032f73@cd-bahia.com> <0d0bca2c-9879-3b55-da71-e685be83f54d@cd-bahia.com> Message-ID: <94c11944-525b-45ba-833b-f20fd3123925@cd-bahia.com> Am 18/11/22 um 13:09 schrieb Christof Thalhofer: > Am 18.11.22 um 12:38 schrieb Dag JNJ: > >> Now it works. >> But my name doesn't occur like all the others,... >> only user at lists.gambas-basic.org > > That's a problem of Thunderbird/102.4.2. Your name can be seen properly. > > I also can't see my name. Someone should write a bugreport for the TB > developers. > > Alles Gute > > Christof Thalhofer > > Ach danke sehr, auch alles Gute Dag > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From adamnt42 at gmail.com Fri Nov 18 13:18:59 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 22:48:59 +1030 Subject: [Gambas-user] COBOL and how great it was! Message-ID: In the "old days" when I and you all wrote COBOL there was a way to specify a thingo called, i think, a report line. It looked something like 88 something or other Mneh, it doesnt matter.? the point is . I? am getting there ... Print, sprintf etc etc etc are really (he said) remnants of the 1970's or perhaps even earlier. Now, I want to disregard the eminently beautiful gb.report components here BUT surely in this day and age it is possible to come up with "something"? that would allow use to "Print" a set of stuff to stdout (or wherever). Maybe this damn project IS sending me insane(r). anyone anyone, surely you have used COBOL?\ b From adamnt42 at gmail.com Fri Nov 18 14:00:03 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 18 Nov 2022 23:30:03 +1030 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> Message-ID: <98297c11-99ac-7e66-b4d4-0bdaa9940e32@gmail.com> On 18/11/22 9:04 pm, gian via User wrote: > Il 18/11/22 09:50, BB ha scritto: >> *Is there any way to spawn a new process that is **_not_**a child of >> the running gambas process?* >> > > > I don't know if it is feasible. > If I were to do it myself (to puttanesca :-)), I would do a > pre-megaparser to skim text files to send to three folders (Rotten, > Sick, Healthy) and then run the megaparser for the Healthy folder and > then the parsers. > > Regards > > Gianluigi > Gian, you are a genius! I have just sent 17,324 emails back to them. If I can stop giggling I may just be able to sneak into the bed beside "whatshername" and coax her over to the cold side! By the way I hope it might amuse that the subjects of the emails were all " Il tuo pollo ? in fiamme e la signora ? in fondo alla strada a far visita alla sua "amica"?,? hee hee -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Fri Nov 18 15:20:36 2022 From: bagoneo at libero.it (gian) Date: Fri, 18 Nov 2022 15:20:36 +0100 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <98297c11-99ac-7e66-b4d4-0bdaa9940e32@gmail.com> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> <98297c11-99ac-7e66-b4d4-0bdaa9940e32@gmail.com> Message-ID: Il 18/11/22 14:00, BB ha scritto: > > On 18/11/22 9:04 pm, gian via User wrote: >> Il 18/11/22 09:50, BB ha scritto: >>> *Is there any way to spawn a new process that is **_not_**a child of >>> the running gambas process?* >>> >> >> >> I don't know if it is feasible. >> If I were to do it myself (to puttanesca :-)), I would do a >> pre-megaparser to skim text files to send to three folders (Rotten, >> Sick, Healthy) and then run the megaparser for the Healthy folder and >> then the parsers. >> >> Regards >> >> Gianluigi >> > Gian, you are a genius! I have just sent 17,324 emails back to them. > > If I can stop giggling I may just be able to sneak into the bed beside > "whatshername" and coax her over to the cold side! > > By the way I hope it might amuse that the subjects of the emails were all " > > Il tuo pollo ? in fiamme e la signora ? in fondo alla strada a far > visita alla sua "amica"?,? > > hee hee LOL But if she's gone away how do you get her on the cold side of the bed? Anyway check in the kitchen first, maybe she's back :-D I may be "something" but I'm definitely not a genius Ciao Gianluigi From t.lee.davidson at gmail.com Fri Nov 18 17:51:04 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 18 Nov 2022 11:51:04 -0500 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: Message-ID: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> On 11/17/22 13:25, Dag JNJ wrote: > Hi all, > I have defined this: > > P/ublic arorder As New String[]// > //Public arorderb As New String[]// > / > and make this in a subroutine: > > /??? arorder.Add(fld)// > //??? arorderb.Add(ada) > > /// > /fld/ contains a field name, /ada/ = "ASC" > > the first assignment with /aroder/ succeeds, the second with /arorderb/ makes an error : null object > I can't see any difference between these objects, and they are only changed in? this routine (so far). > I am thankful for any help, allt he best, Dag JNJ It is quite difficult to determine what may be causing that without seeing the full code. Perhaps somewhere 'arorderb' is getting nullified. Can you pare it down to a small project, that reproduces the issue, that you can share? -- Lee From claus.dietrich at freenet.de Fri Nov 18 17:57:12 2022 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 18 Nov 2022 17:57:12 +0100 Subject: [Gambas-user] CDate Documentation Message-ID: First upon all I have to apologize that I always open a new thread with my posts. This will be the last one with this problem. On /Thu Nov 17 14:47:24 CET 2022 Benoit wrote:/ >By the way, does the last commit help you with dealing with CDate()? Sorry, I had to wait until today for an up-to-date ppa-master. Thanks for your efforts, but your modification seems to relate to posts from others and I don't understand the approach: 1. To me, the manual entrance of a static UTC offset makes things worse because the daylight saving is changing over the year. Hence this syntax will provide inconsistent results over the year, also within the own time zone. 2. To obtain a correct UTC+n parameter for a different time zone and a different date/ time is practically feasible. I have developed such a heavy weight routine based on tzdata but I am assuming that nobody would use it in conjunction with the CDate function. I was just looking for a small modification where the resulting Date (as datatype ) is not shifted by the current time zone offset of the platform. For a moment I thought about an optional boolean CDate parameter, which tells the function, not to shift to UTC. This would maintain compatibility, but rather looks like patch work, i.e.: Print CDate("11/18/2022 15:00:00") --> 18.11.2022 16:00:00 Print CDate("11/18/2022 15:00:00", False) --> 18.11.2022 15:00:00 On Thu Nov 17 14:44:12 CET 2022 Benoit wrote: >Actually you should never use the CDate() function. Because it only and >arbitrarily interprets strings as UTC dates in the american format. I fully agree and that's the reason for my posts. Best regards Claus From t.lee.davidson at gmail.com Fri Nov 18 18:04:55 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 18 Nov 2022 12:04:55 -0500 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: <184b9bc9-c566-1af2-9981-481244ce176d@gmail.com> On 11/18/22 07:18, BB wrote: > Print, sprintf etc etc etc are really (he said) remnants of the 1970's or perhaps even earlier. Now, I want to disregard the > eminently beautiful?gb.report?components?here?BUT > > surely in this day and age it is possible to come up with "something" > that?would?allow?use?to?"Print"?a?set?of?stuff?to?stdout?(or?wherever). > Are OUTPUT TO and File.Out insufficient for your needs? http://gambaswiki.org/wiki/lang/outputto http://gambaswiki.org/wiki/comp/gb/file/out Maybe I misunderstood, again. > anyone,?surely?you?have?used?COBOL?\ Nope. RPG. -- Lee From bagoneo at libero.it Fri Nov 18 18:05:11 2022 From: bagoneo at libero.it (gian) Date: Fri, 18 Nov 2022 18:05:11 +0100 Subject: [Gambas-user] Problem with String[] In-Reply-To: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: <019de831-2781-38ae-da6d-9b9ed3d53df4@libero.it> Il 18/11/22 17:51, T Lee Davidson ha scritto: > On 11/17/22 13:25, Dag JNJ wrote: >> Hi all, >> I have defined this: >> >> P/ublic arorder As New String[]// >> //Public arorderb As New String[]// >> / >> and make this in a subroutine: >> >> /??? arorder.Add(fld)// >> //??? arorderb.Add(ada) >> >> /// >> /fld/ contains a field name, /ada/ = "ASC" >> >> the first assignment with /aroder/ succeeds, the second with >> /arorderb/ makes an error : null object >> I can't see any difference between these objects, and they are only >> changed in? this routine (so far). >> I am thankful for any help, allt he best, Dag JNJ > > It is quite difficult to determine what may be causing that without > seeing the full code. Perhaps somewhere 'arorderb' is getting nullified. > Can you pare it down to a small project, that reproduces the issue, that > you can share? > > Hi Dag, this code here works fine: '----------------- Public arorder As New String[] Public arorderb As New String[] Public Sub Main() Dim fld As String = "Asc" Dim ada As String = "FOO" arorder.Add(fld) arorderb.Add(ada) Print arorder[0];; arorderb[0] End '------------------ Regards Gianluigi From t.lee.davidson at gmail.com Fri Nov 18 18:38:33 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 18 Nov 2022 12:38:33 -0500 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> <802b9d07-8f10-7e87-0816-5eab50f81a44@libero.it> Message-ID: <69647b1b-457c-3dd4-56b7-f82ab3692414@gmail.com> On 11/18/22 05:52, BB wrote: > On?18/11/22?9:04?pm,?gian?via?User?wrote: >> Il?18/11/22?09:50,?BB?ha?scritto: >>> *Is there any way to spawn a new process that is **_not_**a child of the?running?gambas?process?* >>> >> >> >> I?don't?know?if?it?is?feasible. >> If I were to do it myself (to puttanesca :-)), I would do a pre-megaparser to skim text files to send to three folders >> (Rotten, Sick, Healthy) and then run the megaparser for the Healthy folder and then?the?parsers. >> >> Regards >> >> Gianluigi >> > You are probably right, I was trying to avoid this (for reasons of non-disclosure?agreements,?I?was?trying?to?avoid?that). Yes, that is a good idea and along the lines of what I was thinking. I see, from the rest of the discussion, that you have at least alleviated the problem. But, allow me to shoot one more idea at you. If it were me, I think I would put the 'good' files in a spool folder, and then have a separate spool consumer that spins up the processing with the GUI monitoring, pulling the files out based on timestamp. If storing the files locally may subject them to disclosure, perhaps setting the permissions on the spool directory to 600 for specific user(s) might suffice to prevent it. -- Lee From jussi.lahtinen at gmail.com Fri Nov 18 19:43:09 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Fri, 18 Nov 2022 20:43:09 +0200 Subject: [Gambas-user] CDate Documentation In-Reply-To: References: Message-ID: If you look at how calendar time works example in GNU C library, you will see that timezone is always parameter or conversions are only manual. Benoit has rejected this approach for Gambas because he doesn't (want to?) understand the problem. There is no good and easy way to deal with this problem in Gambas. It is a problem by design. But of course everything is doable, just not always reasonable. Here this will help you: Print Val("11/18/2022 15:00:00") --> 18.11.2022 15:00:00 But there is no solution for the core problem. Jussi On Fri, Nov 18, 2022 at 6:58 PM Claus Dietrich wrote: > First upon all I have to apologize that I always open a new thread > > with my posts. This will be the last one with this problem. > > On /Thu Nov 17 14:47:24 CET 2022 Benoit wrote:/ > > >By the way, does the last commit help you with dealing with CDate()? > > Sorry, I had to wait until today for an up-to-date ppa-master. > Thanks for your efforts, but your modification seems to relate to > posts from others and I don't understand the approach: > > 1. To me, the manual entrance of a static UTC offset makes things > worse because the daylight saving is changing over the year. Hence > this syntax will provide inconsistent results over the year, also > within the own time zone. > > 2. To obtain a correct UTC+n parameter for a different time > zone and a different date/ time is practically feasible. I have > developed such a heavy weight routine based on tzdata but I > am assuming that nobody would use it in conjunction with the > CDate function. > > I was just looking for a small modification where the resulting > Date (as datatype ) is not shifted by the current time zone offset > of the platform. > > For a moment I thought about an optional boolean CDate parameter, > which tells the function, not to shift to UTC. This would maintain > compatibility, but rather looks like patch work, i.e.: > > Print CDate("11/18/2022 15:00:00") --> 18.11.2022 16:00:00 > Print CDate("11/18/2022 15:00:00", False) --> 18.11.2022 15:00:00 > > On Thu Nov 17 14:44:12 CET 2022 Benoit wrote: > >Actually you should never use the CDate() function. Because it only and > >arbitrarily interprets strings as UTC dates in the american format. > > I fully agree and that's the reason for my posts. > > Best regards > Claus > > > > > > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Fri Nov 18 19:45:06 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Fri, 18 Nov 2022 20:45:06 +0200 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: Sorry, I don't understand the question. There is "print" keyword and the output goes to stdout. Jussi On Fri, Nov 18, 2022 at 2:23 PM BB wrote: > In the "old days" when I and you all wrote COBOL > > there was a way to specify a thingo called, i think, a report line. It > looked something like > > 88 something or other > > Mneh, it doesnt matter. the point is . I am getting there ... > > Print, sprintf etc etc etc are really (he said) remnants of the 1970's > or perhaps even earlier. Now, I want to disregard the eminently > beautiful gb.report components here BUT > > surely in this day and age it is possible to come up with "something" > that would allow use to "Print" a set of stuff to stdout (or wherever). > > Maybe this damn project IS sending me insane(r). > > > anyone > > anyone, surely you have used COBOL?\ > > > b > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Fri Nov 18 19:50:04 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Fri, 18 Nov 2022 20:50:04 +0200 Subject: [Gambas-user] Starting a new process - but not as a child In-Reply-To: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> References: <41cf5678-b0ca-b569-0450-218f9b2af6be@gmail.com> Message-ID: Try with shell; ( yourapplication ) & exit Works with terminal, but I haven't tested within Gambas. Jussi On Fri, Nov 18, 2022 at 10:51 AM BB wrote: > This one has got me beat. > > In a non-gui project: (let's call it the "megaparser") > > I'm processing a large bunch of text files, during which a status is > decided on each ones fundamental validity. > > If it looks OK then I want to start a new program/project (the > "fileparser") that has a GUI that I want to, *at MY leisure*, look at how > it is going and what to do about it. > > So far so fine, the megaparser shells the fileparser quite nicely > without a wait, so I get what I expected - a gazillion forms each > displaying the progress and any problems it's having. Fine. > > So, here's my problem... > > When the megaparser has finished it wants to exit, but there are all these > child processes running and I want them to keep going. > > ? > > I'll try again. I have about 30,000 text (actually ahem "xml") files that > I need to firstly check that each one looks "reasonable" and if so start a > processing job for that file. No, thats still not clear. The megaparser > looks at each of the files and determines if it is valid xml if so then it > starts a new process to parse that file and update the database. That new > job needs to be *async**hronous* as the megaparser continues on and > creates more and more parser jobs, no problem yet. *BUT* if the > meagaparser fails and crashes as it is frequently doing (which is not a > Gambas issue, it's normally a result of the rotten XML file being totally > or partially unreadable) the megaparser crashes and I lose all the spawned > jobs. > > I have been going through this repetitive joke for 8 days now so I am > screaming for help. > > *Is there any way to spawn a new process that is **not** a child of the > running gambas process?* > > Going slightly bonkers here > > bruxe, or brice or wahayetever my name is. > > b > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Fri Nov 18 20:36:30 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 18 Nov 2022 11:36:30 -0800 (PST) Subject: [Gambas-user] Possible CDATE issue Latest version Message-ID: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> With the latest version of gambas, I am getting the strangest issue, I dont understand, not sure if its a bug cdate returns different values if called with a class public variable. Locks like possibly like in the last case its return the gmt time. Hello world 11/18/2022 11:30:56 CDATE(now) 11/18/2022 11:30:56 Eval("cdate(now) 11/18/2022 11:30:56 Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 I ran the following script to test. This issue popped up in some of my apps +++++++++++++++++++++++++++++++++++++ #!/usr/bin/env gbs3 class mydate ' Gambas class file Public thedate As String Public Sub _call() Dim ddate As String Try ddate = Eval(thedate) Print "CDATE(now) \t"; CDate(Now) Print "Eval(\"cdate(now) \t"; Eval("cdate(now)") Print "Try ddate = Eval(thedate) \t"; ddate End end class public sub main() Print "Hello world \t"; CDate(Now) Dim getdate As New Mydate getdate.thedate = "cdate(now)" getdate() end +++++++++++++++++++++++++++++++++++++++ "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Fri Nov 18 23:34:43 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 19 Nov 2022 00:34:43 +0200 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Are you sure this has worked before? By quick look I guess it is about how Gambas does the conversions internally, print uses Str() and maybe that "ddate =" or uses Cstr(). Jussi On Fri, Nov 18, 2022 at 11:28 PM Brian G wrote: > With the latest version of gambas, I am getting the strangest issue, I > dont understand, not sure if its a bug > cdate returns different values if called with a class public variable. > Locks like possibly like in the last case > its return the gmt time. > > Hello world 11/18/2022 11:30:56 > CDATE(now) 11/18/2022 11:30:56 > Eval("cdate(now) 11/18/2022 11:30:56 > Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 > > I ran the following script to test. This issue popped up in some of my apps > > +++++++++++++++++++++++++++++++++++++ > #!/usr/bin/env gbs3 > class mydate > ' Gambas class file > Public thedate As String > Public Sub _call() > Dim ddate As String > Try ddate = Eval(thedate) > Print "CDATE(now) \t"; CDate(Now) > Print "Eval(\"cdate(now) \t"; Eval("cdate(now)") > Print "Try ddate = Eval(thedate) \t"; ddate > End > end class > > public sub main() > Print "Hello world \t"; CDate(Now) > Dim getdate As New Mydate > getdate.thedate = "cdate(now)" > getdate() > end > +++++++++++++++++++++++++++++++++++++++ > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 19 01:48:26 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 19 Nov 2022 11:18:26 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: On 19/11/22 5:15 am, Jussi Lahtinen wrote: > Sorry, I don't understand the question. There is "print" keyword and > the output goes to stdout. > > Jussi > > > On Fri, Nov 18, 2022 at 2:23 PM BB > wrote: > > [junk] > > > No, I'm sorry. I (in a saner frame of mind) actually meant: surely in this day and age it is possible to come up with "something"? that would allow use to "Print" a set of stuff to stdout (or wherever) /in a formatted set of columns/ rather than a ragged bunch of lines. By way of example For each Cust ??? Print Cust.ID, Cust.Name, Cust.Balance, Cust.Phone Next gives lines like 312 Mary K Jones??? 350 0423-614-012 472 Jim Bo??? 75.5 0416-763-274 666 The Devil Incarnate Himself??? 99.999 0413-100-200 2 Bozo Dog 1.23 0413-627-123 The example is trivial but for longer Print commands it becomes almost totally unreadable. What I'm looking for is a _simple_ way to format the output. Something like ??? Print Cust.ID; Tab(6); Cust.Name; Tab(50); Cust.Balance; Tab(70); Cust.Phone or maybe Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone where the numbers are the starting position for the next item that would give 312 Mary K Jones??? 350 0423-614-012 472 Jim Bo??? 75.5 0416-763-274 666 The Devil Incarnate Himself??? 99.999 0413-100-200 2 Bozo Dog 1.23 0413-627-123 b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Nov 19 02:17:54 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 19 Nov 2022 03:17:54 +0200 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: I see... you can use tabs this way: Print Cust.ID & gb.Tab & Cust.Name & gb.Tab & Cust.Balance & gb.Tab & Cust.Phone Many tabs by String(n, gb.Tab). Not very handy though. I think it is best to write your own function to show things neatly. See here to learn how to take variable amount of parameters: http://gambaswiki.org/wiki/comp/gb/param This would be a nice feature... but I can do it only with C. Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone Jussi On Sat, Nov 19, 2022 at 2:49 AM BB wrote: > > On 19/11/22 5:15 am, Jussi Lahtinen wrote: > > Sorry, I don't understand the question. There is "print" keyword and the > output goes to stdout. > > Jussi > > > On Fri, Nov 18, 2022 at 2:23 PM BB wrote: > >> [junk] >> >> > No, I'm sorry. I (in a saner frame of mind) actually meant: > > surely in this day and age it is possible to come up with "something" > that would allow use to "Print" a set of stuff to stdout (or wherever) *in > a formatted set of columns* rather than a ragged bunch of lines. > > By way of example > > For each Cust > > Print Cust.ID, Cust.Name, Cust.Balance, Cust.Phone > > Next > > gives lines like > > 312 Mary K Jones 350 0423-614-012 > 472 Jim Bo 75.5 0416-763-274 > 666 The Devil Incarnate Himself 99.999 0413-100-200 > 2 Bozo Dog 1.23 0413-627-123 > > The example is trivial but for longer Print commands it becomes almost > totally unreadable. > > What I'm looking for is a *simple* way to format the output. Something > like > > Print Cust.ID; Tab(6); Cust.Name; Tab(50); Cust.Balance; Tab(70); Cust.Phone > or maybe > Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone > where the numbers are the starting position for the next item > > that would give > > 312 Mary K Jones 350 0423-614-012 > 472 Jim Bo 75.5 0416-763-274 > 666 The Devil Incarnate Himself 99.999 0413-100-200 > 2 Bozo Dog 1.23 0413-627-123 > > b > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 19 03:45:10 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 19 Nov 2022 13:15:10 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: Well, it turned out to be simple! On 19/11/22 11:47 am, Jussi Lahtinen wrote: > I see... you can use tabs this way: > Print Cust.ID & gb.Tab & Cust.Name & gb.Tab & Cust.Balance & gb.Tab & > Cust.Phone > > Many tabs by String(n, gb.Tab). Not very handy though. I think it is > best to write your own function to show things neatly. > See here to learn how to take variable amount of parameters: > http://gambaswiki.org/wiki/comp/gb/param > > > This would be a nice feature... but I can do it only with C. > Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone > > > Jussi > > Public Sub Main() PrintF([0, 6, 30, 45, 60, 132], "ACCT", "NAME", "BALANCE", "PHONE", "DUE") PrintF([0, 6, 30, 45, 60, 132], String(5, "_"), String(23, "_"), String(45 - 31, "_"), String(60 - 45 - 1, "_"), String(22, "_")) PrintF([0, 6, 30, 45, 60, 132], 12345, "Doris Day", Format(45.67, "$#.00"), "N/A", Now()) PrintF([0, 6, 30, 45, 60, 132], 145, "Michaelango Vesputti", Format(125.67, "$#.00"), "", Date(Now() - 1)) PrintF([0, 6, 30, 45, 60, 132], 45, "Bozo Dog", Format(5.60, "$#.00"), "Woof", Null) PrintF([0, 6, 30, 45, 60, 132], 666, "The Devil Incarnate Himself", Format(-66666, "($,#.00"), "0666-666-666", Date(666)) PrintF([0, 6, 30, 45, 60, 132], 427, "Jim Bo", Format(75.5, "$#.00"), "0416-763-274", Date(2023, 5, 1, 12, 30)) End Private Sub PrintF(fmt As Integer[], ...) Dim idx As Integer Dim iPad As Integer ' the number of spaces to add If Param.Count > (fmt.Count - 1) Then Error.Raise("Mismatched format") For idx = 0 To Param.Max If Len(Str(Param[idx])) >= fmt[idx + 1] - fmt[idx] Then Print Left(Str(Param[idx]), fmt[idx + 1] - fmt[idx] - 1); "?"; Else iPad = (fmt[idx + 1] - fmt[idx]) - Len(Str(Param[idx])) If ipad < 0 Then Print "?"; Print Param[idx]; If idx < Param.Max Then Print String(iPad, " "); Endif Next Print End Yields ACCT NAME BALANCE PHONE DUE _____ _______________________ ______________ ______________ ______________________ 12345 Doris Day $45.67 N/A 19/11/2022 13:04:09 145 Michaelango Vesputti $125.67 18/11/2022 00:00:00 45 Bozo Dog $5.60 Woof 666 The Devil Incarnate Him?($66,666.00) 0666-666-666 28/10/-4800 00:00:00 427 Jim Bo $75.50 0416-763-274 01/05/2023 12:30:00 A bit rudimentary and would be "nicer" if numbers were right or decimal point aligned and may need a? bit more error control. Amazing what a good sleep and two days free of malformed XML ahead can do. regards bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Nov 19 04:11:12 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 19 Nov 2022 05:11:12 +0200 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: Looks good! You just need an additional argument for the alignment (perhaps by changing integer[] to string[] or variant[]), if you want to add it, or you will narrow the function's use cases. Jussi On Sat, Nov 19, 2022 at 4:46 AM BB wrote: > Well, it turned out to be simple! > On 19/11/22 11:47 am, Jussi Lahtinen wrote: > > I see... you can use tabs this way: > Print Cust.ID & gb.Tab & Cust.Name & gb.Tab & Cust.Balance & gb.Tab & > Cust.Phone > > Many tabs by String(n, gb.Tab). Not very handy though. I think it is best > to write your own function to show things neatly. > See here to learn how to take variable amount of parameters: > http://gambaswiki.org/wiki/comp/gb/param > > This would be a nice feature... but I can do it only with C. > Print [0,6,50,70], Cust.ID, Cust.Name, Cust.Balance, Cust.Phone > > > Jussi > > > > Public Sub Main() > > PrintF([0, 6, 30, 45, 60, 132], "ACCT", "NAME", "BALANCE", "PHONE", "DUE") > PrintF([0, 6, 30, 45, 60, 132], String(5, "_"), String(23, "_"), String(45 - 31, "_"), String(60 - 45 - 1, "_"), String(22, "_")) > PrintF([0, 6, 30, 45, 60, 132], 12345, "Doris Day", Format(45.67, "$#.00"), "N/A", Now()) > PrintF([0, 6, 30, 45, 60, 132], 145, "Michaelango Vesputti", Format(125.67, "$#.00"), "", Date(Now() - 1)) > PrintF([0, 6, 30, 45, 60, 132], 45, "Bozo Dog", Format(5.60, "$#.00"), "Woof", Null) > PrintF([0, 6, 30, 45, 60, 132], 666, "The Devil Incarnate Himself", Format(-66666, "($,#.00"), "0666-666-666", Date(666)) > PrintF([0, 6, 30, 45, 60, 132], 427, "Jim Bo", Format(75.5, "$#.00"), "0416-763-274", Date(2023, 5, 1, 12, 30)) > > End > > Private Sub PrintF(fmt As Integer[], ...) > > Dim idx As Integer > Dim iPad As Integer ' the number of spaces to add > > If Param.Count > (fmt.Count - 1) Then Error.Raise("Mismatched format") > > For idx = 0 To Param.Max > If Len(Str(Param[idx])) >= fmt[idx + 1] - fmt[idx] Then > Print Left(Str(Param[idx]), fmt[idx + 1] - fmt[idx] - 1); "?"; > Else > iPad = (fmt[idx + 1] - fmt[idx]) - Len(Str(Param[idx])) > If ipad < 0 Then Print "?"; > Print Param[idx]; > If idx < Param.Max Then Print String(iPad, " "); > Endif > Next > Print > > End > > > Yields > > ACCT NAME BALANCE PHONE DUE > _____ _______________________ ______________ ______________ ______________________ > 12345 Doris Day $45.67 N/A 19/11/2022 13:04:09 > 145 Michaelango Vesputti $125.67 18/11/2022 00:00:00 > 45 Bozo Dog $5.60 Woof > 666 The Devil Incarnate Him?($66,666.00) 0666-666-666 28/10/-4800 00:00:00 > 427 Jim Bo $75.50 0416-763-274 01/05/2023 12:30:00 > > A bit rudimentary and would be "nicer" if numbers were right or decimal > point aligned and may need a bit more error control. > > Amazing what a good sleep and two days free of malformed XML ahead can do. > > regards > > bruce > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Sat Nov 19 04:26:50 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 18 Nov 2022 22:26:50 -0500 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: On 11/18/22 21:45, BB wrote: > Private Sub PrintF(fmt As Integer[], ...) > > Dim idx As Integer > Dim iPad As Integer ' the number of spaces to add > > If Param.Count > (fmt.Count - 1) Then Error.Raise("Mismatched format") > > For idx = 0 To Param.Max > If Len(Str(Param[idx])) >= fmt[idx + 1] - fmt[idx] Then > Print Left(Str(Param[idx]), fmt[idx + 1] - fmt[idx] - 1); "?"; > Else > iPad = (fmt[idx + 1] - fmt[idx]) - Len(Str(Param[idx])) > If ipad < 0 Then Print "?"; > Print Param[idx]; > If idx < Param.Max Then Print String(iPad, " "); > Endif > Next > Print > > End Interesting. I think we must have been working on it separately together. But, what I came up with is simpler :-P [code] ' Gambas module file Public Sub Main() Dim Customers As New Collection[] Customers.Add(["id": "312", "name": "Mary K Jones", "balance": 350, "phone": "423-614-12"]) Customers.Add(["id": "472", "name": "Jim Bo", "balance": 75.5, "phone": "0416-763-274"]) Customers.Add(["id": "666", "name": "The Devil Incarnate Himself", "balance": 99.999, "phone": "0413-100-200"]) Customers.Add(["id": "2", "name": "Bozo Dog", "balance": 1.23, "phone": "0413-627-123"]) For Each cust As Collection In Customers Print Pad(cust["id"], 8); Pad(cust["name"], 35); Pad(cust["balance"], 10); cust["phone"] Next End Public Sub Pad(sStr As String, iWidth As Integer) As String Return sStr & Space(iWidth - Len(sStr)) End [/code] Maybe not as versatile though. -- Lee From adamnt42 at gmail.com Sat Nov 19 04:39:02 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 19 Nov 2022 14:09:02 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: <7fce35ad-10c0-afac-5502-46e518460103@gmail.com> On 19/11/22 1:56 pm, T Lee Davidson wrote: > Maybe not as versatile though. yep. I have elision when the data is too "wide" for the space it needs to fit in and your approach uses column widths, I got away from that as column position was just more intuitive to me in this respect as I dont need to figure out what the proper widths should be. Others may prefer the column width though and I may try it that way to see. b From adamnt42 at gmail.com Sat Nov 19 04:44:41 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 19 Nov 2022 14:14:41 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: On 19/11/22 1:41 pm, Jussi Lahtinen wrote: > Looks good! > You just need an additional argument for the alignment (perhaps by > changing integer[] to string[] or variant[]), if you want to add it, > or you will narrow the function's use cases. > > Jussi > I'm actually thinking now of using a negative position to right align the item. Decimal point alignment is probably too hard ATM as it would need to know too much about stuff. b From brian at westwoodsvcs.com Sat Nov 19 07:25:04 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 19 Nov 2022 09:25:04 +0300 Subject: [Gambas-user] =?utf-8?q?Possible_CDATE_issue_Latest_version?= In-Reply-To: References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1668839104.933059113@f33.my.com> Yes, it has worked for a long time, and just this week fails. -- Thanks Brian G Friday, 18 November 2022, 02:35PM -08:00 from Jussi Lahtinen jussi.lahtinen at gmail.com : >Are you sure this has worked before? >By quick look I guess it is about how Gambas does the conversions internally, print uses Str() and maybe that "ddate =" or uses Cstr(). > > >Jussi > > >On Fri, Nov 18, 2022 at 11:28 PM Brian G < brian at westwoodsvcs.com> wrote: >>With the latest version of gambas, I am getting the strangest issue, I dont understand, not sure if its a bug >>cdate returns different values if called with a class public variable. Locks like possibly like in the last case >>its return the gmt time. >> >>Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 >>CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 >>Eval("cdate(now)? ? ? ? ? ? ? ? 11/18/2022 11:30:56 >>Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 >> >>I ran the following script to test. This issue popped up in some of my apps >> >>+++++++++++++++++++++++++++++++++++++ >>#!/usr/bin/env gbs3 >>class mydate >>' Gambas class file >>Public thedate As String >>Public Sub _call() >>? ? Dim ddate As String >>? ? Try ddate = Eval(thedate) >>? ? Print "CDATE(now)? ? ? ? ? ? ? ? \t"; CDate(Now) >>? ? Print "Eval(\"cdate(now)? ? ? ? ?\t"; Eval("cdate(now)") >>? ? Print "Try ddate = Eval(thedate) \t"; ddate >>End >>end class >> >>public sub main() >>? ? Print "Hello world? ? ? ? ? ? ? ? \t"; CDate(Now) >>? ? Dim getdate As New Mydate >>? ? getdate.thedate = "cdate(now)" >>? ? getdate() >>end >>+++++++++++++++++++++++++++++++++++++++ >> >>"Failure is the key to success; >>?each mistake teaches us something" ?.. Morihei Ueshiba >>Brian G >>----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Nov 19 11:43:36 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 19 Nov 2022 11:43:36 +0100 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> Le 18/11/2022 ? 20:36, Brian G a ?crit?: > With the latest version of gambas, I am getting the strangest issue, I > dont understand, not sure if its a bug > cdate returns different values if called with a class public variable. > Locks like possibly like in the last case > its return the gmt time. > > Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 > CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 > Eval("cdate(now)? ? ? ? ? ? ? ? 11/18/2022 11:30:56 > Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 > The printed strings are normal. What did you expect? -- Beno?t Minisini. From bagoneo at libero.it Sat Nov 19 13:55:41 2022 From: bagoneo at libero.it (gian) Date: Sat, 19 Nov 2022 13:55:41 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: Il 19/11/22 04:44, BB ha scritto: > > On 19/11/22 1:41 pm, Jussi Lahtinen wrote: >> Looks good! >> You just need an additional argument for the alignment (perhaps by >> changing integer[] to string[] or variant[]), if you want to add it, >> or you will narrow the function's use cases. >> >> Jussi >> > I'm actually thinking now of using a negative position to right align > the item. Decimal point alignment is probably too hard ATM as it would > need to know too much about stuff. > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi, my penny (do they say that?), you need to check gb.util '------------------------------------------------------- Public Sub Main() Dim aRight As Boolean[] = [True, True, False, False] Dim aSpace As Integer[] = [6, 30, 10, 15] Dim aField1 As String[] = ["312", "Mary K Jones", Format(350, "$,#.00"), "0423-614-012"] Dim aField2 As String[] = ["472", "Jim Bo", Format(75.5, "$,#.00"), "0416-763-274"] Dim aField3 As String[] = ["666", "The Devil Incarnate Himself", Format(9999.99, "$,#.00"), "0413-100-200"] Dim aField4 As String[] = ["2", "Bozo Dog", Format(1.23, "$,#.00"), "0413-627-123"] PrintVarPad(aRight, aSpace, aField1) PrintVarPad(aRight, aSpace, aField2) PrintVarPad(aRight, aSpace, aField3) PrintVarPad(aRight, aSpace, aField4) End Private Sub PrintVarPad(aRight As Boolean[], aSpace As Integer[], aField As String[]) For i As Integer = 0 To aField.Max If aRight[i] = True Then Print String.PadRight(aField[i], aSpace[i]); Else Print String.PadLeft(aField[i], aSpace[i]); Endif Next Print End '--------------------------------------- Regards Gianluigi From adamnt42 at gmail.com Sat Nov 19 14:56:42 2022 From: adamnt42 at gmail.com (BB) Date: Sun, 20 Nov 2022 00:26:42 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: Message-ID: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> On 19/11/22 11:25 pm, gian via User wrote: > Hi, > > my penny (do they say that?), you need to check gb.util > > '------------------------------------------------------- > Public Sub Main() > > ? Dim aRight As Boolean[] = [True, True, False, False] > ? Dim aSpace As Integer[] = [6, 30, 10, 15] > ? Dim aField1 As String[] = ["312", "Mary K Jones", Format(350, > "$,#.00"), "0423-614-012"] > ? Dim aField2 As String[] = ["472", "Jim Bo", Format(75.5, "$,#.00"), > "0416-763-274"] > ? Dim aField3 As String[] = ["666", "The Devil Incarnate Himself", > Format(9999.99, "$,#.00"), "0413-100-200"] > ? Dim aField4 As String[] = ["2", "Bozo Dog", Format(1.23, "$,#.00"), > "0413-627-123"] > > ? PrintVarPad(aRight, aSpace, aField1) > ? PrintVarPad(aRight, aSpace, aField2) > ? PrintVarPad(aRight, aSpace, aField3) > ? PrintVarPad(aRight, aSpace, aField4) > > End > > Private Sub PrintVarPad(aRight As Boolean[], aSpace As Integer[], > aField As String[]) > > ? For i As Integer = 0 To aField.Max > ??? If aRight[i] = True Then > ????? Print String.PadRight(aField[i], aSpace[i]); > ??? Else > ????? Print String.PadLeft(aField[i], aSpace[i]); > ??? Endif > ? Next > ? Print > > End > '--------------------------------------- > > Regards > > Gianluigi > > While you are right Luigi it's not exactly what I was driving at. The main reason I want this is usually to quickly print out some things from a collection of Objects. For each hBeast as Animal in TheZoo ??? Print hbeast.Species, hBeast.Name, hBeast.Microchip, hBeast.Keeper.Name, hBeast.Keeper.Phone, hBeast.IsAlive, hBeast.etc etc Next So what I now have is Dim iFmt as Variant=[0,15,35,42,60,68,74,etc etc] For Each hBeast as Animal in TheZoo ??? PrintF(iFmt, hbeast.Species, hBeast.Name, hBeast.Microchip, hBeast.Keeper.Name, hBeast.Keeper.Phone, hBeast.IsAlive, hBeast.etc etc) Next Which is about as simple as I can get it, no mucking around with putting stuff in arrays, especially the data variables themselves. I know about gb.Util and the string functions therein. I just didn't use it simply to save having to load another Component. That's all. (If I recall correctly I was the one that submitted those functions when gb.Util was first being built ?) Thanks for the interest anyway. b For those still interested here's the current state -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From brian at westwoodsvcs.com Sat Nov 19 17:26:13 2022 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 19 Nov 2022 08:26:13 -0800 (PST) Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> Message-ID: <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 18/11/2022 ? 20:36, Brian G a ?crit?: >> With the latest version of gambas, I am getting the strangest issue, I >> dont understand, not sure if its a bug >> cdate returns different values if called with a class public variable. >> Locks like possibly like in the last case >> its return the gmt time. >> >> Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 >> CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 >> Eval("cdate(now)")? ? ? ? ? ? ? 11/18/2022 11:30:56 >> dim thedate as string = "CDate(now)" >> Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 >> > > The printed strings are normal. What did you expect? > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I expect the times to all be the same, the last time printed is a different time zone although the same expression is being evaluated. Has anyone else tried to run the provided script "Failure is the key to success; ?each mistake teaches us something" ?.. Morihei Ueshiba Brian G From bagoneo at libero.it Sat Nov 19 18:14:09 2022 From: bagoneo at libero.it (gian) Date: Sat, 19 Nov 2022 18:14:09 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> Message-ID: Il 19/11/22 14:56, BB ha scritto: > So what I now have is > > Dim iFmt as Variant=[0,15,35,42,60,68,74,etc etc] > > For Each hBeast as Animal in TheZoo > > ??? PrintF(iFmt, hbeast.Species, hBeast.Name, hBeast.Microchip, hBeast.Keeper.Name, hBeast.Keeper.Phone, hBeast.IsAlive, hBeast.etc etc) > > Next > > Which is about as simple as I can get it, no mucking around with putting > stuff in arrays, especially the data variables themselves. > > I know about gb.Util and the string functions therein. I just didn't use > it simply to save having to load another Component. That's all. (If I > recall correctly I was the one that submitted those functions when > gb.Util was first being built ?) > > Thanks for the interest anyway. > > b > Hi, sorry for the delay in replying, but I am busy with house cleaning on Saturday. I don't understand what you mean, if you don't want to check off the component import functions (see attached project) However you need to know first how many columns you are using, so what does that change? I really don't see the point of having a variadic function? Regards Gianluigi -------------- next part -------------- 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 AA== From benoit.minisini at gambas-basic.org Sat Nov 19 18:43:36 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 19 Nov 2022 18:43:36 +0100 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> Le 19/11/2022 ? 17:26, Brian G a ?crit?: > > ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > >> Le 18/11/2022 ? 20:36, Brian G a ?crit?: >>> With the latest version of gambas, I am getting the strangest issue, I >>> dont understand, not sure if its a bug >>> cdate returns different values if called with a class public variable. >>> Locks like possibly like in the last case >>> its return the gmt time. >>> >>> Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 >>> CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 >>> Eval("cdate(now)")? ? ? ? ? ? ? 11/18/2022 11:30:56 >>> dim thedate as string = "CDate(now)" >>> Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 >>> >> >> The printed strings are normal. What did you expect? >> >> -- >> Beno?t Minisini. >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > I expect the times to all be the same, the last time printed is a different time zone > although the same expression is being evaluated. > It can't be the same as in your script, 'ddate' is a string that receives the result of evaluating an expression that returns a date. Hence this date is converted to a string automatically with CDate() to be put inside the 'ddate' variable, and so you get the UTC representation of the date as returned by CDate(). Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Sat Nov 19 19:26:26 2022 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 19 Nov 2022 10:26:26 -0800 (PST) Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> Message-ID: <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 19/11/2022 ? 17:26, Brian G a ?crit?: >> >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini >> benoit.minisini at gambas-basic.org wrote: >> >>> Le 18/11/2022 ? 20:36, Brian G a ?crit?: >>>> With the latest version of gambas, I am getting the strangest issue, I >>>> dont understand, not sure if its a bug >>>> cdate returns different values if called with a class public variable. >>>> Locks like possibly like in the last case >>>> its return the gmt time. >>>> >>>> Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 >>>> CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 >>>> Eval("cdate(now)")? ? ? ? ? ? ? 11/18/2022 11:30:56 >>>> dim thedate as string = "CDate(now)" >>>> Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 >>>> >>> >>> The printed strings are normal. What did you expect? >>> >>> -- >>> Beno?t Minisini. >>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> I expect the times to all be the same, the last time printed is a different time >> zone >> although the same expression is being evaluated. >> > > It can't be the same as in your script, 'ddate' is a string that > receives the result of evaluating an expression that returns a date. > > Hence this date is converted to a string automatically with CDate() to > be put inside the 'ddate' variable, and so you get the UTC > representation of the date as returned by CDate(). > > Regards, > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Maybe I am just a bit thick but I had expected print cdate(now) and dim a as string = cdate(now) print a To produce the same output value! This is what is produced 11/19/2022 10:19:18 11/19/2022 18:19:18.16 if this is correct output, why it seems so very wrong! and doing this print date(now) or a = date(now) print a produces as output 11/19/2022 00:00:00 11/19/2022 08:00:00 This also seems incorrect... From jussi.lahtinen at gmail.com Sat Nov 19 19:34:04 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 19 Nov 2022 20:34:04 +0200 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Welcome to Gambas dates where everything is wonderful and intuitive. Jussi On Sat, Nov 19, 2022 at 8:27 PM Brian G wrote: > ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini > benoit.minisini at gambas-basic.org wrote: > > > Le 19/11/2022 ? 17:26, Brian G a ?crit : > >> > >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini > >> benoit.minisini at gambas-basic.org wrote: > >> > >>> Le 18/11/2022 ? 20:36, Brian G a ?crit : > >>>> With the latest version of gambas, I am getting the strangest issue, I > >>>> dont understand, not sure if its a bug > >>>> cdate returns different values if called with a class public variable. > >>>> Locks like possibly like in the last case > >>>> its return the gmt time. > >>>> > >>>> Hello world 11/18/2022 11:30:56 > >>>> CDATE(now) 11/18/2022 11:30:56 > >>>> Eval("cdate(now)") 11/18/2022 11:30:56 > >>>> dim thedate as string = "CDate(now)" > >>>> Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 > >>>> > >>> > >>> The printed strings are normal. What did you expect? > >>> > >>> -- > >>> Beno?t Minisini. > >>> > >>> > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >> > >> I expect the times to all be the same, the last time printed is a > different time > >> zone > >> although the same expression is being evaluated. > >> > > > > It can't be the same as in your script, 'ddate' is a string that > > receives the result of evaluating an expression that returns a date. > > > > Hence this date is converted to a string automatically with CDate() to > > be put inside the 'ddate' variable, and so you get the UTC > > representation of the date as returned by CDate(). > > > > Regards, > > > > -- > > Beno?t Minisini. > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Maybe I am just a bit thick but I had expected > > print cdate(now) > > and > > dim a as string = cdate(now) > print a > > To produce the same output value! > > This is what is produced > > 11/19/2022 10:19:18 > 11/19/2022 18:19:18.16 > > > if this is correct output, why it seems so very wrong! > > and doing this > > print date(now) > or > a = date(now) > print a > > produces as output > > 11/19/2022 00:00:00 > 11/19/2022 08:00:00 > > This also seems incorrect... > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobs at taboege.de Sat Nov 19 19:47:51 2022 From: tobs at taboege.de (Tobias Boege) Date: Sat, 19 Nov 2022 20:47:51 +0200 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <20221119184751.GB3944342@T580.localdomain> On Sat, 19 Nov 2022, Brian G wrote: > ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > > > Le 19/11/2022 ? 17:26, Brian G a ?crit?: > >> > >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini > >> benoit.minisini at gambas-basic.org wrote: > >> > >>> Le 18/11/2022 ? 20:36, Brian G a ?crit?: > >>>> With the latest version of gambas, I am getting the strangest issue, I > >>>> dont understand, not sure if its a bug > >>>> cdate returns different values if called with a class public variable. > >>>> Locks like possibly like in the last case > >>>> its return the gmt time. > >>>> > >>>> Hello world? ? ? ? ? ? ? ? ? ? ?11/18/2022 11:30:56 > >>>> CDATE(now)? ? ? ? ? ? ? ? ? ? ? 11/18/2022 11:30:56 > >>>> Eval("cdate(now)")? ? ? ? ? ? ? 11/18/2022 11:30:56 > >>>> dim thedate as string = "CDate(now)" > >>>> Try ddate = Eval(thedate)? ? ? ?11/18/2022 19:30:56.895 > >>>> > >>> > >>> The printed strings are normal. What did you expect? > >>> > >>> -- > >>> Beno?t Minisini. > >>> > >>> > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > >> > >> I expect the times to all be the same, the last time printed is a different time > >> zone > >> although the same expression is being evaluated. > >> > > > > It can't be the same as in your script, 'ddate' is a string that > > receives the result of evaluating an expression that returns a date. > > > > Hence this date is converted to a string automatically with CDate() to > > be put inside the 'ddate' variable, and so you get the UTC > > representation of the date as returned by CDate(). > > > > Regards, > > > > -- > > Beno?t Minisini. > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > Maybe I am just a bit thick but I had expected > > print cdate(now) > > and > > dim a as string = cdate(now) > print a > > To produce the same output value! > > This is what is produced > > 11/19/2022 10:19:18 > 11/19/2022 18:19:18.16 > No! The Print instruction converts dates to strings for humans, i.e., using the current locale, including timezone. By contrast, assigning to a string variable uses the low-level conversion function CStr() which does not use the current locale. You should expect Dim a As String = CDate(Now) Print a and Print CStr(Now) to produce the same output, as well as Dim a As String = Str$(Now) Print a and Print Now And indeed, they do. The Print documentation tells you that. Best, Tobias -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk From jussi.lahtinen at gmail.com Sat Nov 19 20:54:59 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 19 Nov 2022 21:54:59 +0200 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <20221119184751.GB3944342@T580.localdomain> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> <20221119184751.GB3944342@T580.localdomain> Message-ID: Tobias, don't you think that this would be easier if the dates would mimic the behavior of a paper calendar? To me this is so obvious, it's old, proven tech and immune to timezone issues (and GNU Lib C supports it). Maybe I'm missing something? Of course, it is too late to modify the existing behavior, because of backward compatibility, but am I really the only one who thinks that would be a useful feature? Jussi On Sat, Nov 19, 2022 at 8:48 PM Tobias Boege via User < user at lists.gambas-basic.org> wrote: > On Sat, 19 Nov 2022, Brian G wrote: > > ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini > benoit.minisini at gambas-basic.org wrote: > > > > > Le 19/11/2022 ? 17:26, Brian G a ?crit : > > >> > > >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini > > >> benoit.minisini at gambas-basic.org wrote: > > >> > > >>> Le 18/11/2022 ? 20:36, Brian G a ?crit : > > >>>> With the latest version of gambas, I am getting the strangest > issue, I > > >>>> dont understand, not sure if its a bug > > >>>> cdate returns different values if called with a class public > variable. > > >>>> Locks like possibly like in the last case > > >>>> its return the gmt time. > > >>>> > > >>>> Hello world 11/18/2022 11:30:56 > > >>>> CDATE(now) 11/18/2022 11:30:56 > > >>>> Eval("cdate(now)") 11/18/2022 11:30:56 > > >>>> dim thedate as string = "CDate(now)" > > >>>> Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 > > >>>> > > >>> > > >>> The printed strings are normal. What did you expect? > > >>> > > >>> -- > > >>> Beno?t Minisini. > > >>> > > >>> > > >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > >> > > >> I expect the times to all be the same, the last time printed is a > different time > > >> zone > > >> although the same expression is being evaluated. > > >> > > > > > > It can't be the same as in your script, 'ddate' is a string that > > > receives the result of evaluating an expression that returns a date. > > > > > > Hence this date is converted to a string automatically with CDate() to > > > be put inside the 'ddate' variable, and so you get the UTC > > > representation of the date as returned by CDate(). > > > > > > Regards, > > > > > > -- > > > Beno?t Minisini. > > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Maybe I am just a bit thick but I had expected > > > > print cdate(now) > > > > and > > > > dim a as string = cdate(now) > > print a > > > > To produce the same output value! > > > > This is what is produced > > > > 11/19/2022 10:19:18 > > 11/19/2022 18:19:18.16 > > > > No! The Print instruction converts dates to strings for humans, i.e., > using the current locale, including timezone. By contrast, assigning > to a string variable uses the low-level conversion function CStr() > which does not use the current locale. > > You should expect > > Dim a As String = CDate(Now) > Print a > > and > > Print CStr(Now) > > to produce the same output, as well as > > Dim a As String = Str$(Now) > Print a > > and > > Print Now > > And indeed, they do. The Print documentation tells you that. > > Best, > Tobias > > -- > "There's an old saying: Don't change anything... ever!" -- Mr. Monk > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Nov 19 21:14:11 2022 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 19 Nov 2022 12:14:11 -0800 (PST) Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> <20221119184751.GB3944342@T580.localdomain> Message-ID: <1256814817.8931.1668888851020.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 19, 2022, at 11:54 AM, Jussi Lahtinen wrote: > Tobias, don't you think that this would be easier if the dates would mimic the > behavior of a paper calendar? > To me this is so obvious, it's old, proven tech and immune to timezone issues > (and GNU Lib C supports it). Maybe I'm missing something? > Of course, it is too late to modify the existing behavior, because of backward > compatibility, but am I really the only one who thinks that would be a useful > feature? > Jussi > On Sat, Nov 19, 2022 at 8:48 PM Tobias Boege via User < [ > mailto:user at lists.gambas-basic.org | user at lists.gambas-basic.org ] > wrote: >> On Sat, 19 Nov 2022, Brian G wrote: >>> ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini [ >>> mailto:benoit.minisini at gambas-basic.org | benoit.minisini at gambas-basic.org ] >> > wrote: >> > > Le 19/11/2022 ? 17:26, Brian G a ?crit : >> > >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini >>> >> [ mailto:benoit.minisini at gambas-basic.org | benoit.minisini at gambas-basic.org ] >> > >> wrote: >> > >>> Le 18/11/2022 ? 20:36, Brian G a ?crit : >> > >>>> With the latest version of gambas, I am getting the strangest issue, I >> > >>>> dont understand, not sure if its a bug >> > >>>> cdate returns different values if called with a class public variable. >> > >>>> Locks like possibly like in the last case >> > >>>> its return the gmt time. >> > >>>> Hello world 11/18/2022 11:30:56 >> > >>>> CDATE(now) 11/18/2022 11:30:56 >> > >>>> Eval("cdate(now)") 11/18/2022 11:30:56 >> > >>>> dim thedate as string = "CDate(now)" >> > >>>> Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 >> > >>> The printed strings are normal. What did you expect? >> > >>> -- >> > >>> Beno?t Minisini. >>> >>> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> > >>> http://gambaswiki.org/wiki/doc/netiquette ] ]---- >> > >> I expect the times to all be the same, the last time printed is a different time >> > >> zone >> > >> although the same expression is being evaluated. >> > > It can't be the same as in your script, 'ddate' is a string that >> > > receives the result of evaluating an expression that returns a date. >> > > Hence this date is converted to a string automatically with CDate() to >> > > be put inside the 'ddate' variable, and so you get the UTC >> > > representation of the date as returned by CDate(). >> > > Regards, >> > > -- >> > > Beno?t Minisini. >>> > ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> > > http://gambaswiki.org/wiki/doc/netiquette ] ]---- >> > Maybe I am just a bit thick but I had expected >> > print cdate(now) >> > and >> > dim a as string = cdate(now) >> > print a >> > To produce the same output value! >> > This is what is produced >> > 11/19/2022 10:19:18 >> > 11/19/2022 18:19:18.16 >> No! The Print instruction converts dates to strings for humans, i.e., >> using the current locale, including timezone. By contrast, assigning >> to a string variable uses the low-level conversion function CStr() >> which does not use the current locale. >> You should expect >> Dim a As String = CDate(Now) >> Print a >> and >> Print CStr(Now) >> to produce the same output, as well as >> Dim a As String = Str$(Now) >> Print a >> and >> Print Now >> And indeed, they do. The Print documentation tells you that. >> Best, >> Tobias >> -- >> "There's an old saying: Don't change anything... ever!" -- Mr. Monk >> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> http://gambaswiki.org/wiki/doc/netiquette ] ]---- > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I am sorry but that is crazy. both should use the same conversion as, this is incredibly confusing for the user. if i want something other that what print would diplay I can specify the correct conversion - cstr(now) print now and dim a as string = now print a should by common logic be equivelent, or have more confused users that anything else It would simplify so much if what is expected is shown. The default conversion should be he same for all uses of the date functions and values , and anything else shoul;d be specified. And what about the date(now) it is not working correctly at all it always a returns a time portion when it should only return the date according to the documentation. and the time is always 00:00:00 or 08:00:00 which is the diffrence to GMT for my location. This seems so messed up. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Nov 19 21:38:57 2022 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 19 Nov 2022 12:38:57 -0800 (PST) Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> <20221119184751.GB3944342@T580.localdomain> Message-ID: <425799036.8973.1668890337018.JavaMail.zimbra@westwoodsvcs.com> I am not trying to cause change, I understand it's the way it is. I am just expressing my own confusion... Maybe just a bit thick then..... "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Nov 19, 2022, at 11:54 AM, Jussi Lahtinen wrote: > Tobias, don't you think that this would be easier if the dates would mimic the > behavior of a paper calendar? > To me this is so obvious, it's old, proven tech and immune to timezone issues > (and GNU Lib C supports it). Maybe I'm missing something? > Of course, it is too late to modify the existing behavior, because of backward > compatibility, but am I really the only one who thinks that would be a useful > feature? > Jussi > On Sat, Nov 19, 2022 at 8:48 PM Tobias Boege via User < [ > mailto:user at lists.gambas-basic.org | user at lists.gambas-basic.org ] > wrote: >> On Sat, 19 Nov 2022, Brian G wrote: >>> ----- On Nov 19, 2022, at 9:43 AM, Benoit Minisini [ >>> mailto:benoit.minisini at gambas-basic.org | benoit.minisini at gambas-basic.org ] >> > wrote: >> > > Le 19/11/2022 ? 17:26, Brian G a ?crit : >> > >> ----- On Nov 19, 2022, at 2:43 AM, Benoit Minisini >>> >> [ mailto:benoit.minisini at gambas-basic.org | benoit.minisini at gambas-basic.org ] >> > >> wrote: >> > >>> Le 18/11/2022 ? 20:36, Brian G a ?crit : >> > >>>> With the latest version of gambas, I am getting the strangest issue, I >> > >>>> dont understand, not sure if its a bug >> > >>>> cdate returns different values if called with a class public variable. >> > >>>> Locks like possibly like in the last case >> > >>>> its return the gmt time. >> > >>>> Hello world 11/18/2022 11:30:56 >> > >>>> CDATE(now) 11/18/2022 11:30:56 >> > >>>> Eval("cdate(now)") 11/18/2022 11:30:56 >> > >>>> dim thedate as string = "CDate(now)" >> > >>>> Try ddate = Eval(thedate) 11/18/2022 19:30:56.895 >> > >>> The printed strings are normal. What did you expect? >> > >>> -- >> > >>> Beno?t Minisini. >>> >>> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> > >>> http://gambaswiki.org/wiki/doc/netiquette ] ]---- >> > >> I expect the times to all be the same, the last time printed is a different time >> > >> zone >> > >> although the same expression is being evaluated. >> > > It can't be the same as in your script, 'ddate' is a string that >> > > receives the result of evaluating an expression that returns a date. >> > > Hence this date is converted to a string automatically with CDate() to >> > > be put inside the 'ddate' variable, and so you get the UTC >> > > representation of the date as returned by CDate(). >> > > Regards, >> > > -- >> > > Beno?t Minisini. >>> > ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> > > http://gambaswiki.org/wiki/doc/netiquette ] ]---- >> > Maybe I am just a bit thick but I had expected >> > print cdate(now) >> > and >> > dim a as string = cdate(now) >> > print a >> > To produce the same output value! >> > This is what is produced >> > 11/19/2022 10:19:18 >> > 11/19/2022 18:19:18.16 >> No! The Print instruction converts dates to strings for humans, i.e., >> using the current locale, including timezone. By contrast, assigning >> to a string variable uses the low-level conversion function CStr() >> which does not use the current locale. >> You should expect >> Dim a As String = CDate(Now) >> Print a >> and >> Print CStr(Now) >> to produce the same output, as well as >> Dim a As String = Str$(Now) >> Print a >> and >> Print Now >> And indeed, they do. The Print documentation tells you that. >> Best, >> Tobias >> -- >> "There's an old saying: Don't change anything... ever!" -- Mr. Monk >> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >> http://gambaswiki.org/wiki/doc/netiquette ] ]---- > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sat Nov 19 23:26:40 2022 From: bagoneo at libero.it (gian) Date: Sat, 19 Nov 2022 23:26:40 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> Message-ID: I had done the project in a hurry, actually the two functions were superfluous. So it is better Good night (it is night here and I am going to sleep) Gianluigi Il 19/11/22 14:56, BB ha scritto: > Which is about as simple as I can get it, no mucking around with putting > stuff in arrays, especially the data variables themselves. But, if I'm not mistaken, the three dots (...) represent an array... -------------- next part -------------- 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 byVeuv8AeAAA From benoit.minisini at gambas-basic.org Sun Nov 20 01:18:08 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 20 Nov 2022 01:18:08 +0100 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <1256814817.8931.1668888851020.JavaMail.zimbra@westwoodsvcs.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <5a018892-4970-787e-a56c-38fe57d3c8ef@gambas-basic.org> <127800810.8753.1668875173891.JavaMail.zimbra@westwoodsvcs.com> <0600c9c2-e719-07d4-195a-3b69bdb0669d@gambas-basic.org> <2036511727.8814.1668882386126.JavaMail.zimbra@westwoodsvcs.com> <20221119184751.GB3944342@T580.localdomain> <1256814817.8931.1668888851020.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 19/11/2022 ? 21:14, Brian G a ?crit?: > > > I am sorry but that is crazy. > ? ?both should use the same conversion as, this is incredibly confusing > for the user. No, because Print is intended to be used for printing things to the user, and so it uses localized conversion. > > if i want something other that what print would diplay I can specify the > correct conversion - cstr(now) > > print now > and > dim a as string = now > print a > > should by common logic? be equivelent, or have more confused users that > anything else No, because there are two kinds of strings: those which are displayed to the user, and must be localized (and usually translated), and those which are internal and must not be localized. If you don't specify that explicitly with CStr() and Str(), you rely on automatic conversion. As 'Print' is for printing to the user (normally), it assumes localized strings. Other automatic conversion assumes non localized strings. In a few words, if you don't get it, don't use implicit conversion. Always use explicit conversion. > > It would simplify so much if what is expected is shown. > The default conversion should be he same for all uses of the date > functions and values , and anything else shoul;d be specified. > > And what about the date(now)? ?it is not working correctly at all it > always a returns a time portion when it should only return the date > according to the documentation. and the time is always 00:00:00 or > 08:00:00 which is the diffrence to GMT for my location. > > This seems so messed up. No, Date() moves a date/time to the past at midnight in the current localization. That's all. Read https://gambaswiki.org/edit/doc/date again and again. Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Sun Nov 20 05:39:48 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sun, 20 Nov 2022 07:39:48 +0300 Subject: [Gambas-user] =?utf-8?q?Possible_CDATE_issue_Latest_version?= In-Reply-To: References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <1256814817.8931.1668888851020.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1668919188.373461906@f28.my.com> Still all I feel all default conversion should use the same conversion, regardless of the use. And then if anything different is needed it is up to programmer. The way it is is kind of unexpected for such a consistent language. -- Thanks Brian G Saturday, 19 November 2022, 04:19PM -08:00 from Benoit Minisini benoit.minisini at gambas-basic.org : >Le 19/11/2022 ? 21:14, Brian G a ?crit?: > > > I am sorry but that is crazy. > ? ?both should use the same conversion as, this is incredibly confusing > for the user. > >No, because Print is intended to be used for printing things to the >user, and so it uses localized conversion. > > > if i want something other that what print would diplay I can specify the > correct conversion - cstr(now) > > print now > and > dim a as string = now > print a > > should by common logic? be equivelent, or have more confused users that > anything else > >No, because there are two kinds of strings: those which are displayed to >the user, and must be localized (and usually translated), and those >which are internal and must not be localized. > >If you don't specify that explicitly with CStr() and Str(), you rely on >automatic conversion. > >As 'Print' is for printing to the user (normally), it assumes localized >strings. Other automatic conversion assumes non localized strings. > >In a few words, if you don't get it, don't use implicit conversion. >Always use explicit conversion. > > > It would simplify so much if what is expected is shown. > The default conversion should be he same for all uses of the date > functions and values , and anything else shoul;d be specified. > > And what about the date(now)? ?it is not working correctly at all it > always a returns a time portion when it should only return the date > according to the documentation. and the time is always 00:00:00 or > 08:00:00 which is the diffrence to GMT for my location. > > This seems so messed up. > >No, Date() moves a date/time to the past at midnight in the current >localization. That's all. > >Read https://gambaswiki.org/edit/doc/date again and again. > >Regards, > >-- >Beno?t Minisini. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sun Nov 20 14:37:42 2022 From: bagoneo at libero.it (gian) Date: Sun, 20 Nov 2022 14:37:42 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> Message-ID: <4058d965-c817-56ef-9505-64458bed45e1@libero.it> Il 19/11/22 23:26, gian via User ha scritto: > I had done the project in a hurry, actually the two functions were > superfluous. > So it is better > > Good night (it is night here and I am going to sleep) > > Gianluigi > > > Il 19/11/22 14:56, BB ha scritto: >> Which is about as simple as I can get it, no mucking around with >> putting stuff in arrays, especially the data variables themselves. > > But, if I'm not mistaken, the three dots (...) represent an array... > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Last test. This is variadic and may work for you. Regards Gianluigi -------------- next part -------------- H4sIAAAAAAAAA+xZCVgTV9cetoqxKIrViAtjWGNDyA4oJKyylE1AWtkkQAhhSSCLyhpQtCIqCKJg UbCgFBURkYp+CtQNECR1YXmsiAoIbkUWhciSfxK2KLb6/Y/1+//n8+RJ7szcc8977jnnvTN34sRm MLlOVH83KptB9Wf46QGfXjCQ6BOJ4harT8RItxMCYAl4PImAI+HwkB4WR9LHACDxH/BlmvA4XCob BAE6g8r8O70P9f8/Fad384/msD91Efwb+SfqY3FQ/vFEPOFL/j+HvD//9lQGEx3K8ueF0D4BhjjB JBLhr/JPJOrj38k/kUTAAyDmE2B/UP7L868NWlFDfakccCzbYAAjhAaDQVWxgcqlgeYsJocLOtmt dQFNOaANk0uj09igMYib1LBk8kJBTpgdLYCLglpnBj1QcmBOg5TZqPEupxAeZ7JbfDI5XoPqGBDA oXHF9h1oGycwPLwgJ3i+IQw/0IXnC4rrUQcJg4GgBSMUpLpwxUOnPPLwgnzykEKfPJgG/pYXU456 TZoOo/pNN62PAnFEFIjFQ18CdIyDWpJ4jIQ+EHcgBumMuYUat4ECXdk86Bdham7uioBaB1N7S3Fr Zmpn6mAuOXSydnSQHFislTSOrtaWzqCL69rVqxHID1hfTQ3hQA0WhycQxRZYbAYHtKBGQHZWs9ih VK4OgYgmQY4jNFDqaAwGgRT7oGcK9TuwNupAZ84sHtNfx4mBAnX1kR8LJwGzZ/gFUmkhVCadBbrR OGE8LpcxhYvFTQN24IWEoCDvuDQdCTioC2I/FlKCaMaKZIHcQBpowaJPIWHQGOLbE/yexQpATOBJ zkDJjxmVHfyxISWRSNBYVzEYbQMjBKoEPyqbKa44a0YohxYSMOWALmlMWcoDaKUj6Y5/EeNzhg4/ erY4ceRsoVI0Y03h6BPR70wUQ8CSdPVJeF2cPmECBofBQQUqrlNxXaBAPAbSxEK0sWT6T3FazKfp jrxV8qj38QAF+royuCGSi2YsVgiNykSBaDR6iparGbQQf3G35GbC5ELMcaKyqaFo05AQsRI0GZDx 9kKCAV1Z40r21E2QDgjaBICuEWE0xwCdMYMeDC8kaEQGDUEoJUyIVRHgZAdkwYXLllKcsGDJZkNg kgHSyggHljhUVIREz4UWQvPjguZUDg1kSK6AYyfY8ROJKTsaU9oTMrQSTDcMecFg0tHi5WZKWbxQ IEEtEAFFCSFtHydt/71DkWJndRFjQJPa4AQmTjIZT5oHHhuKgBCmLmtJLmNCEdKDJMkUO/qtMWg4 2QFVBSNA2i3C308b89HTxuq/d9rEv7WPJX28fezb9qGZjCdTciqpbqiq/MeGS4+cDAVEIRCBGr+V iD1YBZMKlSS+WHGaHGibuOAEdWESz8dpMJWasboeL+YxsMlqnvBmwpWpVEze+sRnumLOQglHrgIR 3yLGfBFDS81HcjgxBm0O8Y8Nm0jiexg+OXsO1IpJN3aKAhlQ5OncQCkeQrdBSP0tnXfXBORU7wTd xXakNGBjwZmwbgSOl4uEiWhnKoND00GYQTBUNp0XCt10JcvxhLquVK6ZEpeRsMkyEXsnJgRWYlGa umN+StfY+N19stImA+bE4wTqYJCTHc40Lo/NBCXR0RoH19AZ92csIsi3DYur8KPtvt8ghCQGfNvu 2BOINDcmomLP8gdx4rUPM20hmFCBGI2Vuvy2W1jke8n+V06CniDubUenR0ZK5z1hlzzavd8X3F+G SPx4+SHYv0zI/wrxvUmRApXyaPr6Ygndp8euSle2+HEhjM0KElclhxcWxmJzOSCLGRIB/Yh9hVgv KXgpvv6nH/0lMn3/Nz6LT4jxgf2f+HXPO+9/CHgC5sv+73OI+sT+z2m8eFdDG0AQj8bAoKWVzeWF GYv3XjA3GpvDYDGNoSduNBbmSvV1YUTSjHEwO2gPwKPSacYMLsyJ6hcMHbKNsf83SvuLfIS85/3P WN4/IcaH+I/B4aTe/xAk/Nf/wv/PIhJ2wzDij4TasC/c/a+S6fwPZPj705if8i+Af//9PwGH+fL/ z2eR6fn3Z7Ch5wAWO+KTYXxw/Sdg380/SR/7Zf3/HOJhQeMEc1lh0MaEy47wgtn4QU95aD00A2rR YdBu/z/t4Bf5R2U6/ycy/+kw/p7/OBJWn/Qu/wm4L/z/LJLo5GClBFMV01zJxtrCGQBkAPFX8Suo 8WT/EgA18hwzG1dFSKIV/bcDAAjYWJi6bsp6cdAmxN8mslU0l3UjPfPeDq+Whpa1Lca3W24f2ofS w6vLbQN/w8l74MDK1y3lg/6DD7YAi8ubtS/PGPKvLB/yUSy/O0OotU49cHXJK28vr4bSMBtcWt2L F3PJV5L266XZ4M61m5V3z9CwDiiP1sMJH/3RNuv1nNGrFbKmylcT9KIAeVPUnHmA/Bofa0DZIn65 jImywjZ5wHQ+/J+9iC2K2syfP/r9OT7idIUSaXSloyggjcKpsiPTX948vlPO+ZfsNxm3O31zB/pu RhjI5RnFDLcTDWckOFG01wuSk4prOKeeVHWe1NasXLR4qFJl/VwDQYVOQycVt9GoliywPBF68RVL dLukYqBbj5wKMitlm0PgZWc39DDysgYzyRRD4SI/ZdwAGesVuDP725Gt2T2Rf9JHN8aQl69OQ4m8 keE7ao2KtiYnJOx9evjaqlHhq2BnW5PT/YP90WwCeuTidmRTE6aa32fVOtKjlhUjb7qzbO5Ck1nx JWcomBbZDJIwvzx5V/BDl075xSXKvRRBpKCZWFk5+GTd1fpzTO+hZApl5PzT7qyrYY3PVA5Q+F/T g3qz6TOXnC3nPb1xQ9Sjtmxk09DzXEWz8FAZMC/yRNGi5hPJDhvvtzfZuculdbuwnGdUJw7YIRSA PauYvTxDdFiv+w9mZop2mvyW4dLSX8m84YR0LMm7oFV/9E3XppnIW4LUpZRIY5ZM1sDLyIOpIY0i 7httxPa5+qrynuvxp0qv6WUNp7mvZZhvCOrFzyauOxr4KGlYNNzjvHs4al8Ulm9I7rHP+uY43FhQ Vfpq0QEKxWFmhO1xx2VzfhHcaO8yd8SS6jsCRcigXS82ilqsKMLu/VHaawgndYFedzvbnDX4U95t fkWd/AAV/MBZ0q7Sr2rvR21zc9NzeLMYOLokW/jQMNh8SJSpFrviPCZ8eG/n1vmZjkXZameVtZIF S6PqI2T2XZNhdyrnV3T2LbscO2P01E8nQst7BDrLTLKqPG/F3Tgfv+vO0urg58U1giptPiln0TB/ qabgDH+lULsNSGsSrFcnoupfiUpatetzt15vby7dismMqN4t4Gfci7CqKrnduGVZl6bhplelVLiW 6rM/+MNW8+eA9Q+u6QIjPxzfnWCy4cRoTW+3mn15wW+FDDLlp024huG7vvC+bu0zuMsJ6XveiJwx 1nvU4Itr59sJdKqLe+SqfWeu2CxoaE2lN6laDt1u6zugltutN7SUzq/qNL47oxVh41vWcX4N08ko LqPec1Z847GvDqwla97lx7avV+P8KbjQXdSaJmjrLDrSBrj3lSQO0PYl1I3uS3HxW5RfVXW6okpu 15J5sl8v2Zk8pLVydsq65S6oxGcIy81tjRzA5KJND+C7klMC9O4zKbluRRY15/n6qfZfGN4wGrny +9lZJOU8uHDgjXtudPSfZfeiOq6s455i3kqFJ3f1FRvFvD7Q/rTU08QXd7eIfNy52/ay452ZnqZt jlFLLkQe8Ep+JHOFsMAZ5lkED7xzTVfGWMjrp2S3kr97dnzAYVD0RnjGN4VDLKi/dd+lZK5KeFy0 5v07m8yOtRj+VC3fVZSWeLPVbudFSrZShuJMu0Ldstn3TRTkZOLERiGOpuCNg2i7S2GCYd4eh9hX Q4MJBx+z8EsNfOa59HVH3EhGlp9ZYkzRPZmSLNNle2ENIdazdhYStzyHvF713H5cDNqY/uZfu2d0 CQrrj2g0DBrQh9B6fQZQWg9T1K/KbbeBEB7gKUE0lWDioaCumxrl1aJOnxS7o2vCSQE2/t02P+Ls /Z4F+8vwSCdHStq0TwDXfog0/ipuC342MuKY0CrbWE3g88C2r/bmlvhvk6zCMPA4wq3iI930Ev6P +2O6fHK2PZKxOHSuCtBSa0gtQMXPDOgRLb9G7ClTSy4OMdk3tDDI1rb9hGIiVkRJklGcjYRntK+7 EsvemVlZ7eVp9Wyr0ZC54mGiqCw7WxSzLNlg3jqMk3kPYFayt6OyITXRPWL+CEUgEpwRLUoPRw3g k+Tg6mfjOe339Uq2aJcAudWULf6+8/3gx1vpPsL57RaHDjn2PHRsUjhV3LTAlAxXhCoNHv6io7JT 5yKnoEwLnNcfjSWKirR3xcnvz98at1e9xPu7YuyNbIQzTwB05OMLLinGzZN/Yqggb1C2w956dk26 8u+qPx3ZbB2A09jvlgJ0sutk4QorqyiOG8jXXFsuySaYVER9zW+2v8eOMVp26rEIGTfwmCLru/bc r0DZ7PTTMmGJ8fnaV7tKS1BxNVmx9xNupm8xWVnsku0d9SS15mb0d9oVtnNsw16u4R5KRgG8rrIa zLqVdcJNiJ6f75FrF8qgtrfQ1y+aQxncVdz59Nkf3aOdreTzPytqu8XzhdqLm84nneyWrX5mvGJ3 4rHafMdRAvtkzEYtFxU1ut0o1yizSA+e4bNua86vsv2G6duqBttnVGp8X3Wkqp3yrKCmqPTCnabH udyc8gXNg8Le+CQF47uFPT6gKaD/UNautsArNbV2eeaV37MNmhIqDh7pba4ecVivmvk4mqC172hP bzhQ016NiKtDxT1n7azbMOJeHrBcFMEbNluniXoxrA7eOkzfah1p9CQ83zZzoUkqUFXY2dwcUfYy WOV47SuvOKSh8LjTr/aYTB84rDrhMtyl25BCHnH5Lq4giY65dSd3IM/UynDF/UW3r5179PNzT6Tz 9R6/eIKmDsfNIhLlPGtzoquzjX9BrV2f3u+vBcVD/TNnAr47jyjI5D+8+1WevJGihrti1yU1raod 0f3t+50qOIVHwt0vXz+zZvuOl8HUS6v7DHcpWSdiTXOS4vc+VjtMqNihoqh1C9SUA11X7EkkpG8P 6dVb8WDjsi2mCymjaaLSe6bK+nWUisZ/7VeVz1pds8YSFxtXXDPHDtlrU7qCLuy9e5t2KbI3mTH6 3CJXVn3kfrQW9S67o26tzwrz+Dv9VseE69Arww9qXpTHstyuy/5usE8GqfJ1DImtwHYDfmx87Z7W +dVhlxhDJQG7qEANp//wFR1OU02oOyeXaqr3/CHKXmXz8X7/Dbvu1M0ACoV73HUQrGPKV5Q49ldP sxfEXStVwigO7rG+0XWv3XHLxrakDaeHWy1gLLOkTm2RRVByx5l/Re5Oth+9ueK3e85UUiR/2VHN 2p+PxSg+gp3IU8gp1iU+2WytW7bGzIdrmjiT7231pqQ1wv2CutVmnxOLawavGxUK06/Wg2BOk3y1 ay29catF0Ovk9fz2vrTH2gsqvUoBwm4a4AzurNrfEFDheHv4SbugarZWYVyN1sG2AxSR6uKzqqeD t997pZ07kidM/OM3Ww9A9Q/n+Dgw9TqsuvNJn3DD0qsC3daGb7ak5HZURWYWjXoc1CsSWrnFJwAJ O+R+2bx8p1YUOS2HyI9E3xq+Evqg8blSoMeSk8Z78ptUN5qZd45wl8ZlH3nRWNDY8iSi4Ry3JBmZ mYCvt1I+Xl94CiAcPXw3bGsx3LL/8Ehs5jfCLpssYb9dgNyNpzK9ltuetK+1t005uNBXwzXP3Tvj zbDKvsod7cKZj06fiP7aZ16t6wGDHR0ZegKs90N974U51U9l2Havlepws/KjY2P+zNJMKXqZW+N4 z4yZrpCDVSqdazJfva/DkSaPcbfMUPMlJ1XCtyi3BQ+/iuB6xd0psneb4xAU2ytM9KguLAEI15em WLN/enPw2MtVHfnJjrEH3V35ydn803kGSa/p3TMYsY8aOd/qArsYGGBJeCrpSd3+tsfPZHLaFOAN r4Ovovtmb0Z4LM/w+EFDW4v/+pxNn8rZDI9gmUA7c/sug5qmR45FSnDi4BL6PVzGptADj7W3r7pU +CtAyAqHex7dF+fNoTAVTLqMRsoWA+2FwIO9mmCEe1TltSBlxUfosGcQ7G/pq1I0DGgK7R6JwQGn 5fOwJCguJ8PlFlQ+bb6ShbVGL5fP3t74nfX/tPPl4VC9f/9nmBnDiDGyZRtCQpZCSpZByBLKKJG1 oWyRSIixZMke2bcoH9knWbKOPflItiyTDLLvkSWD5/h8f8/vup7fc12/P57ruZ7nH6/LH65zz7nP fe73fb/er9d9n3MuNWg8KWICPtt8zXoeENOGMP6QZUSKqXb/nqpDMpVRCGraiL9bLMCzr+RXl0nN bexoRL/YYn2SoshCmxwsQ3CHC/Q51z7Gk+7BrEyEky2hsn58/yq3h9xXsM3980zPFCkt15PlkyGr bASsgEO2U8dHOChhyq5h5UT+Qeb7zMPULF3tcB+yB/XLuEXtj3DEJM/B2YOe4Yw/BgerqxY6HmOm SNWWES84YfobY35jTw+7OTt9uHQ4y2dE437Q3pAiF/bvFEVnyM/euGcpnuudmbTti9ASYoEUWiZQ KOAkSYVa30grwuxyfxMqw7+ix0u6Gpm4m+c/TilQFoBRRbHpNVz8/puSFuPvMXudHqH6KPe30uyq mneYpevjmSV5l5lfchq9vPeQ7PRtPU3lj5xQhtRZd+2iK8+JgKztcovr7/v+ErY7RudFpJxaSKuH Bw8hRDoR+NCpM1iJwElTgNXck3qDBovGzzSEQHb2GvfUq6NhI+O1HyHoVp6z6bDY2ffdPuoyLiuz uwdaq5NRFz0HnrYwDZ5gqaJ5D9hx+gv1ZO6QPq3SAVw8WAaGA5aqIDUzgENAGPWif8Yv8+9Vg3IG Gy/oHQXV7+wMoFi+GrlRoRy7vZexqU+L4ZIEi9xOx8KkmyRYLXOpB0YVWZvMsxelA5Nph9iBFqHq cLfvl+VPeVBnYg68V7ggXJ6J8nyB1Qz3IOYQsvQanf+ame1V9b6H6iL2HQwIG7aPGxEBLql/r1Zl EGdhKYet54KhJOF/tXvojMkuyMB5FH63veoPyDWVwzVXQeWtmIcOElXsR+1mew+UIFlRB73vtbCo W4GBhCENb2eCjX/ruecSBEe1JpVJefcHSMyD/cd8UxiEDb35HeB772fLQFGhnzT/bslmfpkSFGdo qW47pUlKUJtw6ut9/iSl4Ldq7P/Rqn1UE8ZU1AquoNsaspD8UCGG602r9o8giBzSV5ts9zIJ5KAD W6WzlI9oKxuiBbXvx2908pyPqDiSnuCeb1LotT32hNjQ0LD0GnUre8xlan2qY+5x/q0p01hAgY5c CRZFZ2Rk4JmfVwveq89ghkHCbW6u7aWY0KKf581tX8AfXScWwITRqNMQMAyM/14uAQSKSgsB/7GQ /uhgAgzzQh9s4fujQkNd6RzKyT0/EeRReTFciEG/d9WegQbdlkfZvuABrYEhzsYhwrW1d9xoVNgR NgHSLNp9Q2h67Xcrdu2cjHDO9CYrxsqmiWSeks6JVLjEFytX+BcT8qF+sEYyAnG2vOcRd/uzNAzE FakdHMyB5Nlj2foD2dqDMMEhl/0YpXQGTrOHsQoDekGv7z1KkKAV7lLtr3AttZmyGGyqLwjKc2yS u1RNHGU9qwcdtQjWRiScoxXur2abatCPBW5jP7QzowMsUFOtMW4/nytwBs8igTgGwK8SGH53eViC fD9Rougj+0J0+MvOWzrlDGdZkOHRHBOFuRAbgXWTluc4u9iTVQ1G2kARJjx2zTZgH0sojYbv1Ci1 XswQuNOCskioAa4t0CBSaiAEPd5RDelWNStOYWmFll7p1g1WZhexk9902X/k13oNFFGCisVWhngS ztniZR0lhEKMAjnu8vsfqHlsFiumDYsp6vKNjAUFEsQ1JKDU29lTZ28ezhNDpZj2vPq4Jsms/Gf8 ZKeGpOKEFv4S7LSwBgoqA4KwYbYqIfxn5uD476Uf7ycmOFr9mr5velY4GOqNjbQ/w6f84Pfa7gTA 1kXgOGPlxGS6Fzjecw9ShPKTKBtiXpueAPx3F6AGl9XBDgdPsE74/qleDOJFJBVmxoAdthse+uSb +E7a9tBaRjfDCo7XeHkaAQi8Gm8ET57tiVkvr5f09FH+4ZBAyg5MFZ98+50L7CbAWlAawbq09cz3 qSzpDJ0S1aYxIukuPzH2YskbG4FeZlbGZmhoCypINKCTS02ARQStiKNjIxOcJTRR2u+UpzCRRDLz mmlhjAGTN3jjNqh2FJqih4fcbhLfdjmFBsRJGL21Nxda7Yv5/N77BD68rP64zksyXiUmGA0vxoY1 ej2NbLEOs+CcaikW45P/XKaLRANAcOz9E+rUNuTb3awnSoxqv3nvLxuwk7rVaazC72f5V61OlZsw q4yvTkS0QO4EuVqXvINKh6EZc6FGglaP5Fp08iBdVu5R9G/wyDXBgFzrsKMBMIhltuQ78XX9tIZa YHnvz1nZ3Yc8DDSS63mffQ9yIUdNk2KiU6CffOvbhiZdQ03FB/HZCBiV6w/D03z0VGnmdlgOHEoj spbfVWt1xKBEaNIh7LNlJ5gu6N+8gVqzE0Ba0c9d8e+IWJt+/Wu3cZ6x9O3uButUwawhW4iAhG1Y 9/sTaRcU4KGOrmvcRaxf2SL8JMCmXFE+RUnau+vrp6DqyNkcAwNwPZRknugm67LBdzerdcHJQHO5 5yh4SaXX1yL2JS//GJRTCWJ4KSPPkB8unqlHM+fF4lfjE6ih7WTiJDtjeClf7rBnu2Zn14Ijq+LP 8PLuyE86IOgs5GeyDoC6yFwMN6fBSpSNM691r6MMLrdIjKog0yHRTUZE/YRzOHIPAA1/cQbsRawE CgkRiIN1v0nf978Yia5b+pM/KpLJ5wNOvSVjXuPSFLavqeMRsFGLsA4tdapvaYSB2bOlLdrNlntL Xl9iSywpybceqPUecVGiqlTkeps1f1aVcZnjt/uNW+FDuvI/TKWmsGNt9am02lZVHBR8T0dXSUwl hw0nJDzB1NBAihP9a1J8folE5J/YaFEWSwx4gc92sDz0ZEErnArZmXfhaPxuIOevQpLWuc7reJ+D IEH4iOUNYA/b2o/Z54xR1NnbtkP8ccujTtTYTlq0NaU5CtdVGTXZjYTgXTebFewPYoLD27gcounj N5zwY5gXLMIgg9Hj4rbfKGm0ENfyTdvtTM0fdBM8detEm+I4JrrA4UHMcjjI9NfZcGRsH/CG9yfn AqJb+3qmBNjB4e+ChtNSreW2zD0GV7xuyo4Lidjnj4iAQ3mnKUjkh1mpVf29CaGw9Vu1Z3YKlEiF FoRojuYIjcrgypnk4RKFfEWRN9AabPBYZmu4YZscx754qFHg7F3+RWGks1TrItHn7W3Ci2vaPCdO U+9tQxuHVyc2TPhr992y/NFBF/DPhuGRT6eB1dF932ufYLcxRg4mVXABplCBmgsOh6nOk0blkavj hVNTPh51Ju7goJXyUQbDuPPL8CPa+7xp+muHNK/ihcn9brFKcXkgW47x1duvv2XC0MGdu7diglvD +V/LMbpJM7otaQ2LkssiR5RLtR336KyLZA8nAJXxxUkwOlt5O9T4ZLAm7vxRzZnPqItg/oNNdtAf 5YM/kDouh71X8z1upQsUuoey6+vXeR8O3NVQo6R9QWVV/vHym8Q/ddfvPL/mPdYWaiZHncOyMn8z B0gbJXSq+p9BEjJ6RAT6HOk2q8UrA35FolW12da+L9PtdCWd2fmZHdqxDBI6xby7VOaS+qCMUYU+ GnAPhJJo1vvnDv38K+mtuHnAbnxY8uqIDvnku0TNeEq9lRuU1tfeKJHiODIvJ3lygTfOV/TRa1jC vvQZji97JVlB9pLXJ8zPtnVA5fpANR3EorSWI1qRHY2VcEVrKMyF7kzmx2Qte6xXK5F6pYMvttjT GZPK7dLyL4kUwYp1RU8JAezaKCQPo/GFGMxHL7SxM21MKv5o/JmMaI7ciFKsu51yCIah7n5lZ0Lo 2+mKPIhGZ77QNtUtFKwcYZdcB15IgfGoegPLDAo49jz3INdFJF5FfA0s0mQnfc/GUGjoWQNspdqJ /D2yLJ8TAy4O6XjVGjWnKvYF1uBMyGnKr3M0crhbFTihRx3co6Ky/vVU/nBQgaJV8jT/KWGaDotg WxU12Wnvy7UTHTT10u1NmNaqDou8XcvHuDKpFAFYSoesMbs6/rwoQoH5E81tMI9yasjArSPvhTTz D8m6Ns5M+nU/d4ymrmho78QR+PWzjC2KGJ5+cGsc5APQYMLeeTPY4iKlmqyNEJAaOCCcn6czCsQm YDJ/hQgtU8pBOmvrBSx5T4BRaAUT15SswiXd/SYh9lkdYFikSFju7MdFkPkw4cYPVB9qOs9x8nDj kdzCyC/CvpTb2o9bOOcK3n6Q09pPq8VG3noAJ01eOcffcBshdKNZ9xZjSPiv1SANTBhOqtkClbv8 3OvH7/W2CUyhyxJ8/W/bLy3Zf/sP/czPw3Z8fAtBMoFD9eUbo3UMe/UnWitDkbUPV6qbuMwjWioU XhpmvrsbSiRFlGR9ZDLKCWa2X9gHMF+e+su7BBT9PRyDfhzEqdWC2gsCSvsWWsCRWmwdFo/RVNGz K3iogIy/ACoauQ6NkfOU5PREmh56NIDUyBtzwc2vtrED9oyJTdZcvkUW1/B0TkVJThrXCNp6WU7E 2Lnn9L+UIBA2s/vV7ABG72fK6hDiXQGC3ILI4mdyTfc8+2NVHFJGvnm22WK0frYmGa4+JkecSX6g QpO6vwGKYfEXUILs1TPuEd7AYNFUVE3Evh/BBWXres15MZVHETdoXZW2xV13XyI81mvk93ojPz9J LioOiQp3Kn+ZlkwloF27Xz6360z1N3sPyo4Pp1wDpNutHv0Oa2tj2fkbrx3s8CKOIeCFM6VYk55X qvkAo6oS2f9rfKO0JyXV/MSt4hVdoTWJJGEFZkg2d/tcZenMkCU8zb2o9nNzShUg+mdfT5JEI8P5 ftA5DvVgcaU8PFin8Hcgp2MJfXyhnuqg/NqKN8xawrisO6ZDJ6CnWV4hdf6nf/FCc0S8LoyD47kk 4Y5lMMzQVRuQQLVzSpTwOYXw+ILzLG8RvtngR0jFpIEz/aLOzg9PNoLYhhKP5tok1Fqyy0oaTv4p mgKX72LnG9AdfnfJ9ZyfrfKe/lQyTxqeO03YRxg2cPeIM6wN1QjEkRqy9xH7MpPZuLnnTSz+XEm/ 4ITjOeKlbUdJZcff6x72YUlK/MvWyThEokT07/dRQ4uSPx4krjfZscHtdy539++tD+b+3miWUagU k68UEwJmTsAgHKrpJW1D8zL15tuCIXGkqg5leR35H04JX0VNy6rF6OwMiYSXpmoj8qDcjnr5PKMk qPKiAKCjA9QZPVm3Kg7eMjRlK/U+qOjzuBjl4nWjIurxqhrrt7oqcfGdfT12Eg2CFcfdOM78dUuQ sfleHrtVkGhTOSszroPkw83mlOBU9FEkUpY9+1xAiONkbRquzkjqLAdm7ALKUI628rU50J6AWy+Y nZongk7xbnI5QuKL0RM9ud3+U4AYkCoF3kDYSsBFhO0VpS3jrsUPfv7sbazCDlkkjjPKyipLLTIK P1wSy+I0OyqEKalw836S3dM/TzcX6oKwBPsOvgaFU/l1z1wvkKPGTlY2lVlUlplWGhEZ70CqgXzh 4fQ4IHqfs3F0dTKJTikdWu6ydmnhjTvIfVMcHXMwmWCn5mErcCbo+FZ67Hp7/LilRUsd2WACo9C7 ZcffkeOqR7stxgSqXIWZyLtaJfrEI70xoy0kBDJVfUPMmQwBi3QvDvYxPUHIZgu0J1pJ+13BDvU2 pSI1yK5Ts9OY2/52e/4tS0GhHONFH7dAUCaC6j6r6s9O0WBHREmMdlH0fGkvTAdUuyXXRv1ZYoHk 0zV//Yj/gqKjrVj9UbTcuIF4lzjasLS7liW8U3OhtUWTi/mbjlf9jFWuU+4MpysjEz2uavyEzQe4 gIUnbiP2rw71pS2ax3WIuOqPBfVpb+6d8iqemaxIjegretYR5og1JVw6H4m+ou9zKD5+6GCZGXwn buiEzaYabtN9qdBj22eWnvAaDZTWNIwyUQP5fLvUtA5xQ7bcaXjkVl3uYeo/TuHvOD/OKTefMDAz /pnoTviq886T1c9vcsIVNdmVOwD7VLF4/Wc1kqLVqXN17wxRQQvkD6NK8M/oyf39wxwMRJoOLcCC DGBVaXfpyfpIRynSUBNkmBQvrbKU44m3rc3xPayxjZZTEZhBho9cQiHxgU+u4At6UrelxPBdpKCa CDrHlb95Q8PTAkxovwRgjNKsPoQI/LEODBM5TJEWhaxp3nl3+z17YfyLg6zXGArPp+1Dy7Y7e7gA LE7sm5M6XnZBUidC/hDpp3KT0YoJSgRFcbYcws4h966xhPrVgypxJjBbp0qeO7wru+ncExAx6snK MLZFBfko6vGvm/OHNqAKZ2pVm17S2t8Of2DsRAsSgletqWa3zIOJHjTmn0IbVN6zzWuA3nOsh7z3 sMQUqJAYrh4m0cAgs6ovE1cs8BfTBa3eOjdWfWayKP04XDLsmojbs1zzZzYF3FV1BnukdFr1FFdP nqj3WTeLQst/Zv/M7nxYLyEKl6Z7Aw02JNv2CALpsqeY4JuBnNgrZo2Eq7YgBVkVEB+Mxqg+hPxg nkpZ4P0wfwiqTMXF6bYPByJfgqGk9K/7VPvXK8k7rrUM7ZwNV5Zy5RD93eomdO0Dj8bsrsktHTVE n9ZI8CsogGuUNDpivqjQPaY7jVx9iFs/sIPJpbk04dXGD3is9CqAi8NOyyKfH2SBArB5Qk9ua1Nw U60i1t7oVbA3LhOfL29T+Vq23vZRdd5ovnvuPVulsQ+n2dG19YCWhezN+Jtkym13/e+ltV7uxcEZ BbqLB0mMYN8Atg4+4v1WVvSS1C88Qba1S6Ll1abtLiqkv4r5Mh9fqYi8mOy/55LocuqGu54sD2v3 ywWNOtNKoimRiDPZR4gnvvNGttMYXC4opVzsUGe0u92P/tYMAIxnj54FcDC/pn+4/U18WKzQTkTX YJ+N6peXaOVOuJD44LrU9SDILCn7w8MxmXWr7rbrg9hOY8UdpyRnnqcCIfPs5liJAQeSBoYdHZ5g n2mRNURhhNtK79y3FyyeLzbuJ8O12s4bPtGTNWfVH2rXHM0yQAa8eHsqorIesbyF2tsH9mgH54zT N7g8Oh/2V6z90IStOht/dS1mm9+9tbSXYk64ZHX+1YyYGfwPNpASOOUxbXUxjGjxfu1O99VB+XXw 5x0NC0vl5G23r7eW6xT9gllVNFUiJ9po4pIznSnz1zVKHmQnRP9lw5U/Cv/Gw+pYcn6au+R5iGOO TWG3Qka6IUgRis+uqxVIap3hO1giM/k9/XrVEaVmjiqVVlAfuVF/0Fhr1FS7iDd2/rxXSgMmZCYw 5XfLgKb0w+5ugAyA6FMdnZBuDZK7VT8kQzzntEMELZN16SwFMyacP3V1Xv77O0DbuB5rgXDNqxzx jKSHWBkggCG108tNludxl6MNFDav1eSuE/mnyKzMIA9P9Jsw90TXp1zmWRz0Wy0qlLdLw/vg+/yu NmZ10iTT7tYve/pwzPsPNjtWzdpWzVCCqlOVeriCHAuilD4/WLmiDc259x321Sw6whi84CSziO2F WoDd3jRt/dqA/JRMJh/z+l89l4+MeG29Vd6Ja1yEPMfJIc+Fnd9D3953Np7qzzoiIJ4g+4YNCTYX vyOjSiTfJD+jIxJSrmt/4dSLdufGIy5dBd6sNjKBDe+N48CnHoK5w7efKw8XPds4PsmII5MWf6Mb ak3bcj/M+Pc1YxLp8JAZEp5sttiw77MPhKoPKlXb9TQohGBT9m5ERzfSI806RBoun6IcKq1SQD/j 6VNQPyJhlvauTRnv+6Q88OLNfv/pF34MfirxMGk6pyDbXCfbwsn85WLOm6O7kVOs7wIdQen38LK6 rC476PlG7n3Utj6fmDowlL7p7Wt0tLLyAQ458lxvBjtKmby9/HJ8DyJkVQxuvjDDc68+NAFnLxuZ LW30WTEGzLUEfP7JH96daueiiiw/SGvTKGwJUn0bkaeLE83ci9/ufN43rLhwWDfY0bNVc7TIdJ+z ++cGrcOvi3eRD+V0drz+CmGuLCgYSLl9aa7xPB1jO5iSv5kjwQxmxsZNF7TWfDcAbhT4Fy8zjtxK jjpfUJni2ZlROlLkiUavCQbEY9q7MmOkmPZ2wAuA05oJPqHHajnIKw3O59WSpPUJkxPMaXinW06/ 9m6dBJ2WoNlqg4UmOUY67CUSppqMeExFgEmW+qgRGSTjW4Z77jjqzuuY4Cnj1/t7vRPLH0OmvaK4 5SptiO00LUR5fDvKfI2/vWn5VweIpibxWXmHDmpY0qXsVxl3fps0g9b/6pB6R0Rs+k3Z028+I8A8 oqy4ZM9F0E4gJm51zertUoew9ieoj9ksyRFHa2P69mEGZs9AlQKap4m7NvzquM77FL/uNjozXF0j ri3NUbhaxNJ52fJoDZVw6QaR8YpTQu8JG99HX1sspAgcEcha6Dzvc9DwY164/by6c782JKMgtxLW OOP7olxfV913jI+yGD3a4FTKT2mNObLISfftCoL8tguY/Hayw2OeLFRb3kQ+23lxkorqF4BIa0mo n8uqt3Rf37rDtWwt28/3zEiwd12wNVz1pcOCaBxIrgmSn2QoPz1h8skFHF9fmOioqgmyfK6LYQ03 RASHL9wYYB44CJTygTS4gPfW0bJRElrCb6kjsFABl+tovT7YtF3puDNncWK1KAmUa8msZxulGXtX t1lCJqYbPon3uVRxeBaTGegJl3KCbPSHmrcrC9fiofvSmU/jr0uxe/X+7j3BCkZj/c5gU5Acx3a/ /J1FPLdjdPh7/L1AwFDET0ioTjubo30uLy2cz1vgn4VdgTtBQEfDqNNjlMhazs++b2UWjkdOUIs5 dcdx28FrWDTrY5Vl43jHVEdMr0uV1NO3ha9hTG7yRwLyS88tZ1bQBTPmQME0oz6GnQ0MrhFrwnVf NQtC+TwDvRNhzIKwXBD1uy8Y0O52FrgBQSHB/DmGYQPUhYFN78BCF86CW9uDvKylgzy+DwtDVscL J+qjGBai6Wcju5WapTVqx9oPDg5eleh+v3ISag5cPr/SQVOMDdPQueJSeK7FHqt9Ly0qpBMFEs9P mp86IR3mwNm4T/QcGGfjgm+s5s8aaU47L+yCWpu/oZekRZarGxQ9W35Yubxg9s+avCTQRSljFIYq fy8Q0CGHaL0zUNZddBUYLGjCsCi0PwKD2CdreTrK0bfatK1D0eOKQ0Hq87ceW/XwI+aE3caAIdsz w0nD03dYcjSsqvizVWz1rEaqRTo829pBkU6NGuLe+aIJU2Sjw5HNU6brW6ezo1WRGqVoxjT8ByW2 jErGTIaACFuaLgIW9schOtyHjS4mVdg39g/14cDd276wUe+7EeQrW4vq7KRAa+CbLrvf1EEqw+RH dmXn35JsrLdPer+a8O5sfiKP4xhnrnLwMnzSK2FaprA8/YQM6jCaXmzNjdTL5SeYzuJHMUETu+Gh LqiWGNaKv0gv2x+4hdwY5S+bv+NVNjO5XyzWUG7UlGvH1f1STL+h2D0rHJHISIo7eeAngrS6Jp0v ks3vhDMyuMXklyjZMLJY6NyWNM2S4EzLvCD5w7SUEtQt9sMhv4LqWBK+wDs39bAT8OgNPB3axfe5 7+P+YbdZWMn0E33akneFfxK+eehFgw5i1CI4/jFLb1GXa6kse/55izGpMhtuUAyB421q7DcDSPRN 1wcDbH+RkybTVB0PCuayU5ZeS/h08fX1CUDKaBL0BmXLV5KPlke6SmJKo+Fe3/km076gtCySK6k1 I4sO/I1gablRMzkKzSfXVW3pDjqUXtdzAzyvfpjNw5Qu5Mj5Xxhp0fyFxo/c3YpNZKInsKkO0Rs7 s5LZ6EAClzOrWpYnjjPLhBl/LOFHQokFizHBGjk+kEw3F3j9zbgF1nxycNI5WuH43HtcwxJkL3d9 eqDezxLH8cMlqjRlgKpPjClYIglzEKAksddyj1oq1sB8UDp0l/rnOq+zipojatIKZVXKkS3HWP4M Cn/tyXIdCWkfuAMVd2a2eKLnlOi8NMBzJT+p7KZHWWYlVMos7xFEgnZFbGnYPUjP4QCs+iXHE0dJ mgTYbYHN0YCXb//slCadQ7wrgMfUzX0AtJNW4PMF2LH8m/q+Hg0bUFJ9QVSe4+t7XO/euj4RUZK+ unFmL5+hj/r0E81t602H5vd4EoURpAm63+hAIQ8Iepqm9WMlhQC1n9IN5rrBQeJ0PnmjUrOpo1Zu WSu9jxooeygkBJhwOrOsPaaNWeDKaArWs4UAAD1c3iM0K0c11d9TG/gO2fz1/UN49fnZpMs502rg sftyFF4MmSObAt6B5vuYF3P3YCqPVzNDAgmtGQL9VGIfla2PyqEmCbgtcvVT17U34nv8ZYSAMDPm BweF6jSE6orYmUblowPIBweL6ljVyW8yuI0zb3ZLaSqgp114ExkNDZhwmSp+4S8UQoTVv9Y/ffoJ hnE58dcG1Sc/zLaPOkSAAm6OnENUqRvdBsqHHhiIK5P3Ge5Ju+oFi2dvdmfpYJAe7Crenmxf1Cwg 2YbbXuiS9ddLPcwTQFJ4ckTV/uo33ZJm0M3bZeVdPtPt3x8LYEzY+6gboSa0aPHQb9RXb4I060Ir 7jHj3fQK/8wApkDr59dy/kGyh98FIKpFjPGpWb4Hu+qmgA1e4e0uK3hmiAT4P+V8wGm4aDifTo5W qj/kpAVAtdhrlPBBQImyK+3fpKBYc/p/di9FEdooWMj/u1N4ruloXxAV+6/9QPCAzP/9gfkobGcj 6ScU1Xo3IJAA1gB2x//ZW/z77V3CITv1bgFUMEyRxvR//oHZf23ZHtIqto1OP0236Dt66vjaVVBa q1kF/i8++HyMf/Cfn/8/+qzPf+8H4P4L33+Tl5c/fv/rfwL/Of72/7wP/r/3/p/sv97/kzmO/zGO cYxjHOMYxzjGMY5xjGMc4xjHOMYxjnGMYxzjGMc4xjGOcYxjHOMYxzjGMY5xjGP8//BvcB2JmgB4 AAA= From mbelmonte at belmotek.net Sun Nov 20 15:21:27 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Sun, 20 Nov 2022 15:21:27 +0100 Subject: [Gambas-user] How to survey? Message-ID: Hello friends. For my photo organizer program I would like to add a list of devices so that the program recognizes, when connecting a USB device, if it is a phone or a camera as the location of the DCIM directory will depend on it. I tried to do a poll on several places like Doddle.com but it only allows voting options. Is there a website that allows to paste data anonymously? This text can be a text string created for this purpose with a button in the program gambas something like: vendor_id, vendor, model_id, model, type (phone, camera). It seems to me that, if we come up with such a tool, it would allow us to keep updated statistics on which Linux distribution is being used in general, which version of gambas, etc. Data that would allow those who want to distribute software to know in advance what kind of packages to create or what components to avoid, for example in case the vast majority use gambas 3.15.2 to avoid using the Splitter control. I also made a pastebin to show sample data: https://pastebin.com/k2ShCGLv Thanks. Martin. From mbelmonte at belmotek.net Sun Nov 20 17:28:21 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Sun, 20 Nov 2022 17:28:21 +0100 Subject: [Gambas-user] How to survey? In-Reply-To: References: Message-ID: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> ok, I prepared an anonymous survey, if you have time please send me the information of the devices you use to add to the list. https://form.jotform.com/223234611150037 Thanks for participate. Regards. Martin. From benoit.minisini at gambas-basic.org Sun Nov 20 17:34:10 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 20 Nov 2022 17:34:10 +0100 Subject: [Gambas-user] Possible CDATE issue Latest version In-Reply-To: <1668919188.373461906@f28.my.com> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <1256814817.8931.1668888851020.JavaMail.zimbra@westwoodsvcs.com> <1668919188.373461906@f28.my.com> Message-ID: <3a3ef801-4357-ae92-6020-eae807c2102b@gambas-basic.org> Le 20/11/2022 ? 05:39, Brian G a ?crit?: > Still all I feel all default conversion should use the same conversion, > regardless of the use. And then if anything different is needed it is up > to programmer. > > The way it is is kind of unexpected for such a consistent language. > It's just the 'Print' instruction that uses localized conversion by default, for the reason I told before. All other instructions uses non-localized conversion by default. Anyway it's up to you to know what you are doing when relying on default conversion. Otherwise don't rely on it. And by the way, it works like that since Gambas 1.0. -- Beno?t Minisini. From t.lee.davidson at gmail.com Sun Nov 20 17:38:09 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 20 Nov 2022 11:38:09 -0500 Subject: [Gambas-user] How to survey? In-Reply-To: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> Message-ID: <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> On 11/20/22 11:28, Mart?n Belmonte wrote: > ok, I prepared an anonymous survey, if you have time please send me the information of the devices you use to add to the list. > > https://form.jotform.com/223234611150037 > > Thanks for participate. > > Regards. > > Martin. Your survey says, "Please use the linux terminal command: jmtpfs -l" There is no such command available on my system, and, according to the package manager, no such command provided by any package. -- Lee From jussi.lahtinen at gmail.com Sun Nov 20 17:39:21 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 20 Nov 2022 18:39:21 +0200 Subject: [Gambas-user] How to survey? In-Reply-To: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> Message-ID: Sorry, but this cannot be the right way to do it. I would guess you can parse the needed info from some lsusb output or the needed data is already collected. You are not the first one dealing with the issue. If nothing else, I would just look for the DCIM directory in a general way. Jussi On Sun, Nov 20, 2022 at 6:29 PM Mart?n Belmonte wrote: > ok, I prepared an anonymous survey, if you have time please send me the > information of the devices you use to add to the list. > > https://form.jotform.com/223234611150037 > > Thanks for participate. > > Regards. > > Martin. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hans at gambas-buch.de Sun Nov 20 17:47:24 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 20 Nov 2022 17:47:24 +0100 Subject: [Gambas-user] Property Webpage.Buffered Message-ID: Hello. I need help regarding the meaning of setting the property Webpage.Buffered = True of the class Webpage (gb.web). The default value is False. To put it another way: Under what conditions does it make sense to set the value of the Webpage.Buffered property to `True`? With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Sun Nov 20 17:48:49 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Sun, 20 Nov 2022 17:48:49 +0100 Subject: [Gambas-user] How to survey? In-Reply-To: References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> Message-ID: <49c027fa-4507-2938-bcbf-b2e8c3aae1bb@belmotek.net> El 20/11/22 a las 17:39, Jussi Lahtinen escribi?: > Sorry, but this cannot be the right way to do it. > I would guess you can parse the needed info from some lsusb output or > the needed data is already collected. > You are not the first one dealing with the issue. > > If nothing else, I would just look for the DCIM directory in a general > way. > Actually the problem is solved in the software by asking to the user buy this "solve" only is for this user, so i intent to made a way to inform about devises to create a database more useful that available in USB.ids. Over the time the program no ask to the user only connect and enjoy. That is the idea. Yes, the problem is always the same, but I try to delimit it down ergo, reduce it. From mbelmonte at belmotek.net Sun Nov 20 17:49:17 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Sun, 20 Nov 2022 17:49:17 +0100 Subject: [Gambas-user] How to survey? In-Reply-To: <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> Message-ID: <5c7dfd28-3bdc-c35d-9fde-e83096b1bcc4@belmotek.net> If I remember well you use a distro RPM based right? El 20/11/22 a las 17:38, T Lee Davidson escribi?: > Your survey says, "Please use the linux terminal command: jmtpfs -l" From benoit.minisini at gambas-basic.org Sun Nov 20 18:01:22 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 20 Nov 2022 18:01:22 +0100 Subject: [Gambas-user] Property Webpage.Buffered In-Reply-To: References: Message-ID: <47b43147-f691-b0ce-4417-d0e28068f7f0@gambas-basic.org> Le 20/11/2022 ? 17:47, Hans Lehmann a ?crit?: > Hello. > > I need help regarding the meaning of setting the property > Webpage.Buffered = True of the class Webpage (gb.web). The default value > is False. To put it another way: Under what conditions does it make > sense to set the value of the Webpage.Buffered property to `True`? > > With kind regards > > Hans > If WebPage.Buffered is FALSE, the standard output is not buffered by Gambas. It means that the generated response is sent directly to the standard output, usually a HTTP server pipe. If WebPage.Buffered is TRUE, the entire request response is buffered, and sent in one shot to the HTTP server. In other words, when WebPage.Buffered is TRUE, you are sure that the client browser will receive the resulting HTML page (for example) the later as possible but in one shot. Otherwise, the client browser may receive a partial answer to its request while the CGI script is generating it. A generated HTML page arrives faster, but the browser may display part of it while waiting the request to be completed. Regards, -- Beno?t Minisini. From hans at gambas-buch.de Sun Nov 20 18:17:14 2022 From: hans at gambas-buch.de (Hans Lehmann) Date: Sun, 20 Nov 2022 18:17:14 +0100 Subject: [Gambas-user] Property Webpage.Buffered In-Reply-To: <47b43147-f691-b0ce-4417-d0e28068f7f0@gambas-basic.org> References: <47b43147-f691-b0ce-4417-d0e28068f7f0@gambas-basic.org> Message-ID: <432a628d-839f-e288-f2fc-945216708892@gambas-buch.de> Hello Beno?t. Thank you very much for your prompt and detailed reply. With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Nov 20 21:13:03 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 20 Nov 2022 21:13:03 +0100 Subject: [Gambas-user] WebPage and external files In-Reply-To: <21737dd1-7a82-e2e7-c470-a54f0bc2cce6@gmail.com> References: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> <21737dd1-7a82-e2e7-c470-a54f0bc2cce6@gmail.com> Message-ID: <2feb27b9-b6a1-9300-b9e1-906af200cab4@gambas-basic.org> Le 16/11/2022 ? 02:41, T Lee Davidson a ?crit?: > > [I apologize to the members of this list for the lack of context as the > other half of this conversation has been sent to me off-list.] > > That particular project works fine with the IDE's embedded http server. > However, it does not work as expected on either Apache or Lighttpd web > servers. > > It appears that the files, linked in the WebPage using > <%=Application.Root%>, are provided to the server by the Gambas > executable (eg. the path for style.css in the project's Public directory > is /webapp.gambas/style.css). > > This does not work on the web servers, apparently, due to what the > executable is providing to the server as hinted at by this browser > console error message: > The stylesheet http://localhost:8888/~user/webapp.gambas/style.css was > not loaded because its MIME type, ?text/html?, is not ?text/css?. > > Indeed, what the server is receiving is the actual HTML of the page > itself as can be seen by the attached pic. > > > I think it is a bug. But, I could be wrong. > There is no support in 'gb.web' to serve the '.public' directory of the project, but the embedded http server has it! So when you run the project from the IDE, it works, but when you run the CGI executable through a web server, it does not! I don't know what I wanted to do when doing this mess, because if 'gb.web' serves the '.public' directory, there is no need anymore to do that from the embedded http server... -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sun Nov 20 21:18:13 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 20 Nov 2022 21:18:13 +0100 Subject: [Gambas-user] WebPage and external files In-Reply-To: <2feb27b9-b6a1-9300-b9e1-906af200cab4@gambas-basic.org> References: <4595ae41-233d-a4d1-d033-5d8238898701@gambas-buch.de> <7e36d49a-01cd-8851-00d7-68d962c0488f@gmail.com> <21737dd1-7a82-e2e7-c470-a54f0bc2cce6@gmail.com> <2feb27b9-b6a1-9300-b9e1-906af200cab4@gambas-basic.org> Message-ID: <135d8e48-d49c-e527-4291-379d2c1e9779@gambas-basic.org> Le 20/11/2022 ? 21:13, Benoit Minisini a ?crit?: >> >> I think it is a bug. But, I could be wrong. >> > > There is no support in 'gb.web' to serve the '.public' directory of the > project, but the embedded http server has it! > > So when you run the project from the IDE, it works, but when you run the > CGI executable through a web server, it does not! > > I don't know what I wanted to do when doing this mess, because if > 'gb.web' serves the '.public' directory, there is no need anymore to do > that from the embedded http server... > The problem shoud have been fixed by commit https://gitlab.com/gambas/gambas/-/commit/36b425aef11acd36d6681351af09370f99a24cbe. Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Sun Nov 20 20:47:34 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sun, 20 Nov 2022 22:47:34 +0300 Subject: [Gambas-user] =?utf-8?q?Possible_CDATE_issue_Latest_version?= In-Reply-To: <3a3ef801-4357-ae92-6020-eae807c2102b@gambas-basic.org> References: <1209091373.8569.1668800190569.JavaMail.zimbra@westwoodsvcs.com> <1668919188.373461906@f28.my.com> <3a3ef801-4357-ae92-6020-eae807c2102b@gambas-basic.org> Message-ID: <1668973654.724090682@f43.my.com> I know, I am in fact a little thick, Sorry -- Thanks Brian G Sunday, 20 November 2022, 08:35AM -08:00 from Benoit Minisini benoit.minisini at gambas-basic.org : >Le 20/11/2022 ? 05:39, Brian G a ?crit?: > Still all I feel all default conversion should use the same conversion, > regardless of the use. And then if anything different is needed it is up > to programmer. > > The way it is is kind of unexpected for such a consistent language. > > >It's just the 'Print' instruction that uses localized conversion by >default, for the reason I told before. All other instructions uses >non-localized conversion by default. > >Anyway it's up to you to know what you are doing when relying on default >conversion. Otherwise don't rely on it. > >And by the way, it works like that since Gambas 1.0. > >-- >Beno?t Minisini. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at cd-bahia.com Sun Nov 20 22:33:07 2022 From: gambas at cd-bahia.com (Dag JNJ) Date: Sun, 20 Nov 2022 22:33:07 +0100 Subject: [Gambas-user] Problem with String[] In-Reply-To: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: Am 18.11.22 um 17:51 schrieb T Lee Davidson: > On 11/17/22 13:25, Dag JNJ wrote: >> Hi all, >> I have defined this: >> >> P/ublic arorder As New String[]// >> //Public arorderb As New String[]// >> / >> and make this in a subroutine: >> >> /??? arorder.Add(fld)// >> //??? arorderb.Add(ada) >> >> /// >> /fld/ contains a field name, /ada/ = "ASC" >> >> the first assignment with /aroder/ succeeds, the second with >> /arorderb/ makes an error : null object >> I can't see any difference between these objects, and they are only >> changed in? this routine (so far). >> I am thankful for any help, allt he best, Dag JNJ > > It is quite difficult to determine what may be causing that without > seeing the full code. Perhaps somewhere 'arorderb' is getting > nullified. Can you pare it down to a small project, that reproduces > the issue, that you can share? > > Thanks for the feedback. I made a silly (beginners!) error. I defined EKT_order and EKT_orderby by like this:? _ /Public EKT_order as ////New //String[] ///Public EKT_orderby as String[] //and called a Procedure /MakeOrderType(EKT order , ///EKT orderby,/, fld , Column) //Public Procedure MakeOrderType(arorder As String[], arordorb As String[], fld As String, clmn As Byte) /Shame on me, cost me almost two days seeking the error. I just forgot New. Found it at last. Really embarrassing. Best regards, Dag -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sun Nov 20 23:21:20 2022 From: bagoneo at libero.it (gian) Date: Sun, 20 Nov 2022 23:21:20 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <4058d965-c817-56ef-9505-64458bed45e1@libero.it> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> Message-ID: Il 20/11/22 14:37, gian via User ha scritto: > > > Last test. > This is variadic and may work for you. > > Regards > > Gianluigi > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I apologize, there was a logical error in loading the offset matrix in case of center column and iLenght even number. I have remedied this in the attached version Regards Gianluigi -------------- next part -------------- H4sIAAAAAAAAA+xZCVRTR/d/bIpYFMVqxIVnWGNDSEISQCFhlaVsAtLKJgFCCEsCWVTWgKIVUUEQ BYuCBaWoiIhUtArUDRAkdWE5VkQFBLcii0pkyfde2KLY6v871p7/+bycvHlv5s793Zl7f/NmHk5s BpPrRPV3o7IZVH+Gny7w6QULiT6RCJc4fSJWshwXAEfQ0yMR8Xh9gj6AxeFJ+kQAJP4DvkwRHodL ZYMgQGdQmX+n96H2/6fi9G78MRz2p06C/0v8iTg4/npEvS/x/yzy/vjbUxlMTCjLnxdC+wQYcIBJ JMJfxZ9IwhHfiT+RRMABIPYTYH9Q/sfjrwVaUUN9qRxwNNpgACOEpqAAZcV6KpcGmrOYHC7oZLfG BTTlgDZMLo1OY4PGIH5Cw5LJCwU5YXa0AC4aKp0Z9EDxjTkNUmajx5qcQniciWb4YaK/OtUxIIBD 48L2HWgbxjE8vCAneL4hDD/QhecLwvmojVJQAEELRihIdeHCXSc98vCCfPKQQJ+4mQL+lheTjnpN mA6j+k01rY8G8UQ0iNODfgToHg+V+nAfMX0g7kAM0h51Cz1mAw26snnQFWlqbu6KhEoHU3tLuDQz tTN1MBffOlk7OohvLNaIC0dXa0tn0MV1zapVSNQHrK+ihnCgAofXIxBhCyw2gwNaUCMgO6tY7FAq V5tAxJAgx5HqaDUMFotEwT7omkLtDqwN2tCTM4vH9Nd2YqBBHX3Ux8KJwewZfoFUWgiVSWeBbjRO GI/LZUzi4vBTgB14ISFoyDsuTVsMDuqAuI+FFCOasSJZIDeQBlqw6JNIWAyW+PYAv2OxApDjeOIn UHwxo7KDP3ZKSSQS1NcVBqOtZ4RAmeBHZTPhjLNmhHJoIQGTDuiQRpUlPIBWOpLO2A85Nmbo9qNH i4dnzhZKRTPWJI4+EfPOQLEEHElHn6SnA+2YxmHwWDyUoHCewnmBBvWwkCYOoo0l03+S0zCfpjry Vsqj38cDNOjryuCGiCvNWKwQGpWJBjEYzCQtVzFoIf5ws/hlwuRCzHGisqmhGNOQEFgJGgzIeHsh wYKurDEle+pGSAcEbQJA14gwmmOA9qhBD4YXCjQig4YgFBImxKoIcKIBsuDCZUsojluwZLMhMHEH SWWkAwueKipSrOdCC6H5cUFzKocGMsQ14OgDbuxBbMqOxpT0hAytBFMNQ14wmHQMvNxMKsMLBQrU BJHQLCEl7eMl7b+3Kwp2Vgc5CjShDY5j4sWD8aR56OFCkRDCZLWmuBobipTsJA4m7Og3xqDhRAOU FYwASbcIfz9s7EcPG6f/3mET/9Y+jvTx9nFv24dGMhZM8aM4u6Gs8h/tLtlzYiogCoFI9NirBPZg pYLEVInnFweHyYG2kQuOU1dB7PkYDSZDM5rXY8k8CjaRzePejLsyGYqJVx/8pANzFgo4aiWI/AY5 6gsMLTEe8e14H4w5xD+2wngQ38PwidFzoBIm3egjGmRAM0/nBkrwEHoNQupv6by7JqAmWxVGZ2Hc jBE4lhdiymGcqQwOTRtpBtmjsum8UOjtKl53x9V1JILKFPuGUpjIB9gNOPNxYouSHB11SDKZxl7j Eyk1MTNOPE6gNhY10eBM4/LYTFA8DZpj4OraY/6MDh31tmE43T7a7vsNQkgw4Nt2R7cakiQYnxV7 lj+Ihxc57BTGj6tA1MVJVL/tFm7SLUvoNQL+paKE/5L0/6vRgJ4g/u0RTZ1CCZ33xEe82Xu/L/i/ nEt4w/kh2L+M3H+F+N7oSYBKeDR1xYGnfLRWkgLwBiKMzQqC05fDCwtjsbkckMUMiYAusK/QOiBm hgSD/4X9/9Tz35jPnxDjA+c/+HPPO99/CNCm9sv573OI2vj5z2ksVVdBB0BQD4NVgFZcNpcXZgyf vRTcaGwOg8U0hnbcGLyCK9XXhRFJM8Yr2EFnAB6VTjNmcBWcqH7B0C3bGPdvJPIX+a/kPd9/RuP+ CTE+xH8sHj/5/YdAEvNf/8v3n88iYnYrYOE/MbUVvnD3f0qm8j+Q4e9PY37KfwF89Pd/Ap6oj8PD /MdDVV++/38GmRp/fwYb2gew2BGfDOOD6z8BN7H+4+F6HAFW/7L+fwbxsKBxgrmsMOgYwmVHeCnY +EG7PIwuhgGVmDDotP9vO/hF/lGZyv/xyH86jL/nP56E0ye9y38C7gv/P4skOjlYKSqowDRXtLG2 cAYAKQD+yU+DCk/2zwFQIcsxs3GVhyRa3n8bAICAjYWp68as5wdsQvxtIltFc1jX0zPvbvdqaWhZ 02J8q+XWwb1oXT01ma3gb3hZDzxY+aqlfMB/4P5mYFF5s9al6YP+leWDPvLld6YLNdeqBa4qeent 5dVQGmaDT6t7/nwO+XLSPt00G/zZdrPy7unq1gHl0bp44cM/2ma+mj1ypULaVOlKgm4UIGuKnj0X kF3tYw0oWcQvkzJRktsqC5jOQ/yzlbiiqE38eSPfneUjT1UokkZWOIoC0iicKjsy/cWNYztknH/O fpNxq9M393XfjQgDmTyjmKF2ouH0BCeK1jpBclJxDefk46rOE1oalQsXDVYqr5tjIKjQbuik4jcY 1ZIFlsdDL7xkiW6VVLzu1iWngsxK6eYQRNmZ9T2MvKyBTDLFULjQTwn/mozzCtyR/c3wluyeyD/p IxtiyMtWpaFF3qjw7bVGRVuSExL2PDl0deWI8GWws63Jqf6B/mg2ATN8YRuqqQlbze+zah3uUc2K kTXdUTZngcnM+JLTFGyLdAZJmF+evDP4gUun7KISpV6KIFLQTKysHHi89kr9Wab3YDKFMnzuSXfW lbDGp8r7Kfyv6EG92fQZi8+U855cvy7qUV06vHHwWa68WXioFJgXebxoYfPxZIcN99qb7Nxl0rpd WM7TqxNf2yHlgN0rmb08Q0xYr/v3Zmbydhr8lqHS0l/IvKGEdBzJu6BVf+RN18YZqJuC1CWUSGOW VNbrF5EHUkMaRdw3Wshtc/RVZD3X6Z0svaqbNZTmvoZhvj6oV28Wce2RwIdJQ6KhHuddQ1F7o3B8 Q3KPfdbXxxDGgqrSlwv3UygOMyJsjzkunf2z4Hp7l7kjjlTfEShCBe18vkHUYkURdu+L0lpNOKED 9Lrb2eas1jvp3eZX1MkPUNZ7fYa0s3Ra7b2orW5uug5vFgFHFmcLHxgGmw+KMlVjl5/Dhg/t6dwy L9OxKFv1jJJmsmBJVH2E1N6rUuxOpfyKzr6ll2Knj5z88XhoeY9Ae6lJVpXnzbjr5+J33l5SHfys uEZQpcUn5Swc4i/REJzmrxBqtQFpTYJ1akR0/UtRSatWfe6Wa+3NpVuwmRHVuwT8jLsRVlUltxo3 L+3SMNz4spSK0FR5+gd/yGrebLD+/lUdYPj7Y7sSTNYfH6np7Va1Ly/4rZBBpvy4Ed8wdMcX0det dRp/KSF99xuRM9Z6typiUe08O4F2dXGPTLXvjOWbBA2tqfQmFcvBW219+1Vzu3UHl9D5VZ3Gd6a3 Im18yzrOrWY6GcVl1HvOjG88Om3/GrLGHX5s+zpVzp+C891FrWmCts6iw22Ae19J4mva3oS6kb0p Ln4L86uqTlVUyexcPFf6q8U7kgc1V8xKWbvMBZ34FGm5qa2RA5hcsOkBfFdwSoDevSYl16zIouY8 Xz+V/vND60ciV3w3K4uklIcQvn7jnhsd/WfZ3aiOy2u5J5k3UxHJXX3FRjGv9rc/KfU08cXfKSIf c+62veR4e4anaZtj1OLzkfu9kh9KXSbMd1bwLEIE3r6qI2Us5PVTslvJ3z499tphQPRGeNo3hUMs qL95z6VkjnJ4XLTGvdsbzY62GP5YLdtVlJZ4o9VuxwVKtmKG/Ay7Qp2yWfdM5GSk4mCjEEdT9IyD aLtKFQRDvN0OsS8HBxIOPGLpLTHwmevS1x1xPRlVfnqxMUXnREqyVJft+dWEWM/amSj8shzyOpWz +/AxGGP6m193Te8SFNYfVm8YMKAPYnT7DKCwHqKoXZHZZgMh3NejBNGUg4kHg7puqJdXizp9UuyO rA4nBdj4d9v8gLf3exrsL8UjnRguadM6Dlz9PtJ4WtxmvVmoiKNCq2xjVYHPfdu+2hub479JsgrD IuIIN4sPd9NL+D/si+nyydn6UMri4NkqQFO1IbUAHT8joEe07Cqxp0w1uTjEZO/ggiBb2/bj8ok4 ESVJSn4WCpHRvvZyLHtHZmW1l6fV0y1Gg+byh4iisuxsUczSZIO5a7FO5j2AWcmejsqG1ET3iHnD FIFIcFq0MD0c/VovSQahdiae035Pt2SzVgmQW03Z7O87zw9xrJXuI5zXbnHwoGPPA8cmuZPFTfNN yQh5KNMQ4c87Kju1L3AKyjTBuf3ROKKoSGtnnOy+/C1xe9RKvL8txl3PRjrzBEBHvl7BRfm4ubKP DeVkDcq221vPqklX+l3lx8ObrAPw6vvcUoBOdp00Qm5FFcVxPfmqa8tF6QSTiqiv+M32d9kxRktP PhKh4l4/okj7rjn7C1A2K/2UVFhifL7Wla7SEnRcTVbsvYQb6ZtNVhS7ZHtHPU6tuRH9rVaF7Wzb sBeruQeT0QCvq6wGu3ZFnXAjsuenu+TaBVLobS30dQtnUwZ2Fnc+efpH90hnK/ncT/JabvF8odai pnNJJ7qlq58aL9+VeLQ233GEwD4Rs0HTRVmVbjfCNcos0kVk+KzdkvOLdL9h+taqgfbplerfVR2u aqc8LagpKj1/u+lRLjenfH7zgLA3PknO+E5hjw9oCug/kLarLfBKTa1dlnn592yDpoSKA4d7m6uH HdapZD6KJmjuPdLTGw7UtFcj4+rQcc9YO+rWD7uXBywTRfCGzNZqoJ8PqYE3D9G3WEcaPQ7Pt81c YJIKVBV2NjdHlL0IVj5W+9IrDmUoPOb0iz020wehUJ1wCeHSbUghD7t8G1eQRMfevJ37Os/UynD5 vYW3rp59+NMzT5TztR6/eIKGNsfNIhLtPHNToquzjX9BrV2f7u+vBMWD/TNmAL47DstJ5T+4My1P 1khe3V2+66KqZtX26P72fU4VnMLD4e6Xrp1evW37i2DqxVV9hjsVrRNxpjlJ8XseqR4iVGxXlte8 CWrIgK7LdycS0reF9Oouv79h6WbTBZSRNFHpXVMl/TpKReOv+1Rks1bVrLbEx8YV18y2Q/XalC6n C3vv3KJdjOxNZow8s8iVVhu+F61JvcPuqFvjs9w8/na/1VHhWsyK8AMaF2RxLLdr0r8b7JVCKX8V Q2LLsd2AHxpfuad1TjvkEmOoKGAXFaji9R+8pCNoKgl1Z2VSTXWfPUDbK2861u+/fuftuulAoXC3 uzaSdVTpsiLH/sop9vy4q6WKWPmB3dbXu+62O27e0Ja0/tRQq4UCyyypU0tkEZTccfrXyF3J9iM3 lv9215lKiuQvPaJR+9PRGPmHCsfz5HKKdYiPN1nrlK028+GaJs7ge1u9KWmNcD+vZrXJ5/iimoFr RoXC9Cv1IJjTJFvtWktv3GIR9Cp5Hb+9L+2R1vxKr1KAsIsGOIM7qvY1BFQ43hp63C6omqVZGFej eaBtP0WksuiMyqngbXdfauUO5wkT//jN1gNQ+cM5Pg5MvaZQ3fm4T7h+yRWBTmvD15tTcjuqIjOL RjwO6BYJrdziE4CE7TI/b1q2QzOKnJZD5Edibg5dDr3f+Ewx0GPxCePd+U0qG8zMO4e5S+KyDz9v LGhseRzRcJZbkozKTNCrt1I6Vl94EiAcOXQnbEsxwrL/0HBs5tfCLpssYb9dgMz1J1K9llsft6+x t005sMBX3TXP3TvjzZDy3srt7cIZD08dj/7KZ26t636D7R0ZugKc9wN97wU51U+k2HavFOvwM/Oj Y2P+zNJIKXqRW+N414yZLpeDUyydYzJPra/DkSaLdbfMUPUlJ1UiNiu1BQ+9jOB6xd0usneb7RAU 2ytM9KguLAEI15akWLN/fHPg6IuVHfnJjrEH3F35ydn8U3kGSa/o3dMZsQ8bOd/oADsZWGBxeCrp cd2+tkdPpXLa5BANr4KvYPpmbUJ6LMvw+F5dS5P/6qxNn/KZDI9gqUA7c/sug5qmh45FigjiwGL6 XXzGxtD9j7S2rbxY+AtAyApHeB7ZG+fNoTDlTLqMhssWAe2FwP09GmCEe1Tl1SAl+YeYsKcQ7G/p K1PUDWhy7R6JwQGnZPNwJGheToTLzK980nw5C2eNWSab/Z92vjwayvfv/x5mxjBijGzZhpCQpZCS ZRCyhDJKZG0oWyQSYhiJhET2UMpH9kmWrGNPPpJ9mWSQfc/O4Ll9vr/nd87ze875nfOc85zn+cfr zB9z7mvu677u631dr/frdV33PWF9+roXarQe5bEA3+x+pD8Nim5CmH5ONyFHl3v+TNYjm8spEetW Y2/nC/HtqQRUpdEya1tq0c832B8lKbPRJ4bIETzhQl2ulQ/x5DswGzPRRGuofIDAv8odIXeV7DN3 nhiYI2UVOtL93sirmgCL4JBt1fMTJcaNO9QsHsveT/uUdpCcrq8b7kfxon0fsar8FY4Y49s/vd8x 8GbHaH9pyUrPa9gcqd4w6AMnTPQxZ9d2dHBacjKGy4azfUPU7hF3+5V5sH8nKbtCfnfGPEnyXmlN o2+egxaQcmTQcsEiQcfJarTqWnoxVre7a1A5wUUDfvLlF/HbWYEj1BxVIRhNHJtawSMYuCZtNfIJ s9vq9cwQ5flBllNd+xarbHUsqzT/AusrbpNXd+5TXPpWUtR2FETeyJz21M279JQEyNsvNLiv3w2U st8yOSsm49JAXjrYvw8hMYjB+0+cwkoFj5kD7JbetGt0WDR+siYUsrVbu6tZHgUbHKn8AkE38p1O hb2c+tTupynntji1va+zNBZ53rvncQNL7zG2MrpPgAN3oEhH2hb56xIDwMOHZWLaZysjalgAXEKi qOfdkwFpfy8ZFTPZ+UBvKan/5GQCxfLlF6slqi83d9+sGdJjeKTBIo+TL2GydVLs1pm0fZOS9DXW qfOywYn0/ZxAg0h5uMfPi4onvGiT0fu+izwQHu94RYHgcqY7EEsIRXaZIXDZwv6yZtd9TTHHFiaE HceX1Yggt+S/l8rekKZgSQeNZ0KgZNF/tbv/lNk2yMBZVEGP3fLPyGW1g2V3YdWN6PtOUmWch+3m +AQUINlR+52fdLCoG8HBhH4tX1eCXWDjmadSBGeNOrUxRc97SMy9vYcC4xiEHaPlLeBn5zfrYHGR 33T/bskm/5gTlCfpaR5bhQkqULtw2ts9wQSVkA8anP/Rqn3REMWUVAovoptq0pGCUBGmq3VLjg8g iHfkH3YZnkVSyF4njlJXGT/xRg5EA2ovQNDk+Bk/cUkkI8Ez2yzXZ3P4Eammpmb+LepGxrDb+Mp4 y/TD7Bvj5i8BJQZKKVgU9ebNGzzr03LhO9VvWGGQcLvry7tJZvTop1nTm+fwh9d5CWDC6DTpCBgm 5n8vlwKCxWVFgP9YyHh4MA6GeW4ItvDTYaGxvuw76vHdADHkYXk+XITJsHPJkYkO3ZRF3TznBa2A IU7HIMJ1dbc86NQ4EXZBsmy6Xf1oRt2Piw7N3Mxw7tQ6G+bSutFEvoLW0WS41Hcbd/h3M8qBYYhW IgJxurjjAW/zkxQMxB2pGxLCheTbZdvYgWzsQljgkIsBzDJ6PSc5w9hFAQPi2zsP4qToRdvUu0vc C+3GrXrrqnOIWc51ChfKSUPspw2gQ1Yhuoi4M/Si3eUc4zWGL4Gb2M/NrOggK9R4Y7TH76dK3CFT SCCGCQgoBQY+XhyQotyNl8r7wjkbFf6q9YZeMdNpNmR4FNdobibETmjFrOEpzuHl8bIaE10gDxP+ ctk+aA9LKIyCb1WoNJ5/I3SrAWUVVwFcmaVDJFVACAb8Q1qyjRo23KKySg2dso2r7KxuEsf79Dl/ ZVf69ORRifkSi/18cWfs8fLOUiKhJsFctwUD9zW81vKVUwYklPUFBoeJwQRJLSko7WbG+OnrBzOk ZzIsuz5dPGMUdsFTAfLj/TIxIrN/Cbda2QI5pUFEbJi9WqjgqWk4/mfhl7vxcc42fybump8WDYH6 Yl84nhJQvbe+vD0KcLQRuE7ZuLCY7waPdNyB5KECpIr6WZcnRoHA7Vmo0UVNsMPBE2zjfn6tloD4 kMi5adFgh22HP3vUJ7mVstm//KadaRHHb7owgQCEXo/UgidPdUSvFFdLe/up/nKKI2cEJ0uOffjJ A3YTYCssi2Cf33ji/1iefIpBhWZXG5FwW5D08nzBezuhTlZ25nroswYUUTyolUdDiE0MrYxj4KAQ XKW0UbofVccxL0gU1mXz3GgjFl/wxu1QzSg01QAPuVknuel2Ag1IkjEGy+/PNTrmCwR88gu+f1Hz YZWPdKxadAgano8Nq/V5/KLBNsyKe7whX0JA8VuRPhINACEv7x7TpDUhP2ynP1Jh1ljnv7tgxElu 16SzCb+bHli2NF5sxqo2sjQa0QC5RXS3LfgIlQ1DM2dCTYRtHig06GVB2mw8Ixnf45HLwkGZtmGH A6AXy2otcOzHykktjeDizt9T8tv3+ZjopFeyvvnvZ0IOmybDwqDEOPbBvwlNvoIajyUK2AmZFBsO wFP8DNTpprfY9p0KI9IXPpbrtESjxOhSIZxTRcdYzhlev4ZadhBC2jBOXwpsiVieePtnu3aGufDD 9ir7eM6UMUeokJR9WPunYynnlODPnN2XefPYf3BEBEiBTbmkeoKasHvbP0BJ3Zm7PhoG4DqoiXxR dbZFvR+vl+uDk4HuYsdh8BIKry5H7Elf/NWroEZkeiWnyJQdLplmQDftwxZQ4Respeti5iI/aXwh W+GgY7Nia9uKK71kZ2Bhe/A3A0A8DfmdqAegzrPmwy3psFJFI6zL7Ssoo4sNUkNqyFRIVJ0JyTDu DI7SAUDDn58CexErhUJChGJg7e9T9wLPv0BXze9kD4mlCfiBU2/elN+0MInjR/JIBGzIKqxFR5Pm XxhhZPFkfoN+reHOvM/3lwXW1MQb9zQ6D7koXl3mxUqTrWB6mWmRc9/d2o3wfn3FX+Yy49jhpupk el2bMi4qvqOlrSC6lMuOGxIeZ25sJMON/jMmOTNPJgmOrjaoSsQHPcdnOFkfeLOhlU6Ebs24cdX+ NFIIVCPL6l3ld77LRZAifMHyB3GGbexF73FHK+vtbjogdjyyaKMV9mNWTXUpzqJVZSZ1DoOhePe1 eiXH/eiQ8CYepyjG2FUX/DDmOZsoyGCMuJjN9ypaDaTlbPNmB3PLe+0Eb/0q8boYrtE2cHiQ0p32 0wL1Vp2Zm3t84d2JmYD4xp6BOQG2f7CeU3NSprHYnrXD6JLPdfkRETHH7EExcChv1RHFflkU2lTf GRUJW7lReWorR4Wca0WI4qqP0CoNKZ1MHChQylYWew+twIYMpzWGGzcpcO1JPjMJnrotOCeKdJVp nCP5fbhJeH5Fl+/YSdqdTWjtwNLoqplg5Z5HeiCaeA7/ZAD+4vEEsDS053/lK+wmxsTJrAwuxPJM qOKc00Gy65hJ8YulkdzxcT+vKjNPcNDK+KmCYdz6Y/wF7XvWPPWtU4pP/uzYXrtEqaQikKHA/PrD j3W5MHRI6/aN6JDGcMG3Cswesswe8zoD4pSiF4OqhbrOuwy2efIHo4DayNwYGJ2NrC1abCJYE2/2 kPbkN9R5MP/BxloYD/PBDqSKx2n39UyHR+EsleG+/MrKVf77Pbe1NKgp31HppTs+AWP4x56GrWeX fYebnlko0Kax7Kx9lgB5tYBB3fAbSEImD0hAlzPDWrlkadCfF2h1XY7lnwsMW20Jp7Z+ZzxrWQAJ nWrZXih3QbNXzqTEEA14BkPJdCvd0wcBgaWMNrx8YDfeL3h9SIcCim3iFnyFvqo1KivL71XIMVxp FxO8ecAbF8j74jMg5Vj4BCeQsZioJH/B5yvmd9MKoHa1p5wBYlVYyRWlzInGSrmjtZSmn22NZUen L3itlKuQO2VDzjc4MpiSix1Ssi+I5cHy9cVPiACcuigkH7PpuWjMFx+0qSt9dDL+cPyZDWoPXotU rrqZdACGoepuaWvcsw8TJVkQrdZskU2axzOwcoRDYhV4ISXmw+qNrN9QwbHnvQu5Kib1OuJHcJ42 J/lnBoZKx8geZC/TTBLskGf7Fh90vl/Pp9KkPlm5K7gCZ0ZJUX37Tusdb6MSN/SwgzvU1FZ+nMge IOYo2yROCJ4QpWuxCrFX05Cf8L1YOdpCVy3bXIdpLGuxytq2fogrkkkSgiW1yJtyauLPiiOUWL/S 3QTzKLeWHNz2xZ3QesF+effaybGA9qfOUbRFLd2tGIKgYbqpVR7T488etb0CABpM2FvvexvcZNQT dRFCMj37hLMzDCbB2DhM2p9QkQVqMUhnTZ2ANf8xMAqNYOIal1e6oL9XJ8I5pQcMiOWJKpz+Mgcy Hybc9J76fW3XaW4+XjySVxT5XdSfelP3YQP3dM6Hzwo6eymV2Bc37sHJY5fOCNbcRIhcq9e/wRwa /meJqIUJw8nUW6EyF576/FpfaRrF5LrNw1f+tv/ekPF3YP/v7Cxsy5cPECQLOFRfvTdZwXCWf6W3 MRZb/nypvI7HMqKhROmVcdrH289I5IiC9C8sJu9CWB1n9wDM98eBim5BeX8PRKMfErl1GlC7RKCw a7YBHKn5tmGxGG01A4ec+0rI2HOgolFo0Ro8S01MjafrYEQDSK2sYTfczFITJ+DIHF9ny+OfZ3UF z+CSl+CidYWga5DuQno5/ZTxjwoEwmFxt5wTwBj8TlrqR3zMQVAaEOmCLO6p3qd/LUlCiijXT9db DVVPVSTCNYcVSJOJ99TokvdWQTEs+RxKkL98yjPCF+jNG4+siNgLILih7N2vuM4l8ynjem3LUjZ4 q+5Khb/0GVxfqRUUJCtExiBR4S7Fr1ISaQS0e/urpw6tyYEWn0DZ8fmEe5Bss82D9bCmJratv/G6 IU7PY5iCnrtS87UZ+WXq9zHqai+6/4ysFnYkJVseu5G/qC+yLJUgqsQKyeBtni4tnOy3hqd45lV+ q08qA8R39gykyXRy3J96XWNQ9+YWi8ND9HLXg7mdCxhjcw3UexWXF31htlKmRe3RLXpBHfWKSskz vwPzZ+sjYvVhXFxPpQm3rENgxu66gBSqmVuqQMAllM8fnGdZc/C1mgBCMiYFnOnn9bZ+eXMQJFZV +LSXx6C20m02snDKb/EkuGIbp0CP/sDHC+5nAuxVdw3HE/lS8Lwpon6isJ7bh5xha6xBIA1WUHwP 2ZeVwsHLO2NmtXMp9ZwLju+QlzadpVWd11e8HMMSVAQXbBNxiHipqPVPkf1z0r/uxa/UOXDAHbcu tnfvrvRmrq/WyymVSiiWSogAk8dgEC711IKm/hm5astN4dAYclmLqqKe4i+XuB/i5kXlEgwOxiTC K3ONQUVQbke+evqmgFh6XgjQ0wOqTB6t2OSHbBibcxT67pd0eZ2PdPO5VhL5cEmDva+qTFJya8+A k0yHYMfx1o6w/tgQZq6/k8VpQxSvK2ZnxbWQ/Xg5XOJc8r6IvZDnzDgTFOo8VpmCqzKROc2FGT6H MlagL31rCTTH4VZypsZnSKBTvJ1YjJD6bvLIQGG7+wQgASTLgDcQthh0HmF/SWXDtG3uc0AgZxO7 qFM6meuUqqrafIOc0i+3+KIY7ZYSUWoy3LKb7PB45/HabBURS3BsEahROpFd9cT9HCVy+HhpXZFV aZF5qQmJ+RakHMgWHUiNAaL2uGuHlsYSGFRSocVuyxdm33uC3DfO1TINkwtxqR+wAWeCnn+p17av 168bOvS0wVUWMAqdGw6CLe/cDeg3JVhAlas0+eK2ToEh6VBvTOqKiIBMVV0TfeqNkFWqDxfnsIEw ZK0B2hGlovsxZ4t2k1qSTHRo1W415XW82Zx9w1pY5J3pnJ9HMCgTQXWfXrazldfbElEQrZsXNVPY CdMD1W7BlaFAtpdA4smKv37Ffkcx0Jcs/cpbqF1FfIwfqpnfXk4X3ao419igzcPap+dTPWmT6ZI5 ye3OzMKIKxs5ZvcZLmTljVt9+VeL5vwG3cMqREz5l5zqlPd3TvjkT46VJEd05T1pCXPGmhMunH2B vmTodyA5cuBknRZyK6b/mN2aBm7Ncz7Xa9NvipHwFg0UVtQMsdCCBfzbNHQOcP32vCl45EZV5kHy P07h75gA7nEPvzAwM+6Mtsf90PvozR4QMDbqjhpry+yBfS2Zu/q7HEnVadW7vHuKpKQD8odJKfgx eXR37+AdBiLLgBZiQwaxqzW7daR/YaDmaWkIM41JFpZZK/DF2le+8z+osI9SUBOaRIYPXkAh8cGP LuFzOpI3ZSTwbWRiRQSD8+Lf/M/CU4LM6L8HYUxSbD6HCu3YBoeJHSTJikOWtW99vPmJMzf2+X76 WwyV7+vmgXXTrV1cEBYn0eeiiZefldaLUDxABqhdZ7ZhgZJAUZyhgHBwyrxtKqV5eb9MkgXM1snS Zw5uy6+5dgRFDHmzMw1v0EA+inz45/rMgR2owlkaNSbmdfY2w++ZutCDhOBTaa7dLndvtAON+afQ DpX1ZO0KYPAU66XoOyA1DiokpssHCXQwyJT6q/hFK/z5VGGbD661Zd9YrAq/DBQMuMfjdq2XA1nN AU91vd4OGb1GA+Wl48eq/VYsItGK3zi/cboeVEuJw2UZ3kNDjCn2HcJAqvwJFvhaMDf2kkUt4bI9 SEE2OaR7Q9Hq9yG/WMeTZvk/zxyAKlN5bqLp877Y9xAoOfXHHs3x7WLilnslUzN3zaX5TAVEd7um GUNzz4NhhysK84cNMaQ3Ef4BCuAKFa2W6O9qDA8ZTiKX7uNW9h1gCiludXiNkX0+G4MS4PyAy4LY t3vpoACsHzVQ2FgTXtMoeelo8jrEF5eGz1a0K30rX23/oDxrKNsz8469yvDnk5zoympAx0r+eux1 CvWmp+HPwkofz/yQNzn6c/sJzGDfAPZOfpLdNjaM0rTvfET7ynnx4nLzZjc18l/5AmkPL5W8OJ8Y uOsW73bimqeBPB97+6tZrSrzUpI5iYQz20NIxn/0RTbTGV3MKaSeb9FkdrjZje6rBwDm04fPAjhZ XjE82OyTHJDIdRDTN9rjoAVkxdt4Es7F37sqc5UImSJnfL4/LLdi0950tRfbaqq85ZLgyvdYKHSG 0xIr1eNE1sJwosPjHNOs0vupzHB72a27jsL5M/mm3RS4TtNZ40cG8pbshv3N2kPpRsig5x9ORJRW IxY2ULt7wC5977Rp6iqPV+v97pLlX9qwJVfTH+75HDPbN+Z3kywJF2zOvp6UsIDvYIOpweNeEzbn w0hWn5ZvtV/uVVwBf95SMztfTNn0+HFjoUo5IIRdTVvtxWgTXUximit15qpWwb2MuKi/7Hiyh+B9 fOzOBWcneAuehjq/s8ttV3qTagxShPKTqxo50jqnBPbnKSwBj39cdkZpWKIKZZU0B69V79dWmtRV zuFNXb/tFtKBCZkFTPntcqAp/by9HSQHILrUh0ZlG4kKN6r75UhnXLZIoGWyLZyiYoZFs8cvzyj+ /AjomlZjrRDuWaWD3i8YITZGCKBf4+RCnfVZ3MUoI6W1KxWZKyTBcQo7K8jDo91mrB1R1UkX+eZ6 A5bychUdUvB++K6Ay7XprXSJ9NvVC95+XDOBvfXOZVP2ZZNUYnmySgcP0TknUuXbvcVLutB3d37C flhERZiCFxxjFbM/VwlwOpqnrFzpURyXSxNgXfmr4+KhEa+stsk6doWHkOU81u89u7Xe3/eptfZE d/ohAfERHWtWpTjcAg6NKolynfKEgURIuqr7ndsgypMXj7hwGXi/VMsCNrwzhguffADmDv9unixc 1FTtyBgzjkKeW0fXVJo3ZX6eDOyqx8Qz4CGTZDzFYq5mz28PeKbZq1Lu0FGjFIpN2r0WFVXLiLRo Eau5eIJ6oLJEBf2Mt19O9aCURcrHJlW8/6Pi4PPXuwMnngcwBajFwmQZXIj2mS72uWPZC/nc14e2 X4yzfwx2BqXf/Yua8vqcoOcbvPNF1/ZsfHJPf+qar7/J4crKZzjk0HO9720pZPH1CXjnvx8hr2Z0 /bkFnnfpvhk4ezkoHClDT/IxYK4l4LOP//Jt1TgTmWf9WVaXTmlDmOZfizyZH2/hmf9h69ueccm5 g6relo6NisNFprvc7b9X6Z3+nL+NvK+gt+XzVyhraU5OT9LNC9O1ZxmYm8GU3GeJBDOYBQcvA3G5 /nYQ3CT4L35WHKWREnk2pzTJu/VN4WCeNxq9LBwUi2luS4uWYdndAi8ATmsW+KgBu3Uvvyw4n5cK ElZGzY6xpuBdbrj82b1xHHRawhZLNVbalGjZsFdImHoi4iENASZZ2oNaJFHOvwj31HnIk985zlsu oHN9pRUrGE2hv6S84S5rjG01z0V59R1mvtp1X3rBpR6SuVlsetaBkwaWfCHj9Ztb62b1oPW/3K/Z EvEy9br8yfffEGAeUVWed+Qh6MaR4jfapgy2af1Yx2O0hxzWlIjDtTFDxzAjiyegSgHN0+htO0FN XOtdakB7E4MFrqoW15TiLFouZu26YH24hkq4cI3EfMklrvOYnf+DHw1WMgSuCGQldIb/KWj4Mc89 fl/eulsZ+iYnsxRWO+n/vNhQX9N/WIA6FzVU41IoSG2MPrTICXcdcogBmzksAVsZ4dGPZsutryOf bD0/TkN1C0FkdaQ0z6RXW3uubNziWbCV7xZ4YiLcuSLcGK7+ymlWPAYk1zjpr3LU394wxcQcrh/P zfTUNYTZvlVFs4cbI0LCZ6/1sPbsB8v4QWrcwHtraVgteFYgaK0nNFsCV2hpvNpbt1nqvDVtdWwp LwGUa4nsp2tlmTuXNtlCRydqvkp2uZVxeedTmBgJF94R7Qz76zdLc5djoXuyaY9jr8pw+nSudx5j B6Oxcqu3jqjAtdmteGsOz+scFf4JfycYMBYLEBGp0s3gap7OSgkX8BX6Z2FX6BYRaKkZcnmIElt+ 97urr8jK+dAJ6rAmbzlvOvkMiKd/KbOuHWkZb4nudCuTefwh9y2MxUPxUEB+77jhyg66YOZ3UDDN aA5jp4JDKiTqcO2XLYgovyegdyIMWxEWciLXu0IA3XZXoWsQFBLMn8MYDkBTFFjzDc514865sdnL z17Yy+d/Pzd0aSR3tDqSaTaKcepFu0q9rFblcPP+/v7rAv2fl45DLYGLZxdb6PKxYVp6l9xyzzQ4 YnXvpESGtqJA4vlN91svtMUSOB3zlZEL42qa08du+aSW7qTr7DaotQVrOsk6FIWqXvHTxQelC7MW /6zJSwNt1CJmUajqzxwhPUqozkcjVf05d6HenDoMm1LzAzCIXfLWJyOd/cvNm1qUvS455SQ//eC1 UQ0/ZE7YTQwYsl0LnCw8dYvtnZZNmWCGmr2BzWC5WIt3UzMo0mmR/bxb37VhyhwMOIpl0kR140RG lDpSqxDNnIL/rMLxppQ5jSkowp6ujYCF7ThFhftxMEQni/q/3KHd77l90x825Hs7gnJpY06Tkxxs C/TpcwaM7yczjX3hVHVdl+Zgv3nc9/Wob2v9I0Uc1whrmZOP8aNOKfMipYWJRxRQh9F1YiuuJV8s PsZyGj+EIY5uhz9zQzVEs5f8RX7VfM8j9NqQYNHMLZ+iybG9fImaYpO6TAee9lcShjX5nunhiHhm cszx/QAxpM0V2WyxDEEXnInRDZaAeOmawblc16aECbY4V3rWWelf5oVUYrvEL6fsEppzQfgs//T4 /VbAqzP45LM2gW9dX/YO2i3CCiYeGdIXfMzdievzMogCHcSQVUjsQ7bOvDb3QnnO7LNWwzJFdryg GALH2/jwOhNI9HVXe4Ps/1ASxlLUnfdzpjOS5t9K+bUJdHUJQYro4gx65YsXEw+XR9oKoguj4D4/ BcZSvqN0rBJLaRWDc06CtWBpsUk9JRItoNBWbu0JOpRO9zM9fK9/WczAVM69Uwg8N9ig/QeNH7y9 8TKehZHAod7PaOrKTuFgAAlcwaJsQZE0wioXZvqlQBAJJeXMRYdovfODpHm4wauvx8yyZ1NCEs7Q i8Zm3uEZkKL4eBoyAtUB1jiuX26RhUk9NENSdM48WZSLACVLvFV40FCyDOaDwv7btJ2r/K5qGs6o MRuUTSFXhgJz8RMo/K0321UkpLnnFlTSldXqkYFLvOt8D9+l7ISi615FaaVQGYusBxAp+kWJ+QFP ooHTPlj1K65HztJ0cbCbQmtDQa8+7GwVJpxBfMyBR1dNfwZ0ExbhMznY4ezrhv5eNatQcnVOZJbz 2zs8Hz+4PxJTkb28emo3m6mL9vgr3U3bNaf6T3gylRmkCYZ1dLCIFwQ9Qdf4pZRKgDqO64fwXOMi c7sev1aqXddSqbCgk9pFC5Y/EBEBzLhd2ZYf0kfP8rypCzGwhwAAI1zR61n6O/XkQG9d4Cdk7c/P z+HlZ6cSLr6b0ACP3VWg8mMoXBlU8A60P0U/n74DU3u4lBYaTGh8I9RNI3XROLpoXBrSgMccTzdt RXc1tiNQTgQIs2C9t5+rSUcoL3k5Wat6eAB5b39OE6s+1ieHWz31fruQrgR60o0/ntnYiAWXphYQ /lwpVFTzR/Xjx19hGLdjf63S/LLD7Lto/QQo4OHM3U+TudZupHrghYG4s/ie4h1zKJ+1evJ+e4oB BunALuEdKY559ULSTbjN2Tb5QIPkgywhJJXvnbjGX93mG7JM+lnb7PwLp9oDu18CGDPOLtrqMzN6 tOSzPtrr90Ttqmcld1jxHga5O5OAOdD47a1CIFH+4KcQRD2POTY53X9/W9McsMMrfdhmB88MlQK/ U88GnYSLhwvovdNJDoQctwJoVru1Un4IKEl+sblPBoq1ZPxn91IcoYuChf6/O4Vn6g73BVEv/7Uf CB6Q+78/sByCba0m/IaiGm8HBRPAGsDu+D97i39/uE044KTdzoEKhynTmf/PPzD7ry3bA3rlpqGJ x6lWXYdPHV+5DEprDZvg/8UHn4/wD/7z8/+Hf+vz3/sHcP/197/OKSoqHr3/9T+B/xx/x3/eB//f e/9P/l/v/8kdxf8IRzjCEY5whCMc4QhHOMIRjnCEIxzhCEc4whGOcIQjHOEIRzjCEY5whCMc4QhH OMIR/n/4N43ZY9cAeAAA From mbelmonte at belmotek.net Sun Nov 20 23:42:54 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Sun, 20 Nov 2022 23:42:54 +0100 Subject: [Gambas-user] How to survey? In-Reply-To: <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> Message-ID: <8c79bd3a-b550-9b9b-a583-af29792830d9@belmotek.net> El 20/11/22 a las 17:38, T Lee Davidson escribi?: > Your survey says, "Please use the linux terminal command: jmtpfs -l" > There is no such command available on my system, and, according to the > package manager, no such command provided by any package. OK, I did some research on the subject. It turns out that the *jmtp* program is not available on some distributions. Here is the result: | | JMTPFS | SIMPLE-MTPFS| MTPFS | |----------|---------|-------------|-------| | ARCH | NO | NO | YES | | UBUNTU | YES | NO | NO | | FEDORA | YES | YES | NO | | OPENSUSE | NO | YES | NO | | DEBIAN | YES | NO | NO | If you have *OpenSuse* please try the *simple-mtpfs* program and if you can send the output of the program detailing the operating system and the program used. I will try on manjaro (*arch*) and see what happens with the *mtpfs* program. The code that reads the output is the following (for now). Does anyone have something done using the libmtp library directly ? I have redone from scratch the interfaces and this is what it will look like. but nothing works yet, I will upload it shortly when it works. https://imgur.com/nrOC1V9.png Best regards. From adamnt42 at gmail.com Mon Nov 21 00:47:16 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 10:17:16 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> Message-ID: <1948fbb8-7174-3113-704f-97735215779f@gmail.com> Tried it out with a few changes. Dim aState As Integer[] = [spRight, spRight, spLeft, spRight, spRightPlus, spCenter] Dim aSpace As Integer[] = [6, 44, 15, 12, 20, 17] PrintVarPad(aState, aSpace, True, "ACCT", "NAME", "BALANCE", "PHONE", "DUE", "OTHER STUFF") PrintVarPad(aState, aSpace, False, 12345, "Doris Day", Format(45.67, "$,#.00"), "N/A", Now(), Round(Pi, -7)) PrintVarPad(aState, aSpace, False, 145, "Michaelango Vesputti", Format(125.67, "$,#.00"), Null, Date(Now() - 1)) PrintVarPad(aState, aSpace, False, 45, "Bozo the Dog", Format(0.05, "$,#.00"), "Woof") PrintVarPad(aState, aSpace, False, 666, "The Devil Incarnate Himself", Format(-6666, "$,#.00"), "0666-666-666", Date(666)) PrintVarPad(aState, aSpace, False, 427, "?Jim Bo?", Format(75.5, "$,#.00"), "0416-763-274 ext 42", Date(2023, 5, 1, 12, 30), 1) Giving ACCT NAME BALANCEPHONE DUE OTHER STUFF ----- ------------------------------------------- ----------- ----------- --------------------- ---------------- 12345 Doris Day $45.67N/A 21/11/2022 09:50:00 3.1415927 145 Michaelango Vesputti $125.67 20/11/2022 00:00:00 45 Bozo the Dog $0.05Woof 666 The Devil Incarnate Hi? -$6,666.000666-666-666 28/10/-4800 00:00:00 427 ?Jim Bo? $75.50*failed (Bad argument at line 62) here because the input string is too wide* 1) the account column is not right aligned. 2) even though the name column is now wide enough to cope with the longest name it is still eliding? 3) the three dots are the elision character from the "special characters" dropdown. It only takes one character so as much of the string as possible is visible. 4) the balance column does not resize no matter what I set the column width to. Also it is overflowing the actual column width by one character. 5) negative dates overflow the allowed column width 6) text that is too wide to fit in the phone column caused it to fail as it it trying to pad with a negative number of spaces. I do like the ability to center a column but I doubt that I would ever need it. It's a good proof of using column widths though. As I said previously I went for the column number approach though. One reason for that is I can copy the original "ragged" edge output from the console panel and paste it into Geany. It is fairly quick therein to pad out a representative line with tabs and that gives me the column numbers I need i.e. no need to calculate column widths. Mneh! Others may prefer your way. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Mon Nov 21 02:44:24 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 20 Nov 2022 20:44:24 -0500 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: On 11/20/22 16:33, Dag JNJ wrote: > Shame on me, cost me almost two days seeking the error. I just forgot New. Found it at last. Really embarrassing. I can't count how many times I have done the same thing. -- Lee From adamnt42 at gmail.com Mon Nov 21 02:47:26 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 12:17:26 +1030 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: On 21/11/22 12:14 pm, T Lee Davidson wrote: > On 11/20/22 16:33, Dag JNJ wrote: >> Shame on me, cost me almost two days seeking the error. I just forgot >> New. Found it at last. Really embarrassing. > > I can't count how many times I have done the same thing. > > Its an "old" thing, as in how "old" you are ?. From t.lee.davidson at gmail.com Mon Nov 21 03:06:21 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 20 Nov 2022 21:06:21 -0500 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: <38fe144a-9b02-7e8a-cfb1-e08a472be096@gmail.com> On 11/20/22 20:47, BB wrote: > > On 21/11/22 12:14 pm, T Lee Davidson wrote: >> On 11/20/22 16:33, Dag JNJ wrote: >>> Shame on me, cost me almost two days seeking the error. I just forgot New. Found it at last. Really embarrassing. >> >> I can't count how many times I have done the same thing. >> >> > Its an "old" thing, as in how "old" you are ?. Lol, I think you're right, Bruce. It seems the older I get, the more I can't count. -- Lee From jussi.lahtinen at gmail.com Mon Nov 21 03:35:40 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Mon, 21 Nov 2022 04:35:40 +0200 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: Advice for the next time, two ways: 1. Start your program and pause it (or start it by step). Open the debugging tab (right next to the console tab) and add expression(s) for watch, example "EKT_orderby = null". Restart or continue running the program and now it stops right away when the condition you gave is satisfied. If this doesn't work for some reason, try #2 below. 2. When the error happens see the stack (many times just browsing the stack is enough to see what happened) and place a breakpoint approx in the middle of it. Run the program again repeating the thing that raises the error, and see if the object is still null at this point, if so repeat (considering the current line as the error). If not, place the next breakpoint between that line and the occurrence of the actual error. Repeat until you see the offending line. By using these methods, you should find this kind of problem in just a few minutes, even from a very big project. I have a 50k lines project and finding forgotten "new" has never been a problem. But sometimes you just don't see what is front of you. In that case sleep might help... Jussi On Sun, Nov 20, 2022 at 11:34 PM Dag JNJ wrote: > > > Am 18.11.22 um 17:51 schrieb T Lee Davidson: > > On 11/17/22 13:25, Dag JNJ wrote: > > Hi all, > I have defined this: > > P/ublic arorder As New String[]// > //Public arorderb As New String[]// > / > and make this in a subroutine: > > / arorder.Add(fld)// > // arorderb.Add(ada) > > /// > /fld/ contains a field name, /ada/ = "ASC" > > the first assignment with /aroder/ succeeds, the second with /arorderb/ > makes an error : null object > I can't see any difference between these objects, and they are only > changed in this routine (so far). > I am thankful for any help, allt he best, Dag JNJ > > > It is quite difficult to determine what may be causing that without seeing > the full code. Perhaps somewhere 'arorderb' is getting nullified. Can you > pare it down to a small project, that reproduces the issue, that you can > share? > > > > Thanks for the feedback. > I made a silly (beginners!) error. > > I defined EKT_order and EKT_orderby by like this: _ > *Public EKT_order as * > *New String[] * > > *Public EKT_orderby as String[] *and called a Procedure > > *MakeOrderType(EKT order , * > > *EKT orderby,, fld , Column) * > > *Public Procedure MakeOrderType(arorder As String[], arordorb As String[], > fld As String, clmn As Byte) *Shame on me, cost me almost two days > seeking the error. I just forgot New. Found it at last. Really embarrassing. > > > Best regards, > Dag > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Nov 21 03:52:53 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 13:22:53 +1030 Subject: [Gambas-user] Problem with String[] In-Reply-To: References: <448a28a7-435e-7618-7afd-a12f368e7e08@gmail.com> Message-ID: On 21/11/22 1:05 pm, Jussi Lahtinen wrote: > Advice for the next time, two ways: > > 1. Start your program and pause it (or start it by step). Open the > debugging tab (right next to the console tab) and add expression(s) > for watch, example "EKT_orderby = null". > Restart or continue running the program and now it stops right away > when the condition you gave is satisfied. If this doesn't work for > some reason, try #2 below. > > 2. When the error happens see the stack (many times just browsing the > stack is enough to see what happened) and place a breakpoint approx in > the middle of it. > Run the program again repeating the thing that raises the error, and > see if the object is still null at this point, if so repeat > (considering the current line as the error). If not, place the next > breakpoint between that line and the occurrence of the actual error. > Repeat until you see the offending line. > > By using these methods, you should find this kind of problem in just a > few minutes, even from a very big project. > I have a 50k lines project and finding forgotten "new" has never been > a problem. But sometimes you just don't see what is front of you. In > that case sleep might help... > > > Jussi > > Good points, I'd like to add that when looking at the stack make sure > your eyes are sharp. I just spent 2 hours trying to find why an event > was fired twice and finally found that the stacktrace on the second > time (which seemed to be exactly the same as the first)? differed to > the first time by _one llne number_! It took me many tries to actually > see it. Amazing how the brain fools itself. As you can see I even had to "rub out" the parts of the screenshots that were the same until I finally found it! b -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: banfljcmmifogoge.png Type: image/png Size: 36963 bytes Desc: not available URL: From adamnt42 at gmail.com Mon Nov 21 08:16:17 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 17:46:17 +1030 Subject: [Gambas-user] Debug inside components Message-ID: I, read "bruce" has a problem with this. I am trying to debug a local component made up of a gridview with added special sauces. I have a problem with my Sort routine inside it. But when I try to run it in step mode in a client project that uses "myGridView" I have to wade through 20 gazillion bits of the native classes before I can get to myGridView code. Is there any way I can run the project in the IDE and only pause when it gets to MyGridView.Sort()? I've tried loading the myGridView code in the IDE for the client project and setting a breakpoint but that didn't help. b From bagoneo at libero.it Mon Nov 21 09:31:12 2022 From: bagoneo at libero.it (gian) Date: Mon, 21 Nov 2022 09:31:12 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <1948fbb8-7174-3113-704f-97735215779f@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> Message-ID: <41ce91ee-4471-e170-849b-3716df91e227@libero.it> Il 21/11/22 00:47, BB ha scritto: > Tried it out with a few changes. > > Dim aState As Integer[] = [spRight, spRight, spLeft, spRight, spRightPlus, spCenter] > Dim aSpace As Integer[] = [6, 44, 15, 12, 20, 17] > PrintVarPad(aState, aSpace, True, "ACCT", "NAME", "BALANCE", "PHONE", "DUE", "OTHER STUFF") > PrintVarPad(aState, aSpace, False, 12345, "Doris Day", Format(45.67, "$,#.00"), "N/A", Now(), Round(Pi, -7)) > PrintVarPad(aState, aSpace, False, 145, "Michaelango Vesputti", Format(125.67, "$,#.00"), Null, Date(Now() - 1)) > PrintVarPad(aState, aSpace, False, 45, "Bozo the Dog", Format(0.05, "$,#.00"), "Woof") > PrintVarPad(aState, aSpace, False, 666, "The Devil Incarnate Himself", Format(-6666, "$,#.00"), "0666-666-666", Date(666)) > PrintVarPad(aState, aSpace, False, 427, "?Jim Bo?", Format(75.5, "$,#.00"), "0416-763-274 ext 42", Date(2023, 5, 1, 12, 30), 1) > > Giving > > ACCT NAME BALANCEPHONE DUE OTHER STUFF > ----- ------------------------------------------- ----------- ----------- --------------------- ---------------- > 12345 Doris Day $45.67N/A 21/11/2022 09:50:00 3.1415927 > 145 Michaelango Vesputti $125.67 20/11/2022 00:00:00 > 45 Bozo the Dog $0.05Woof > 666 The Devil Incarnate Hi? -$6,666.000666-666-666 28/10/-4800 00:00:00 > 427 ?Jim Bo? $75.50*failed (Bad argument at line 62) here because the input string is too wide* > > 1) the account column is not right aligned. > > 2) even though the name column is now wide enough to cope with the > longest name it is still eliding? > > 3) the three dots are the elision character from the "special > characters" dropdown. It only takes one character so as much of the > string as possible is visible. > > 4) the balance column does not resize no matter what I set the column > width to. Also it is overflowing the actual column width by one character. > > 5) negative dates overflow the allowed column width > > 6) text that is too wide to fit in the phone column caused it to fail as > it it trying to pad with a negative number of spaces. > > I do like the ability to center a column but I doubt that I would ever > need it. > > It's a good proof of using column widths though. As I said previously I > went for the column number approach though. One reason for that is I can > copy the original "ragged" edge output from the console panel and paste > it into Geany. It is fairly quick therein to pad out a representative > line with tabs and that gives me the column numbers I need i.e. no need > to calculate column widths. Mneh! Others may prefer your way. > > b Mine was just a suggestion. I am convinced that it is easily improved, such as in the case you posted (aSpace As Integer[] = [6, 44, 15, 12, 20, 17]): '--------------------------------------- Private Sub PrintVarPad(aState As Integer[], aSpace As Integer[], bTitle As Boolean, ...) Dim aField As Variant = Param.All Dim iSpaceTwo As Integer = aSpace[2] Dim iSpaceOne As Integer = aSpace[1] For i As Integer = 0 To Param.Max If TypeOf(aField[i]) <> 9 Then Try aField[i] = Str(aField[i]) If Error Then aField[i] = "No Data" Select Case i Case 1 If Len(aField[i]) > iSpaceOne Then aField[i] = String.Left(aField[i], iSpaceOne) & "..." Case 2 If String.Left(aField[i]) = "-" Then aField[2] = "\e[31m" & aField[2] & "\e[0m" aSpace[i] += 9 Endif Case 4 If Len(aField[i]) > 20 Then aField[i] = String.Left(aField[i], 17) & "..." Case 5 If Len(aField[i]) > 16 Then aField[i] = String.Left(aField[i], 11) & "..." End Select Print PadString(aField[i], aSpace[i], " ", aState[i]); aSpace[2] = iSpaceTwo Next Print If bTitle Then For i = 0 To aField.Max Print String(aSpace[i] + $aOffset[i] - 1, "-"); "+"; Next Print $aOffset.Clear Endif End '------------------------------------- If you messed up the numbers in your code what would happen? Regards Gianluigi From adamnt42 at gmail.com Mon Nov 21 09:42:11 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 19:12:11 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <41ce91ee-4471-e170-849b-3716df91e227@libero.it> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> Message-ID: <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> Inline On 21/11/22 7:01 pm, gian via User wrote: > Mine was just a suggestion. > I am convinced that it is easily improved, such as in the case you > posted (aSpace As Integer[] = [6, 44, 15, 12, 20, 17]): > > ... 8< I have taken a couple of things from your ideas and incorporated them. So you are in the authors list, so there ?. > > If you messed up the numbers in your code what would happen? > In general, or in what I have tested with mine so far, it doesn't matter as it either elides any item or tells me I have an underflow (-ve padding) problem by printing an upside down "?". Anyway, never mind. I have now a gridview problem to solve. ? regards b From adamnt42 at gmail.com Mon Nov 21 09:57:56 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 19:27:56 +1030 Subject: [Gambas-user] Debug inside components In-Reply-To: References: Message-ID: On 21/11/22 5:46 pm, BB wrote: > I, read "bruce" has a problem with this. > > I am trying to debug a local component made up of a gridview with > added special sauces. > > I have a problem with my Sort routine inside it. But when I try to run > it in step mode in a client project that uses "myGridView" I have to > wade through 20 gazillion bits of the native classes before I can get > to myGridView code. > > Is there any way I can run the project in the IDE and only pause when > it gets to MyGridView.Sort()? I've tried loading the myGridView code > in the IDE for the client project and setting a breakpoint but that > didn't help. > > b > From adamnt42 at gmail.com Mon Nov 21 09:59:30 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 19:29:30 +1030 Subject: [Gambas-user] Debug inside components In-Reply-To: References: Message-ID: <8a4797b2-c5c1-cc18-a8e7-5e8758e66ca0@gmail.com> Graaghh! Bloody Thunderbird! From adamnt42 at gmail.com Mon Nov 21 10:00:27 2022 From: adamnt42 at gmail.com (BB) Date: Mon, 21 Nov 2022 19:30:27 +1030 Subject: [Gambas-user] Debug inside components In-Reply-To: References: Message-ID: More mystery. I stuck a Stop inside the "mygridview" and now I get hmmm. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: kmplmpgiikfefnlp.png Type: image/png Size: 13658 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Mon Nov 21 13:32:49 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 21 Nov 2022 13:32:49 +0100 Subject: [Gambas-user] Debug inside components In-Reply-To: References: Message-ID: <27e0327c-01e9-b064-5ffa-143cdeb51358@gambas-basic.org> Le 21/11/2022 ? 08:16, BB a ?crit?: > I, read "bruce" has a problem with this. > > I am trying to debug a local component made up of a gridview with added > special sauces. > > I have a problem with my Sort routine inside it. But when I try to run > it in step mode in a client project that uses "myGridView" I have to > wade through 20 gazillion bits of the native classes before I can get to > myGridView code. > > Is there any way I can run the project in the IDE and only pause when it > gets to MyGridView.Sort()? I've tried loading the myGridView code in the > IDE for the client project and setting a breakpoint but that didn't help. > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- You must check the "debug inside components" option in the IDE. Then, while debugging, you must step inside any part of your component. Then the IDE will ask you for the location of the source code project of the component (mandatory). If it is too difficult, you can use the STOP instruction somewhere in your component to force the debugger to stop inside it. Then you will be able to open any source file of the component from the IDE and put any breakpoint where you want. Note : this is not 100% reliable yet. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Nov 21 14:30:08 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 21 Nov 2022 13:30:08 +0000 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) Message-ID: So i made that custom Form.Class that overrides ShowModal and Show to set window placement relevant to calling form/mouse pos/etc I found it worked really well apart from one problem with a gtk MenuButton. If i called Message() from within a MenuButton Click() event i got various issues like the message window buttons needed clicking twice as the menubutton seemed to still have the mouse grabbed. on some programs pressing a Message button would pop open the message window again, sometimes with double the buttons? many odd quirks. Until i copied MenuButton.class and made the Button_Click() event trigger the Click event by using a timer instead of inside the event. This fixed all the problems as it seems the MenuButton can now release mouse-grab and stuff. Could this be a "You shouldn't do that inside an event handler" type of thing? Or is it just a bug in gb.gtk as this does not happen with QT only gtk2 & gtk3 I've attached the test project that can be run that has 2 menubuttons, one original one modified to see the difference when clicking. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- H4sIAAAAAAAAA+19CSCUXdvwjH0LUaiUm6w1YRhLi11ZItkqEQaDscxoZmQre4tU2hOV9kUkibRY SkibNilahNKOtJDtu5fZjep53+d93u/7f+d5YuYs17nOtZ/rPufmSiP6h8YsJZICyFFUHdR/pOiC xcjICP4NFu7f8GcsTl/f0NDIEK7H6uF0DVGAwX8GHc4SSaXhKQCAopDJtF/1+137/9HiysF/bbw/ jUgm/c1y8Kf819M3NNI3xIL81zfC4cb4/08ULv4HECkEfxqZEvN3zvFb/uOwMP9xOCOckQEO5D8O p6ePAnT/TiRGK/+f89/TmkANpZEjgPkkGiVmhZidP5lkoq2jTQR/a0eQgsT+2wiOlf9o4dL/IHy4 H/7vjgP+gv8HTYAebP/1sWP2/58oXPwPJgYEEP43+H89vTH+/xOFi/8Ms/+3zvFr/usZYo0Muf0/ 1mDM//8jJW3xIptxYpMhNz/OztbaBYVCo6B/IkLgLy/KyUDwlwDV0s5NBCyrRQI2oFAAys7awi16 36f9dmEBdrEvh8eT7+za+2zjiucNz92fmzx8/vDAboyO/nT+dcBVPQFPPaDy+/Py3oDelhTUlPIn GlXC/QGV5f2+IuVNwn3qHtODFxR9816xoqE4wk5vx+1Pn8abXk/fo7PDTu9iu2V5p7CqbWD5ah29 vtbmNvHvUkPVFXwW0tWpOnEoAQuMlAxKwNnXFiVtnaSMNpcWXCeAspig8J+txBbEJSdMGFp6MUHl XMU4w6E5TsOBO8yotQ6mQV33T2/idzmZ8zPzYYffkR8992OM+Y/OWzPQbjBbOHWxmYZPfUZ6YR31 7LvajjMaapWTpvRXyvqMN66v0GzowOtFzbtlWj8/L7zsG3n4YVHFj04d0+0AqZLvSZhC6YVV3cSj +3r3mprN7pvkL633wxS7InhTzszBtTndsZ+DhqLWmCov2IEZ9tZaufHWvIK1GampO98fqpk71Pct 1MXe/NzX3q+rKTjtwbINWo2NujcSemxeDnYr7VsjYLGpdLy8uXhS0Xkz3ed8mYZ9J8ozNoe+cu0Q mFIk/cWsPrb+iUFlZe87j+q7F0ne/RlmZoOX3nfuq454/EE2yyxBIijkS06QqOKF8sj3d+4MdytN G4zu/3hExHJlOBo4GptXMOlJXsaiqBftjQ7L+Xd0upJdhG+k/XBQEURtm0v6EjlbO+LL8mWWliIO agnPB4qLS0wjB1J3YQ29T700Gvr5NlpU60H99qlmsSZk9L4fXbH7t4c9Hqb91FDZMN5osoCXj/7Z 4hqdfQM7lrsTrVaFfNGXNPA4HtyaPjA80O2yZSBudxw2YbZpt+O+iacVTOpri79NyjIzWyQaY3/a aZrUyfo77W+tnLCGd18HD2uFbP4UNfzcxqyvc0+chjPuzCzUl+UO9ged9c96t/kXdCQEyur/uGC4 uVjo1ou4dUuW6Cz6OQV1XDGn79XsUKv+4b1K8TMu6a4c2NmxdsJep4IcpQvS6hn1U+PuxqB316Ap HdInKjp6plXFCw+dzc4LL++u15xmvq/W60HinUtJmx9NvRH6sbCuvlYjwfDgpIGEqWr15xPm9Gm0 oXY01vtMN8Dc/TZc9FLj7pG1N9ufFK/V3RtzY0t9QuazGJvaooePU6a9VZsd/a0Yr6A++UNzwoDN BCngbkvNLNTgstNbUs1X5Q3VfelUciw/dTWfaGqWHa3XMNDkp9DTqXFeryp117afwy66ttuUFKbc muBQr3mjsJv/hp/ojOT6hpfbgxonz+9/2NaTpXSkU6d/alBCbYdJk/BLFTu/0teXnEmL5yVm3vUS T3qcK5TlbqrWlBDf7qNE/Vx/pbPg5Y76to6CY22o5T1FaT8Iu1NvD+3e6uo/6URt7bmKWv7NijJ8 EoqbMvrV50hu9VB2xaR9UJmf3PaYijIvs+tG+c2hFqG+7DYvumljOvzkqJ//5K9XBlYNxc5ZKrnP UPqoQt+Pn8uPrF79ufRZ3OvrHrSzpAfbFTLe9hTOW/M9q/19sZe5n15Tgelpl077KqdHol4WbU5x ildis1ZktKKv4+RcxLwKFIIf1cxCm/RFfjXLeWm68MPpH4t6h3/2nffbSjU4dffBC9ei8bIrE1er vXgUbZn7fHb2DYG3BTvS7r902FRmljMuU0TUIX9WqeQLc0F+dCIEFNTRrfomIYQtxWL1A5HbFsV/ 6+9N3f+GrD/V2FfGtacz5k6GVvl5RROzWWe2ZqDf2l9xxsV73RLX0lM+aOoz+eIevTXaJkE/L28R fluff/eYakOvcVC/tk6PMcjWQ2bTq/k32IEztOibhRBkQw0OhLy9r1p+Y7jDd6vDceeVhoF2AZ12 6/Uc/T+EBqAjDc8MFrVp5KFqlsWaCCWm6EtqxeT22eSYKNX7ttj33LqfkjQz3SZCVyER96DwWGdQ UcL6PWve+h5c14q2PnCxFqWu1LD9FCZJNLB7WLnGoLtUKaMwzHx3v3yIvX17nkgadtgsHS0iqaWQ 2e5xPZ6yaW/ljRVeNh/Wzuu3EjlkMFyakzO8ZlqGsYyH7mKrbpRl0c7XlQ3b05bHTBg0qx+uPz88 addKzA/9dH6F6ReSqO0vdIpSNIpQR26YpQT4TfBXOP0yyLdvQrv1gQNO3a+cGgXPFjbKWZgqiICS prDy0+vKDs0y6qlSdUDm62qswXCBxuZEgT0n1ibunF7kvbAQeydHxSWyHvX6hP6payKJMgLvZgsK GJdudLSVrNslfW9y9rFk20A91T1LtqI6KLf5FATn1Jo5rTKtcXt+jS/VvCJOIuGJ4zPKmnnTzr4Z 1kr88caMz8/9YgmqVHLXOXREWtIJjeq3xUWYxLp98S9S7+9KMZ9T6JrjHfdue9391Qs1Kuyl7CO6 nGkHMjCoyLeldboec273Rat0H35meksejdnwPMhnkpRZ7+bCjvcfmjuHOl6aXjosorEkKaFPY0rj pfQznXw3PpjM2JKWe+uE0xCOcmZNlLqrrFKQwxBt3t4CHYVMX4+1B0v4vs7eta62t124UnVp7bHa drMPp+oKiq88anxzhHawXO5Jb9+XpHRBk6b8bl/AAmX0is/h1qkV27ffUt57/V6OcWNqxf5jX57c GFzkM3nvm9U49d3Hu7+sRNW131BJvI1J/EjedHvV4PLyQOXhmMgBSw81zKeB6cCDQ0FrbWPnvVt5 wn6vvPl2VG1+x5MnMaVdobKnb31bkag1u+/04hJH3b2+CmI3UqsUXDtnm5kOui5MPJUepPvg0ZEf Ry1sZs94MelhzcXWwx+9tFxudvsn4dQ0qUusYzEu4slpbi52AaduOfTo3PteX9j/VVQU5bfpmCD6 xKsmoaMC80RUl4u8vaakXrtx9df2PYsrqPnHVi6vunneecPGrlD8tQU9szePs03DWhxMT9r5RukQ rmKjrIj6A0CNH3CbsS0Nt2tD2BedGS1R01Is5M2GdgwXP7OQNrptVvH48p7JAvsW1DnP14tPLKyT ctD6Ylc8I6jvS9NDwrXYLxnEoY/WR/imD75YrY5vory+7e47wyrp0Veb3D4P7Tkr96uVCWDJS27y 3TPejdaSlVhjSBGkLEGtf/x9+Y4OoUOua2aPq6cUnFLSM3r1LUiBMDn19kX+7RY6H19hHGWTT38N WLX50W1hVH7ftuWaKuRc6evjqI7V5yhyiTXF43RFerfZ3nn7rN0pJaotfdW5gZfWYmTL9A6NYeuQ jNfnL8duyXAcuj/j6jMXvGFswrTjarcO564RaRXLOyp4sHCWwbtk21mlzpa+NIs00QRvm59FL2OW X5luk+ybN6Wu9+a8/L5d1XcB4GCjwA23W0GP11qHfM/wSWjv2fFGQ65yRTEKt4WAcgE21e5pCKxw ejjwrr2+VlI9P7FOfX9bltnw5CkXJp8L3fDsm8aRwaN9ac1X7T1Rk5tdkhKB7TfFbnS86+lbNbW6 ftbLhokpW4+8ro3dWzDkuV+noM9mSVIqKnUj/8lk5U3qcaY7DhokxGo/GLge3vL447hgT8UzJttO NE6OsrTqGKRNTcw59unxqcfP38U0XKQVZWjtTdW/ayN9+m7+WRTu+KGmiLWFCvO/HhqM3zux763d vr6vDoH8d96jv8xf967d3dF+6355P1W3o8u9M38OyO6u3NjeJ9p6Lm+1hK/MLbcs442vM3Xqsd6v jLzlD954j6Y4fB93W0/8xOr4NZ/3qW0t6DpS5/TMkrRL8CB2XPF48wnTe147EQR0l8/PVPIzTa9U SJFuCx34FkNbkfiowHGJ1KKQ+C99aZ438otQuJtTt9pSsn/uz+2a+/pEhlP8/uVuCRk5CeeOGqd/ D+oUJsa3PqbOnIXaTNRFKa7cbvju9p62Nx/QB9sEFRq+h1Zr90gmq3gqZ3ouU9VQT/h+0a5H9kKm Zyg62MHK8a1xXWOrU8E4BYNexaBnepnR4VlvNDbMvZZfgsLtW6ngdXx3ojfVjCRo/nbeYOkUVHs+ qmWnGhCzPK6yJkRapFU74gM47dVdc7eqGhME2z3TQgPPCRzFGoJ0ObOSX67y/ZPr+7C22soCORse L7SdXW4dlSeJuul3L2dtUka1iNv5HOfKjFLqsyz7Sg+sccrVnh0r8pUVB03irxwYOFJRWyGz8bts 1N654/kzU7GJVCHlB+GXaYTKAEHfJWqZPgK4+GlIexA62Nj/yM81Dh7iugb1OXH7cabOqM+gyNbZ x6ml7GwLLP887uTQgXMHhrNyFtqmxTVHDtx96X35RZpIq+KQ1lD9k/0/nYY6O73tI597iJtXPY0W Snz9WOJkRX29nJecaJpu2vibIhWDKf2NcydZ3N47Nxzdfn/bmr2ruusO8Nd8EDhTmKsjg01WTZpQ aTZQVsGvLkUK/iqAVfrsMLVy/qbdfccTXrbkmioLDmha7Ls0SSnhq7b3y3NAf13kekdp6jFdOfMF y6V0y3ZIaU/9JLVdwXl7ALk57HF3ttlPA9X9OlpU27x5awtROP9PVRHfghMw/r3Oeuo6YVWVncND ZHShsLpQ42QNC0xyqwdK1mvVgAufhQzhTfk6dG9/Rb9V6RbBpy8vX0TLXFfU2ie4tePcnTgrLOlz R9+QTWfrZqNVj2KqJBvGjb/Adw4VqJCgWn+gt/JGpzBqkqKFmNjQ+Asplp4oeWU16Y0P38QfuN3p VCTmFy2w3Nj8mZwYGCzP39RTbLr1R//+r478wCRtsGnl9K2Culcxsj5HBoaci3O+SnUY6SZn8jfK oapUS9NWPptjODly4E3GUOznSehJq3YbTksuFQtAe6GbdbuEE7o8/edbPSBbqQfVion4TbzYk55E yrrdeWF/YYfg3uHrs1IFKtUQvBs1lvSBFvh4i9LK/tLz4l1mw10RKqbfM8ghmAtyEN4Tz6HOiMtK D90/Z2MhvTQ5ObHROjY80S/h+qy1mMRQy6tmrYZUojhAHKRNawNE/ES9lqOe3b/pk6yp2s7H2JK9 +eKROPcN/8DK3oI9JgJ+aQOHBpX2mKQes5Tj3KpdtFQDii+rfJapLs8RVxJQFVt0tTOIghY5XHnP 7yD1LEa8IWRiSbhOnOb1iSJV0oPxSs4TZsVpzhQXTaSeXHI6+sfzqMLy8vKPh6SXHnxOautuq31L O7m0zWMryli4uQRs2rJ//36C1NpSlYCy/VKC6DQ/167+vUv4ZdYef/tDnwDNsxUFbOCz4ksExCQY 7RhUsqauKoqzURSq3CkIbHQEMTwHNS5eqHu4ZUJ/vLo41J4vpCrmeL8zSIxPpvp4yw/9SIFLgiJa 20TSbG17V/KZyYn4JemOt33QKCNqe+pzYI2ChJDCvqu+EiVXX2Uqnql7lSWEuesbIXR3SfOwY6p1 poiIVlE9ZUrNmmwAHSFum5oqL67YP/77T/T3frSkEHpOvISO/aPpchtk1VAOKYcCKDsx/Gq3zB8W RxT4tXk3XC3LTTkeetVgdmlhk6yWg0CTd6qtyM5Z/GoPSye2lTtuRS2zOF8jJZPkLd12PWNl+1pj hdQOcdQ2MVR8CerJqTlPMM3BuzF5F+Xeb0nbXrfUvkhMa7x42hb5V6ePoP2Uu5dUrXUP3DrhQrmz LSoPSNva5Z80aJFYsEWo95LJdaP9ysurpL13XkLZvecT2XsJnegwtcla97qlr4KarnHVfd3rPbJS pBkTHi+Ue3HycvSjvJaU/BmfGxV3zvIn4EIxquuck+VXKCUMWUZ+zZ+b/WTG3IXTnj5PSU6caY0R GFh2sE3Ldfhd4Xodyf7oB5Nam2WVNOJxbY0621Tfn1Cp88ajckuSUiw2+JutU9J4K0R4VnAxePfO UN8vr4M9tNRSBWItNgVpTDMlfuvqe4WaeCtRXsM3TNKjP/llfQA6Tzoec7ZRquv1K1RC33sBpzlW IMHBAfidz26UzUBHF1aePpABEqwvbX3U45m92T8au/bfEfvsPtXt02sRlPKulxXg4I76jO6iMu1V caYvQnZWHkzOmtl67NkkkEwovIquiOzH72tWx+AqNYRNBvwq0vesUCrcanTmqJ/yfSlZiWsC66uk UzST6iZZKo9Xl5nrLjyxOTEcs0Da9pRpG7CpsFmqy+N0hpNkLLhwP+kaaZkWBwJ62dWZP0iTZVAz KwGHrqP614Pyp8Wfi0smz7GiXYnW3mGWkSojlG+xoSI6ZlMVfoO3QltV/oxphjfPLhSXQaFStwaP sxqoFj/WlxNlImH5bWrwJye5yjtWfL5pwTkJFzrbipZImb3sfJVehV6eEoE/c0pAd4OMxBEBZxVf ikGV/XH0LV/qZtGjBPEulaQj+A2QADRYSPlMG3eve7q1ZXLR/fYOXB9ZUYxPu/v4zdVDR9AQajqS wsaircdWV8tU2km37UiZ5qfsXOT4RCg7zsGc723v+KGQgvScT6dKbWozpNX59qHlOs6Ok9R3dHWR 7gpUFvcVfTsvoTa96/WhL30V7yQKjvX1yLbldiyeuE4Z47/hzrlx2frGQutDI7qm5Mnem5gejwFR mWc6uWVP/4rV8cbmoQrXMgRR7vUtmYpbruLPNpxyLV0IKgPfnHqIeXsKFnWlD2rPedFgYJYith1r KHYybeYBB7630ePjL8UlW9uGLQnDvVk8+6TBcP2PS7193vI5xT+ffOp72i6MStFCt2fao6SNpPKF vPgsMGdfSnXd6ZZ2mlOFaTIT34fectW50HHnLPfmepRA2kYNkIoWGGlxtPI2wTtH9w0mGG2SufLx 58km9QPT4kDV++g21a1g78R7WS/TBZu8N9TaWA2sLkh38lzz8Tv/16qAj9F3t57xaclcSrS8D9mi 3eY6m7qr8Uo5F9zOhj4Orvie1rjQ8IWHTpvF8+qyLH5b3wvyLYT62ltnMkrk/RTQaTs9FjvpKMh8 aZ357mNlodKrnirTGbuTNhIOhvgMrxovYzx5Xe87knzFMyeDBLNKXftFU0OD5RMxiRctpibJbfg+ mDGokDHXvv9HoMjPlccHXl3yb/WuvpodqnblgvPVwKfrCBFfrxkHDWWkplVPCtkiuqMnjPAc2Dhe DbRgou7bfhw1sa4q7DrpURPo4UW8k7hq4RXNq9vkX90CxaMwJ2ToQIJ9T6hEzaNYoYeZR1Ca3wcd PBIFh4a/5ZZP17le5C9V7zQv2hX3UlU96ORTdVCUe6+mqL/wLPAtC3iluqF76WWN3lyTytPeiVvk r6Vbl6SWvMl8csb45Fz1owKXLFKfH7ietrjaQH5w5nrn5I4VSh/UxMN1rn8ojDu2LHGjna3iuOkD AT8EKp50vupZonR5cGVOgkyKPmHNE6FNMa9RnU2Dq+1uCC4DnEOWXBBSllyvfEk/ZDgrvNW5aFPn y9NtbXGRV5ZQQaHViTMF2dj7ZfFFmVg9j32HQrKj89+3Dt6ZUTLTEHXQQGLXsXvfsBtkUuv6lmak Xk9TOmQgsVJXYuVHmyeazWc3PTUtsA3tF8bn4YZfocxefmgFufP9eO/AjkwQ0pSTTQve3JQ2Av2f YGutKOQPfqKvTArp3/WufmXB+xZhMq67e9FU8qMV1pYt2Xelc0p+Rse3EmKojnV6XbHPq9d7Ggy8 tZCVeuyFquw5I2zueBM0Qs6UQtSDUOGvpTNLkr5skjG3ndj17JNw7609Gr3tB9fXfgINeovXnQLs bKsGrHOxowyKmixQydf98O1wfEKJqO8URZCM5DO7IHM4zfCWpqdiQaxpuUl311GTym3yB+bsWTUJ XPi0vIvRTzBBBWvcpx38nGmMmx19A2iv7kaZLXpUKoz2Lrgsv2WunIwFJkLG2vjt+t7Wkxk5nyK7 S00q7+umGlUFCbtVFgVmn5ytnieYv1BzsipKzlZaXFHCTT8DuBgt4xbOn5FFgORvydMFT102z72y bO8wyIYrwSV1O9cfe118HG1dd1L1x8DK9SBwkcDMK+BExhIQeCef/S2g7K3qRy9Sx+xKv5ect0Cu 8tlBoIVPVDbJX6emUKkeN/7m7iSjRvvoy87XsuY+SL7kvqQ52/TQYevDU64bKwhABK43M+u+N/nk k5Tcub6Zr5Umq/HVeqf6m1niXsfOufyqlq9Mt+YqcP1CrffxPh+a+1mdvcqCe2txbnJWBD1NEWOp G3zLQD+qYI0Vwm8KWHdNqREXUfGmNf7O2tAtA5+tbXu3JSo55rh554nFnF9Z0TANJQM67N6jDVUk HfNMWxFlnUdDiXrvhJ2TLXYCB76sU/3UUgSas+r7KJ+p40AuXAcdVxvOePbCwauqch32qCfqeWoG Whc/gJYPSHMjmpMXhL9VUJxCEJ+iJn5XbXXLMltalcLb3GPnDWwGsy9bbFpKFKpsnTdLqXyZiKrL tYVLJdalfelMsQY2uOtc85Y+8mlt9Itv3dWvgNOkj0Ldt/3vVh28ndDYfvK4Re3FY2hxSVBUtx91 7gbkSm/w+y5W7zo/r/TqJK/0qmLj7YsPnFqxvrAy/UzORUnnw6lSQe8HUcDdmARDUlLe7ScZMrQU BZsq6f4UVMGD91WgpObjN+wAFpg5BOaSjcV36IMRjUGt9VO9lsx9u/nqRWVQ4tbHn5Pc33VWy6GC JHZfxU9anedtRxAOy9sTZm2XaOuQE1a49e1a0S8maPREz+BSORTg0L63s1HkVK5Ic5VIjpJkxL5V Wi86Z6LPNrtqXfNuKuu4lClk9dyg8E0m0Ywva7AHDIZnbhRIxM3XoKbHohry2jZfSh+MTyRJ+0fY hX/IUpzr3oC/kP19ypVgTNrW6KffuiuUlCoNNm8Tl04LK9qenTmQKBNxZ/vawLqsBM9zYNhxfnJE km6NL+Xbhurq8b23CbapIRu3iSVtDG/JXyA6VefaEGButunhl5c9BfV7s7zGLc3/vFC1C7NHzVgK fXBKzduSgjeNPkLZ1LzLN6/tvYDS/DnooF3Jh1U41xC+TZr44XNRWqr96W/JCqFnRHecdjBvMOz6 HCuIx7idvZNRa59Uf83QOOtde0L++2vpOxYKysuv1U5c7pMquDjCFoWRrlHAnJkWtk5xNahnxz8I fS2PT8wCskFNN7LvfbFqYuKMHhPFBV2tAnjtW766Qs3tmnuFDG/JTXu08Mmp2RGz4v1N+x3bMhWz CVOy1eLUBB+tgGwGfrFlYuHTS82xkPWVap44Zcq7Jd4/5+3TD3NXhOzSj1Bt09Bv3ZFBG/aYKH3C Z7qL7MZs+XZuc+MH7RfE3d1XAycKBfXOufOwv7vhyLeea1jjkhmGJTNUUW/GCaLlzfedqW58hy3z +qGyblvlhVpTQ3vDF2E772l6nC2dIRy4uDBxu4flU0Mw3N68fe3+MyklRsooe3vUFeeobt/81O+L PSYWxA4VP4g02kyKdineTOu0lH185cLMmb2DDnKVfCKy7lMqXkrd+64icS3guJxviubVIlkp99rK uCkTw3aG5V1U34STOzgraV1o6+Vs9yvOOlrywHN96cUG/CWHvFA1O927czva3hWCO8UVmUUimLvO UQ4GfQ8no2agsnTABWz4nGQk4j/P5LvbrQ/n4xPkqmXVQnIq5TVMTc0+VmGNX5B2n922oLZYrSVL yOthZWDMz5iv76+kWCQG1U4rN5588sqaCP3mzc8nlFw9611y1qPEuVBiOboUdVLtyb5tqC2DChVN na17hE32CRSRuma/P0oFbV+bfO1bQWxq2LUnvqAm2K8uieyLjXyx1IZ/4GmPJMiF+98DlWoPRzjw /5ghCUa5xm82rbA541gIxRtvbFVVQUtVVp6hsV/Ze1+0vNxzBxX01yqB+i0mtqdyeweWtRRnpQTW LahzmxK0rObkUh8V1cNuH+JWJoNhIhjd51z42ZvXUJt+JsM2b8u7gvuC9mC0e8auKWH8VlTm9Esn Xuy4Ky3MX9z5Iu9TRY/Iqd1N5R/7unLUei/pX69aMEnqsX102RvfI2FH3ihESEiKul94Oc7vvJCy 9yr3nq0naq0+fuejXRHZVnoxtyz7aMDk6Pw3rcVZ6Q/y1tRuCLXwSJytt0lmnmPc8MyXwyE+B1KX b2sc5/fV0v0r9ePpyB9xHaKJh2RQBZfKmyQHkqetvmVpM+ze6D8lmyD+/cqR4Sx4p3B7W7xC28q4 DaBn/Pnqzs579qdWycbHt76KkG69deSR4I3iD4vaS8VbbOrs5/drFBrbgPbDuQT83zkqeHD4MIDW FZZRHi+eJGtWQ6rPuSjckmdtqSLWOrPggo+B4g7/y4dXD1/y32JgpvxGPO3pbGlxQnLUPEJufdYP nRmEW5Upl9KFQz/fnro+LTtpCf/dJMA52/f8OuWf+OQN6sN7dTXRXQuWn1p2Tu70jo1DOYeAFsUb P4Z9qpf3uydZuM94HGZFwL3Xtk83HBaPN3OV8JUUKASD4oMGIoEhR1a4YazmD12YKQl66yztWcMr cF/D65PSm1bJij3/PgDao820L67vhv3AKFzyuuXrjzaDP9KIbmH8oEGIvuyx4A6W+KpeBoAb/aSP r/lqh3JYaxFpGPsE0wZGSGLzh/fwCaI7zLfv/uxNMNqn4nssvOLCTUnvgotPzjyJ2O3e79OVIOWB oprbN9Tr2F93mNs5YVxZXLfnZhnDm3I35cKHyzCaQrrCRwVSFzf716ug9uEmSwp9TVawmOdZkTjf HzRBvrmFxKYMczL6hVTb3vdTz78bBqPMuR9eV58fUr+bKlC5797gQNChz5m9EZfFahTK5308YiDy 8I7VEuGaR5TngXYGHyFEHPmdVe6BAfAlE+vajLtmwjTh6eKdZPfuoUBBg2zSVYLlyyFFX4dilNGT sE/qN4k5YAB47ZWDwfevKl8ti7cGOe9KjXU/QDhp6FdyCFfmTyk93nSSeiTA3+T5+elyMpfLUDbe ONcdrs0ty6iOzwouR1PzU/fnLvwwtEcCpA3KPyRu5kNfX1HtgbuKKf6XP2oWlXrUkMwqT+RPO0Cb V7zJKDOhn7SbNNmF6oBTlL2z/b31FY+SQo/CQvclgyIzd5+KFa/hc5qTW9BiVGslEbjsoczjayiU hBZ0FiDEy85x+MfjmU9mnA5UX+g0OHEg/vhuX2qi/m7iIp1FKeiOyoPnyc+x3b53qhc1WNS5ze0N 2xOuGKO87p2clwXmUUilNSAnk7Yz6IB3TmOLhJC/bm9wkEr+u3y3h81CNtV6i6MccF6yjo01C5py nMSTNh6bnF5SJvLpu3T/IKqfv+Gt276eSZF15IfFXS8WCHaGu92LyJ/4rm/px/69XomzffV2vZnh KfTTIrkluS3yta/RhkLvc13L78xvMOwGu9eWv/9Y1Pxj5b2ln67MjU+VNVtgtulVNd+2zAPhLe8W WZ8hHty55YTfpJNNQo8VZUPP6L2ecmbtutDDfqfvGO/ftxg0EXPXLLLM1bbRmDb0sVkyPube/FBp Sy/pAl1jq6cuZUMVl52vXv5AcAu/2V/ABzpkSdDl38GCm9LzfX1JWJTIA/OmV7rXUwyWljViC2eF 9RaCWyZ8QUcL8FztZNv8d4bPTqFs3cosvEUijpc8XbVJFO3rJIJqtJz+6aqPnvucLU7GX+0uHeku VGprlpUC7fCrh0uk6reU7Z2j+KEhvjPvtGFgNiGO8CB+fkVOHV8mf1/Zp1Vx8u8SGq6FXujwv/Cm JaU0y6R+Ukpo7maTm8TP82wFDgc8E7znuSXdDZywVUrdX/8ySi7II7vb7pFhG/bANKnuE/VzoI34 5TLf4+PsJiUeD21tXPW+91vj43N1FZMf5kAGSDElqLwHM5EUD21UC5tdm9cIFybuXWR7V8FhC3UK QWT2fNTRzgpJEPH72+QJWcOg71j9cNJx9y0dFS9bJdybKz98kym/7FF95PybhAfXgN3CBPSbSkKz 54fywbhB1HqrBpPSwPpy43UWe/tdtmypEBX3rFUvnzO5ZdikswXcz6yKyy17ivHMPlVtSlgdVZRs 5Pow4fXGeLF4sx2CusJhKf5HwvxPt578lK/g2tS3qU32VHIoGPqR51jhFsqBe76nARdt8Xq7sx41 7vsau9oZyqycF0JDe66jDbUFkrHR8YdXD6XjzJxcN3oSpnSSl4DaO7F5YnbTmnwA9LWJhJMTXsTW Wc7anOdzXteWz/i7ysDqCvHp+bs9qfnHem8OLi7WH77SUFv//RKUZApWuNPewx/yxWiFONnAvjf6 xDqpktzcR3uXzX5boScsUQO65Mde4qAH85w4RTil69qKJCHn5BNTpdybrzdv1sst2buqbn/B07xV MjJdKkk7gJpbBzJ0JPt7wQlAtZYUeuUg69MwVRfU584ze7pfLRknlU0IWxr2pX/pBHCnpeLZWe69 oDlDd8N2cUHzTBHagAjoZAcoFeIp2NVn3deGNlGnhu5chY2//627zkIpo5l/3tzvEbqLLeo8TktH PoY8X8W3WH6lzkeFHkt25BwfDrG0qJx9cNf+5d+WXAO3/vMbrWrTt+5zxU0/elME9COmcz8GTUq0 3Vm4+/utDoe+gUaLoHEDtIk+zelQbswxaIOT5xowSgE3T69W+ClZudcFt8TfqRb2dL9S4V6dHapW qu4T/skHyqEmznYplJgXtvP+OL/VlHtV3jqJ8unilwXeTV0LbviBjSvb5/cGX163P/dIiWDFm9Ub ixwXWq1+Pq3lw5am8rACpZbrGdAWeU9wYG5K/I9cyfjeg2kZUe9LfVzF1/RunDAg/VAZrWuDsZqV U+ZD7f6+fNInPO7htDXOKve7Va6nmW8Pea+5DTSuO7VvYFvaVwkaZubK39u4xN7cUmX8zSsZsmmL RVLT3rs8kno0lKwThy4ngWurreo5s/6Mko+98vtiIYPa64sarv4oCe196z2uM28PGK5lympV6Erc 7/wxft2r1+U3Zj4gXZBfld8sJpo4+3CKn2PjtR8lp7t2CAzqHojZsUhHLvr+t/vjZEFudC9vuJpi IP/joeHyD4QpoVvSzhECklGL1eNVVa/YHpSveXs8O21arDKc2FVenoKqLW8Ko0mrdx1uf/D4rHco tBO0kcrqDf0REv1EM+fiBZ+Kl7VttRn3SRd0Yo6dPiQoudIQCiDv1i8NlwV3wRKHBUA3Y/XcoiM5 9dKMq+535numSMetAfdOic+9Ez/lbv72IBVleydc2QUtLQ76z+fARJSVGuprbPJpkkLu0h8NU2UL GhRXk0+v63x5+lXZZrH3W0Q7Nt0xuaZrffl5zdDQ0K4zC5/NmyDghZqj97mWL99ig7X9PNLpWVVB FrYB2ZvX1UmDhqedr91+Xa0XSmvbDVF5INwt97Gs15oKvunh7/vAWFup/H6lTbPBlQZNraLhkk/v PeGcvDbqVstZCTUB02e5yvbN62xOOZku/BCh3JB7FRhvXEMBmfgA5zN9c+jqUo/q2rmR80Jys9Ye i/xeJgRZTsFlAMiyfk93XaF9veMPW/teUDpo5u/g+7RUvXZVdQ0YpA9sbpzSe3eB4NyJwu7NXntf l11/fXCLubh1gYxENuG8ycT9JRIHxJLS/fluJVoI/gzZkhY3UTgjS2311p8D5Ecrlq0WbIpdkd48 7/sHK7nKZDzq8UK5+LahLLHWi3Km4d+0J8oumxC761Vs3bUoQ3f5l1IXQqIXR93HeJw1/vQ6qhmM w/juW1xyyZpTNE5Si9AEpLzqS1tPkq7KkC0+Ubm9hrhynUuT0tl3y6PPvmkdzJ9RXuR89UjgpDvb ZziW51Nz0kR2S1RumzAUry7ua6d7Uv2gUpi7s9NSyfjd2uVPP5wOr97zevzOcH6p99ovPApaUu7M eBFysngg9Eza+6lv28h1qMj7ydPX35p288HFweE7nhvOvI5y5D9z6vTPnY8jHbaAO4gm79QdtPH3 825FFODkTup5P9c56zcFDIZAeWt7/k0MNPRXFzUk+X9p3tOabR46lPv24N6PhzBxt6Y9eKCMPsu3 06EBV/Q5E0qP3DqTUbBFKPrZtNbsu9I23pklA5eefghRqgBbi5yvNW+WmWZwq9SHCu5Q7kfMeqS4 64XnO0ET/cMGCfpPqxZ8kSE8XfF9625J0cSJ5o2ibuGyzROFQQNu4Hnhk2HhSynsBreLZ5TEBQpz P2SkWh+OQx9YSRIqc932XvZkc+qeWfxqO44ETHqCaY6mOoqiyuJ93OVfkDYX7H004FiYkfuxUk0+ UaByxiEDSlVxF+gPChpXDPxcNDXczDJUutVX2rdA/qCBRNEaAaFDq8YvEkfXPFouMDNcyjvKIWx3 +MdHivNO7jnrGnn2QImAjudxChrD/3nGxyfUFIeQIRD0dvmoUG2+nYLLlL82JW0/9rO3YM8skVO5 QhlX3p5H2e75LPQu1+L5SVfH1ZHlPQKVZbmbj4ceCph06lhElLqJ7vwejf6TYg8GYm7wLcN/Dbl2 jlDZIgGaCeFvMsmqkWiZ13zXL5a0JAoEtS1MneQiX6kQPsGlZMHV2ssGn2z2PRhIxg2rqqKWKISP 76LxZ7yftP9qqoM/GoUSFTKMXJ9z2DwrYZUt6hn665dn59NK9Tr2zDn82hKsCzZomQo0yx9sAVew 4FzGxrcBgma0zgPrkhOv71d+OFD4YGDigwF5S23Uyg+THg502/bsqE/AqqI2eEoRh05b8SWWFm99 U2EKVYgThz5YWZi3Psa692gc7SvgKxaYTpq6W2Kxk6T7AbP4tI3G69Ss7pXFxNwQBEjjTvQMxJ3c 4P9goDFRALUyVKFxQMfljpPpcCSAjpCM1ZjSGlj63nvN0b4OYUF0vUUnIag5KO+asna1+4/3t3AJ DlnDx5XFWxQPa1qeeOjxXVds4fE+2amfNO4kPNyKApbIPRjoWb+EX2bm+scDu46mLLiyvjhAirDS 4fTPNygP1PWbhwwSUnDDz5TR5nkSO7JyVg/1WXmg/AjGx/pkwZHrMODnFr2k6UKaadPsD9tkJaAn eKMGvPsrMHEiAoW4zzWPdQQsvEThp5eaIrbSguu4nxTOugo9F5TeijwPBCuwzA5eTYK9PXvaBaSv r0hKTgQhgOSgP1u8fWxF4rDcwIpcAZUNc/k8/vkDs8gj22H+udVNr2P2eT+ATh3bzQdDa0vf5P/i weexAheu8/9heFLQ334L+F+4/4HD6o7d//gnChf/IyjkEIL/37zQ3/Ff38CA6/43Ttdw7P7HP1Km AzbwlT9gMcJ5YAExjADoa+uKuYJ0oUVGmCwgU8KxYksIFCqRTDLR1dbVNhSzIodHkEkEEs0kyE+b GI4PInBWBUUSOSsCQSCcNQHIvVOeldrRWOzI8doBRHwYOYizgUqg0YikIKqYG97PlRhLMNETcwBt WCSIkgmB5OPuKrYY7x8KfqOYYMfuso4s3Pof6RdG9P9fcP8PZzBm//+JwsV/KuXvZj7qL93/NQCF AOK/nuHY/c9/pPDgP2Twtf3D8FTq3zTHb/hvhNXn5r+Bnp7umP//J4oGw//DDAcCQe8vJmZFIeBp BACMAEDpEBObHx1BptDExBZTiKugelU/O+piKiEygOxIDsCHARZUwJJMDiPgSawuRLhpCT4skgC1 25FoBNAHi4lpaACO+FACgA8LA8Lh0VGI7AH+oEcnUAAyCaAFg+3+NOIqAr1RDMEEilEiCBRaDIBI LTwFlX16Zj8GoqN15MADCi6YaEQRacHkSBqwDOMBgMHFv4AWpD/skwGjoQV1/DuQciRHUglABJlK hF7ewxsrNzLS67fE4tGRiRf7+vCkAE42UKEvAI0M4AFqBMGfGAjCRvAHSGQaO/XA4E17NCwRSwTN vpSLxnQsg0fryOoBVrDVc0PAg/UORCoN6uJKo4DBo+cKwATwVFngSKBSwUhRBQOoLLAjRUTSLMnR 8BdrIsUqmEymEijwVyhEpuNNJFDhKgjg/AAijUzvQSbR2EdATSA1Q8PxlFC4woocRuaAaQnynEwm qaxgqZlrpB/I2lUER4KmUwTEWVBZ7EFz5epPIRBIbAzS4mAWANgFAotAirP3BZkF1nKx2C0YbHIk aEOTaMJV2kj/ZcAsQBNsWAroAHpaGIC9zYPeZgu3aUHzIRQ3ASwiIsDgEQ+hqm0Bs5rOAgBAsOKB ETwUQgTsAfdB2qmecAt9zhXay4CZo7R4APNMAV3OtYwOA+yxDDMqJLjdQwtGxYVAi6SAqFEiCeD3 +aQAYiCyiBESiKzEyQ/aPmnbUUGbRwzQ5OqlhSDIoBRXK4tndOFFQMIVPFhGR20BqHUEMQZS0EoW 4ymgYeCeCmph6ALwK7gM8iFDIHLRPyJywCUUSJMHq5ctey828WCnpBhISFDC4V0GLOCuweQoTbgb AFgTQYsHyfIiQhRdewENIAi0d8sg6waQA0GrA0SSIAsYxSAcMmyZB5uXQfQ5CuJ0lLbHCrhTFFi1 KDIsTIwhZxARQDzZSAa3AGx6QjfQCDMgyQFhRMd46q5gq/NA6rAr2EEAdL2lf50P8YmzRROihhaj nS5cjE/gR9dI0LpoQ8ThTTLY5mpqcbhWCMAfqCJLXhjLoKuDthU5EiSFKYDlIYAMK8+2Sojuftbk EeaIRcd/R5dZkE0YSshGHw420VFzokCVrHGcPKXTndmsxckwDdaaOP3H74gJU50rIGLDmE3aeKgc swudmvNJeL8wQgB78MDQYHoT2wiOerAfYg8YrSyhgqWOoO1OI4YRQUfLhRxL0jS1mJVLg6EsEJdJ cyRosc2+FE+kAbraWNYYAiSnbGseYRFBdLV+Y9t+sTw/bgqwCQNU6GaGPfIUG13B6L1Zq6dr1Eh1 swoDnTTLA3OHtDycL7c4MBfGERWbIKDYnAuCDDIf3MbAhiuCWRBJgl/TyBF/+bgQ8AGa3NgwiMKh KbyhwqaFHeBSCpFGR4Q92IA9PqfmMZbyJ9jC0eMfIQv1/B2qCLQ/wBQ25X8BT7pQ/gmi9K6/QZUB 8Pe4MvThL2GLWCQ2dFken4EtV8zxO3TpELnwpYczSNjHGQhx4Pvf3teOlT8ro+R/sH9nAug3+R99 rAGO+f4/IwNDKP+jj8WN5X/+icIz/8Pu/iBp8HGKIJCQKJ09FnLEE0lM3YejXTDMcCNHgN8MdMFv VsEE/1BwD43VZng8OPLgdrB+NBLWxwr8FopMAQfW8E5c2zmSQIWm0lRxCyZSgWAChQAQqV4kaCMJ 4AEa2AqEI329SF4kFUAdUOHwTOAgqNIuUBPOarK3gbtucL8N/QwMVNGCRnqROOwvr7H0Ns6x4G83 clBQGIHDf0LNTqH4GBC2CRhSw0HtSIpAcRBX7cgQBKSQHjuFoFiR6EKgsoUhUPwHYqnHGcuAXQl+ kUFwZ4Sy8LC/AR8cOz7gd336d2Rfw2sEowczklochvcf4QOhpQUy9oBIBAAAgeD+NYAWDKKnp6sL f7clEIOCadBC6BWOeEoQkW2vAC41AobPDL4CtR0IgawhUAUiq8h3RhAWqG1BoeBJQYRwaF8IBv/I N+0FRHDziOAHZzwd8H4EKNKH8IQ/awZC4XGYtiWZEgDzA/mg7RpJCoVRCNN2I0RDIBFhBv8PQcQY SvXRZY+eXOMptnATL6mFFwqjyxoHExfsBi4OA/6DRsAbZxUESYswYhCJsULos7YVnFKECUDlue1k SgU750doFQjPAU+ljSY5DCB6owBBlv9nMPR5w2CLR0A6sABhQKuCgXMAvIJ8OkzcaDAZIdmvELOM pNHInLbMGn5krQ3ZTyhryGt/4UggRfIcCeq4BYlLx0caRjsqQIPEiQIphBnEZw8kJ7mIDPOabgBA SL+aeqR5+Q9M/d/2dWNlZBk1/oOM0t80x+/iPz1DfWb8h8VC7381wOobjcV//0Rhnv+BN8jMwz9i cfQKyAMjSUtXf3wYIUBTFwM7FPAfrOIU2IXSnS5vz7kEek4CDoYyHBF4fyIpiDWC223HwTYJC/+E nTTdZWqqwPUqSAZqCZFK9AsjcOS8kJF6rJFsY60JYQQagT54jRjyDxmgP8pU+r+dCsdzKrhlxEy2 kN+Ef8INbOTUw2Axs40wOGTECPpAg6H4mO5b6LONYAdGn5Gas4ikkcEQjxhLADgSfWwIIg+5WCjS 59AbdQ4sFpoE+xcmgfwdAAcEXPPQHd2oU+npg1PNZs3EYiHsSEdijRsVlD4OBKX3l7GGxd4cYMRN IybUH3VCA8O/ygvmhFzTsIUEbJ9HzmhoDM2I40Eu1igVRhtUBQWfiCKNMh+oPzG/mtFYf9QZY/58 TpZS6I2iFEYYcG30SeIAZWbsyQzUeIgOgpkeY+7p9ECHg/S/ZQniDwH6Fo6TLczg9RdYYGdzofGn M8KRL9eEzHXr/2JGff2/b+HQ43s4pAscKZRMZHC/QAbHvfx/E5lwKOzmMKdrxsLIv7OMEv/p/YP5 P6y+nh5y/tNAzxCrawCf/zIcy//9I4Vn/m/09B+c6dBjJjL+tVwbkjFypAY50YIJFPYnmPDO40/S T0i+jXuzPmIsPaHFG+6/jwU4eHQU9JkowJEjoAGEQ2eoLNhPkCGHpmLgA1LIOXuAsc/WVLHgyG/C ZNOAU6zIE0I93mk2xoK4N/R+ro6cj5VHZDdGyXgw4t7RVgfZb8bi4D7wUS/6wpjHNH61Kl6zgujy XJ4VnuRPCGNfHJMg+ghB/tsa9X+rjGr//7n9v56uEY5u//WxukYGyP4fO2b//4nyL+3/DcEAD47w 4CAOz7k//juSALCbwSK/uDcHszE4DA6HMUKCQuikJWzMSDRPlZl6Kshpr/nREdD5VLbg8hcJb7a4 040R+wJRIEnIoNsDPUIkFcTWizTi8Qpow2jB5AAvZLuzhoW4Hm/EjTBYPQzOgLGt4R0E/wLPP0gl GGIM9X6ZS3CNgA686tF/89pEYaH/Rux66c+3Rt36QlG/IWPmPwjweT0vYwy2JgTiI8No7CPZMAH9 2+jZAz1kB/7neIyaDWG40dHTC/Rt11+YC8TcHCDDUHnsr5jObdQpccZwcuTPZ0TgMQlLB8+Drog4 YEcVCwNjUCr02eVibCP2/0bh4f/ZMzl/yzbw1/5fX1cfx8r/6+Kg+7+GRmP3f/6ZwnP/x7jwY0cC bRWRRgXcqQSKFehiKeQwMTENekQOVoCBvA/rJgTrRgW0N5yBYdknDGSSMIuJ/rRICgGDPBjHuOAD iGQM4gkw8G5CReyPQcOH30adAYw6yFEmkJmjT4Z8huQa/uFECovhnozudqBLxJyzgX6Nu68rMZwY BooNRz9EYzBsaVDeM8xfBbl3jqHwdkYFJDzcBH8T0wCQb/COyJocReKscY/g/L40mACGHJyDKPgg 6DoJ/YYNnTjQzPSPrDbYZTBRYtXDCVwe9TCBOS9+sY2AyMveqMEahxxa5AGR+0Qk21wsN8ermX7e gmcT3j80iEKOJAVwHJRn3RQCKQTuUIMsKAQ81IPtK1snnnSjN1JHEI7RAK40Eh82WrMfL6wZQ0cQ nYEJIlbwICREYF23A+NSCs0/kraYTOW9Vj87EpUYQOA5I72NB1MZHRZTwECJ42A6W+Mvxo3GO0Y7 L2lhLcoyiPMIAnxrSpsRH7IRBtYYN2I4QlH4w4ijrWCvSAqFrnocTzlG68jgA/ycj4NaRJqN20Le KwJNJVcbewbDh0RAztmLAVzih5wkYquBzttDYFTY6qBHKBoc47QXkP0jqayYDoLrxzyCRK9ksIhe gSRNQC2JjoGvF7CLPQgBybpwnzOmiz7bCWOGMoixHTFm1nEAgVbOGM91npheTT9QzFA11tl494gA EAJklMVGQQxSMTas6ErDhhSsozwwggdyoYOMZp2C4VInkPpQtSvXvRu6GWBhzaH+JgwUEO5wqKoJ oItUW5Ph0Br+QURaEFy07UjgB00EBAZQUVfBIB1mAvRwHDrVR4eFnOqzBBkZymiiQ3EkBqgygTDG Y0AQkPtRV+G4LEPyh3swdg2g3yeSOC7gMDFl3lqjWyY2KMw6RLCRL0yZZjhIzr7adkEkMoVrN8Ns ZEo1+0UXZutomyENV/A7/Y/ca8PbGWAGoM892oEcRaDQL8BwrZHZh87M0QiKAegPvZgDWCll+mUz EA1wR4904hIDJsG5RIc+G3R0kZN9syDeqbNhM4K7WjzWAF1Xm8X8ZsvqwZIZKMtPJkfQpZUTGxcC fNZQk70akklIKEEpohu23+ssZFF/rbOIzR2hs/DA0XWW7js5b06MOKHnY0OmwWaTpyXWdiUgrZC2 0wcgERnDNvKAyMhHM266ItebmN6NqRdI/KPtgidSCcwLVRrwV4AxCQAsoBAIjG/My4OwCWdiwhDS EUtciqf5B8Me0Af+yUAKvtnGcnojnCD9HiWntYOqPDir2NbH4SeR23ccdUhePoC1evjwpCsNFi4G r9nXAgDQFUvum8jMW5qMOrCfB1c/Dx79PJjYLgPmgbYRwdCD7fMywNSEbdhSZheOalv2W7cITDdK DAcx2bsvAPfSVsHEsADNZRgAvkwMguSgPHIDjr1qnil7eDKinWlJ2C7PsTcj3p39FjWEBNRBk60b hmMM9FGL02CPYB13i7YLIRAMBIO568H1B3OIEounXHLKpsq2eFJAGAFBcpTIjFt0mcEY46ImJOus iI9ei0REYC1jxwoDoXdGvBEzVFRhqYsKsxNop8PwMcyT4fRK+H1YdFiMoGvkzVCOOZFrlIzVsYxt MN1KwReS6Rxj0hhugyWO0Y3FTHofDGdvZhjAlAvuOEBsBLvYceJUZDovWeM0mJMxLCOgAV1CjgwL ACiIQABk8DOUcQfDWyAcHI34Mp5yw6KA9mJyRGSEJgs8ot5sq2Mo90xWla0W6/4vjwVxr5ytiyo3 I+Abq2zCwTBNLFFB+CPGSTt6LTfVWJ1h6zBy6XA1TD92FzNSMRjsRowIh+BjAK7NoRabSojBT1KB +XgQd2SUHV2GtGFQFJZ5QGoX4cPBYMmEDpP91QIsCeCWQTak6MhocQDlCWYRPfoddalI/lEzmPul Hr9bLy/LwJsMCDxYXaj/K6jAdsSCpd40Shib4fqj1Y94D8qoVAlm3ouAJ9Jm9SfzXCQnU36xTpa2 wSLOmoZOdIZ75XgDwXzQZ1G4PCsr7uQiHSPuYhMdtnCIeW0MjkqobOEIfPiDQV7o+gfSyub32BWb /sKGURQbNISgk2fTXHgXzW7ZuMM4HkaDd9TDFn36MJJ7ALuDRCLFkZLDiBNZgSxbJoTb1bGaVLi6 Mh2eLneDG4UYRI/7Rt6LZ/TiDDQ5xtMtKjdeCDE46TXKVgGO5H95DZv+HpQRxgUZ+Yv71qCAIPWw FIJDQU6xUrE8sUGk7teXwuE+PPBBxv7y/jcjTfPb7AcEj9XIHuMv5RWucyTi4NUyfSj7Bg9uWYpE s9ATdXjLC1+949jxaYH+mGNHzXLIjAQOHdJME1YdGF6PNsyPFcAig7j363pw15FNDC2EcF7KqVOc ezqWmnKZEhZnmQT6HXuZHXnxmAXl14xmz1b8ea4LSYH8BkGkEw/k6KN/iRgzyTI6UiwTwG632PbU YvQ7vPR8B5eRh+WEcyvEkR5hvL5oRBKFkfb5NWdHQc+BTOXc8/8nMGSkW/8VBOdDpzz+ADlmIv/f m86BgF9F+GvT/Vv0Zz7F+jP6w/SG9/fwpV3e7QQm6Uds0FlPLNhvBLMbGsRDczz5YKQUlgGm9Ddd zRqZOQSNGHyAh5mX4YZBD0A0AGIg8tI7uB66vU4MCCCAu3C4MiwM8EMkLIoIfo6AdkJwSzgS8bBZ Mo1R01OjcoLxGho2xMCAiGdCiiOrxKTtyFf/cNF4tKAFRJeDfQgKmhyY0mGNEEexX6S1RswGv6mM ze/xekT1p4I2miCxCdEvVsNGcEb/eaassWzCxgLH+EiPE3mzkZMYv6SGewRX8vFXyvOvkoOZ12Rf GqOZS+l+ayyY4DR/Iad0SeHIwv5SNKDP7FKxDAMs08MAHhjuuAh+urMgDB80spr7mS5dvsDONE7h Ql6ABs444gEoAz4P6MHwiUULKnxkkQGEsVnjGg8fABwJwpr9+RP30w1k7cjSoMcHMWEEKHVFIzgF jiq3HMkTVjDHvjNCGMEAi/wGWYXAtwV1kQILM9Mqstkf1rse2UXBFk9Fckl/CJj9BYx/HQ6jEw/I kJ6zmGjCep4NYo14AVOI4jMAHJ1iGhqAm5O10xzANYZKI4Rru0DX393IkK7BL8OABcWErir0eEoD gobUIERhaCJ7Xor+4jv6tpPxqBZ6px1zrw3TdjGeCOeZw8JcQCOtCT3GwwB0f6UHf7JFPiHPy10J YWA3QgDrNATDfwHcrGKqIFw30lsAdOrBGNAf6eliAF1kemRqDKL7GIQHGIQeGPhpPv35Guvp3Z9A Y1qVX0DkTjZzmWO2II5FSoCNlm4UPIkKAiXAxNQaCYpjYyPGTGMixpRNANhJBT3LQMDDgYQr+INt M8RNCqi3tSvHcjgmYTfJ9CEIcEh26VA1mfAxkOXTpEsCa1ZbLfi1nNxzswDZQX/LgQVGG/4OeQs8 +BWij5Y2nJzCU2mas7BafzIN+2I4qcqmduyGZ3SKInjCIzStXWFJgX4hcoKclrYkg2IUPsoKkZGM yA7Sab3fA2Hij8BwIJIIjLfRgCB0AEO4EbL1DHO7gEwhIIrGy+by8rOsbJUqWxoSgYkosSOBAjIG +YyoCkudIcWgawKCI9u5J8gUBrE1gT6NHEoYKeAj0gAs+fv3lvavroTD7HEAYNgzFi6/Wzr8g8o8 jMFaKquVTf086IkwgJEKYUkLh1Iiz0CZp8PYbAwPuQYY3pzH9QM2OeXqtIhMCceH0dt42yEEz1kj Ei2uzFYWT7jVClz1yAwNYyD7C0RHUdbRFRaBzEY0Jpocddwv5mSSF2EmGPBFQC4OPnkAerplSCSH KCu7wEO4QfzUpB+B4OiIoVNVi4N7nAcw2JYUTL9SQveyZPrzIuScDS8esi1YExKVYK7UGYyTlhbg xVz2Mj0QBPQaXO6u7Kc96EvhwFOLcZQfnu2vjobPjDAgQFLOsNwIIOSdWrDpZqJmQYVeNQ+dJmER ATnhpkmPzaHTQh70Rlaf0W34iPCF5SIRroHEgT9i2YwB1zuUuSD8ctwICRt1i8lcF48dJCN0Qw7+ sQwkq47t0BHYn/k3isAttAMZH0AI0FSB/i4SLVRfRYtu7kfvo8L5YJ5xpnDEi5A5rDgz/4f05rVC 9p3SQkIMHB6x7RvBKtC7w7ke6CN0gYjAsdYROZXR93caSIA5Eqob3o+xOA2GUeM8PYa8ihl6lARK EfTQjONEDtwIPVZATjrTq37LXK6lu4A+BE8l/GuLZ50/G231yOuR4Q9cJ4h4n4fgOBgFhdy/SfEy uo1yQgqG8Ms0LzO0H/WoFDvBIFPAIBVbPnjUVbCcMNs62M5LMl/VbBnEK03NGs21BsYrl+E1QKeD 2U5c8uTE2GvHfle47/8gf/Tt753jd3//CYtj/f0fHPz+BxwWO/b+r3+kIG8dENOF/oP/tJ8Y8y/6 0f+OH+Ov97H9zT6uv9TH9ff52P8q35jyjZWxMlbGylgZK2NlrIyVsTJWxspYGStjZayMlbEyVsbK WBkr/4XyPyilsL0AyAAA From bagoneo at libero.it Mon Nov 21 15:42:38 2022 From: bagoneo at libero.it (gian) Date: Mon, 21 Nov 2022 15:42:38 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> Message-ID: Il 21/11/22 09:42, BB ha scritto: > Inline > > On 21/11/22 7:01 pm, gian via User wrote: >> Mine was just a suggestion. >> I am convinced that it is easily improved, such as in the case you >> posted (aSpace As Integer[] = [6, 44, 15, 12, 20, 17]): >> >> ... 8< > I have taken a couple of things from your ideas and incorporated them. > So you are in the authors list, so there ?. >> :-D >> If you messed up the numbers in your code what would happen? >> > In general, or in what I have tested with mine so far, it doesn't matter > as it either elides any item or tells me I have an underflow (-ve > padding) problem by printing an upside down "?". > > Anyway, never mind. I have now a gridview problem to solve. ? > > regards > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I didn't mean to be pushy, just that the idea of a very light report is intriguing and interests me. I just got back from a dentist's office and now I am more serene even though I have less money and more pain. :-( I saw that earlier in the submitted code I managed to insert a new bug ;-D If Len(aField[i]) > iSpaceOne Then aField[i] = String.Left(aField[i], iSpaceOne) & "..." I think it should be If Len(aField[i]) > iSpaceOne Then aField[i] = String.Left(aField[i], iSpaceOne - 1) & "..." I used your font :-) Best wishes for the gidview Regards Gianluigi P.S. gb.report2 is fabulous and I really like it ! From bagoneo at libero.it Mon Nov 21 15:52:33 2022 From: bagoneo at libero.it (gian) Date: Mon, 21 Nov 2022 15:52:33 +0100 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: References: Message-ID: Il 21/11/22 14:30, Bruce Steers ha scritto: > I found it worked really well apart from one problem with a gtk MenuButton. > If i called Message() from within a MenuButton Click() event i got > various issues like the message window buttons needed clicking twice as > the menubutton seemed to still have the mouse grabbed. on some programs > pressing a Message button would pop open the message window again, > sometimes with double the buttons?? many odd quirks. > > ... > > I've attached the test project that can be run that has 2 menubuttons, > one original one modified to see the difference when clicking. In Ubuntu 20.04 I get the malfunction as you described, but only if the IDE uses gtk. If the IDE uda QT5 even if the project uses gtk3 (gb.gui) then the operation is the same. I hope I have explained myself Regards Gianluigi From adamnt42 at gmail.com Mon Nov 21 16:03:29 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 22 Nov 2022 01:33:29 +1030 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: References: Message-ID: <26122c7d-e88f-b570-3a01-1f1e9427c8a7@gmail.com> On 22/11/22 12:00 am, Bruce Steers wrote: > Or is it just a bug in gb.gtk as this does not happen with QT only > gtk2 & gtk3 The words (that I live by) "*eschew GTK*" leap to mind here. ? (Which is probably why your original great idea works so well here!) > Could this be a "You shouldn't do that inside an event handler" type > of thing? Did you mean? > Could this be a "You shouldn't *ever ever ever *do that inside an > event handler" type of thing? ... "and it's No, nay, never, No, nay never again will I ever stick events inside event handlers", unless I forget and then wonder about the stack overflows or other strange and exotic happenings that occur unexpectedly and without prior notice or even a hint of the slightest sign of concern for the sanity of your average Aussie Gambas coder . and it's only Tuesday. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Nov 21 20:15:03 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 21 Nov 2022 19:15:03 +0000 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: References: Message-ID: On Mon, 21 Nov 2022 at 14:53, gian via User wrote: > Il 21/11/22 14:30, Bruce Steers ha scritto: > > I found it worked really well apart from one problem with a gtk > MenuButton. > > If i called Message() from within a MenuButton Click() event i got > > various issues like the message window buttons needed clicking twice as > > the menubutton seemed to still have the mouse grabbed. on some programs > > pressing a Message button would pop open the message window again, > > sometimes with double the buttons? many odd quirks. > > > > ... > > > > I've attached the test project that can be run that has 2 menubuttons, > > one original one modified to see the difference when clicking. > > > In Ubuntu 20.04 I get the malfunction as you described, but only if the > IDE uses gtk. > If the IDE uda QT5 even if the project uses gtk3 (gb.gui) then the > operation is the same. > > I hope I have explained myself > I think so but I do not get the same thing, if I run the IDE with QT5 i get exactly the same results as with the IDE in GTK3. Mint/21/MATE BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Nov 21 20:35:25 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 21 Nov 2022 19:35:25 +0000 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: <26122c7d-e88f-b570-3a01-1f1e9427c8a7@gmail.com> References: <26122c7d-e88f-b570-3a01-1f1e9427c8a7@gmail.com> Message-ID: On Mon, 21 Nov 2022 at 15:04, BB wrote: > On 22/11/22 12:00 am, Bruce Steers wrote: > > Or is it just a bug in gb.gtk as this does not happen with QT only gtk2 & > gtk3 > > The words (that I live by) "*eschew GTK*" leap to mind here. ? (Which is > probably why your original great idea works so well here!) > I thought it was a complete winner till i noticed the MenuButton misbehaving :( stupid gtk have been adding it to most of my programs using the StickToMouse option. then noticed a glitch in GambasLatestUpdater > Could this be a "You shouldn't do that inside an event handler" type of > thing? > > Did you mean? > > Could this be a "You shouldn't *ever ever ever *do that inside an event > handler" type of thing? > > ... "and it's No, nay, never, No, nay never again will I ever stick events > inside event handlers", unless I forget and then wonder about the stack > overflows or other strange and exotic happenings that occur unexpectedly > and without prior notice or even a hint of the slightest sign of concern > for the sanity of your average Aussie Gambas coder . > > and it's only Tuesday. > > b > haha :) Yes I mean something like that, getting out of the event handler asap has fixed many a problem for me (especially with compound controls) but I'm talking about Ben's code so gotta tread lightly here ;) I'm hoping to nudge giving MenuButton.class (or gb.gtk3) a quick once over to see if he's got a better fix for this gtk only MenuButton glitch. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Mon Nov 21 22:50:32 2022 From: bagoneo at libero.it (gian) Date: Mon, 21 Nov 2022 22:50:32 +0100 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: References: Message-ID: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> Il 21/11/22 20:15, Bruce Steers ha scritto: > I think so but I do not get the same thing, > if I run the IDE with QT5 i get exactly the same results as with the IDE > in GTK3. > Mint/21/MATE > > BruceS You can see the behavior with the IDE - qt5 in the zipped video at this link: https://paste.c-net.org/PaulineLandis Regards Gianluigi From bsteers4 at gmail.com Tue Nov 22 01:08:22 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 22 Nov 2022 00:08:22 +0000 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> References: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> Message-ID: On Mon, 21 Nov 2022 at 21:51, gian via User wrote: > Il 21/11/22 20:15, Bruce Steers ha scritto: > > I think so but I do not get the same thing, > > if I run the IDE with QT5 i get exactly the same results as with the IDE > > in GTK3. > > Mint/21/MATE > > > > BruceS > > You can see the behavior with the IDE - qt5 in the zipped video at this > link: > https://paste.c-net.org/PaulineLandis > > Regards > > Gianluigi > Yes , the only function of concern is clicking the MenuButton (not the menu arrow) and with StickyModals on. The 2 menu buttons on the right, the menus do nothing but clicking them pops open a test message centered to the main window (or mouse if StickToMouse is selected). The MenuButton to the left is original gb.form, the one to the right is modified code to use a Timer to raise the Click event and not Raise it in the Button_Click event. I find with the original MenuButton to the left that when the message pops up (not moving it first) I have to press the buttons twice, the first click does nothing. it's busy for some reason. The custom MenuButton to the right that uses the timer does not have this issue. and i find the issue is there when the program is debugged or run with gtk regardless of what the IDE uses. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 22 11:13:29 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 22 Nov 2022 20:43:29 +1030 Subject: [Gambas-user] GitLab classic. Message-ID: AH elision where is thy sting @Gianluigi, There that's what the 3 dots mean. @Benoit, Strange I haven't found that routine. Must look harder @BruceS, Be quiet and get on with your piano practice ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: nlfhcglfmipopoel.png Type: image/png Size: 19236 bytes Desc: not available URL: From kicking177 at gmail.com Tue Nov 22 11:16:23 2022 From: kicking177 at gmail.com (KKing) Date: Tue, 22 Nov 2022 10:16:23 +0000 Subject: [Gambas-user] CDate ... again Message-ID: well my 2 pence ( do we have a CCur for your local currency :---? first and foremost if Gambas has done something a set way since 1.0 then it should stay as is for backward compatibility. With the exception of if optional arguments could be added to add extra functionality without destabilising existing code use of old mechanism. Having said that I would have expected that CStr and CDate should convert to and from a string to a date without any time zone conversion at all. If a time zone affected date time representation is required that should have been a separate function with a more implicit name making clear it is TZ affected representation. Or as an optional argument to the original functions. K. From bsteers4 at gmail.com Tue Nov 22 12:39:17 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 22 Nov 2022 11:39:17 +0000 Subject: [Gambas-user] unable to add to wiki Message-ID: when i hit "Save" in the wiki edit i get an error at gambaswiki.org Been like it for a week at least. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.png Type: image/png Size: 58684 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Tue Nov 22 13:31:18 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 22 Nov 2022 13:31:18 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: Message-ID: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> Le 22/11/2022 ? 12:39, Bruce Steers a ?crit?: > when i hit "Save" in the wiki edit i get an error at gambaswiki.org > > > Been like it for a week at least. > > BruceS > I have no problem... Is it for all pages you are editing or for a specific one? -- Beno?t Minisini. From bsteers4 at gmail.com Tue Nov 22 14:03:49 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 22 Nov 2022 13:03:49 +0000 Subject: [Gambas-user] unable to add to wiki In-Reply-To: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> Message-ID: On Tue, 22 Nov 2022 at 12:32, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 22/11/2022 ? 12:39, Bruce Steers a ?crit : > > when i hit "Save" in the wiki edit i get an error at gambaswiki.org > > > > > > Been like it for a week at least. > > > > BruceS > > > > I have no problem... > > Is it for all pages you are editing or for a specific one? > > -- > Beno?t Minisini. > Aah i didn't try another, yes it seems a specific page.. http://gambaswiki.org/edit/doc/library Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 22 14:20:30 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 22 Nov 2022 14:20:30 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> Message-ID: Le 22/11/2022 ? 14:03, Bruce Steers a ?crit?: > > > On Tue, 22 Nov 2022 at 12:32, Benoit Minisini > > wrote: > > Le 22/11/2022 ? 12:39, Bruce Steers a ?crit?: > > when i hit "Save" in the wiki edit i get an error at > gambaswiki.org > > > > > > > Been like it for a week at least. > > > > BruceS > > > > I have no problem... > > Is it for all pages you are editing or for a specific one? > > -- > Beno?t Minisini. > > > Aah i didn't try another, yes it seems a specific page.. > http://gambaswiki.org/edit/doc/library > > Respects > BruceS > It's the company I'm working for that hosts the wiki. They decided to add a global sniffer that cancel any HTTP request whose contents match "some" patterns. A really stupid "security" tool that breaks a lot of perfectly valid requests because they include something like "SELECT * FROM" inside (for example). Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Tue Nov 22 14:21:52 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 22 Nov 2022 14:21:52 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> Message-ID: <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> Le 22/11/2022 ? 14:20, Benoit Minisini a ?crit?: > > It's the company I'm working for that hosts the wiki. They decided to > add a global sniffer that cancel any HTTP request whose contents match > "some" patterns. > > A really stupid "security" tool that breaks a lot of perfectly valid > requests because they include something like "SELECT * FROM" inside (for > example). > > Regards, > Of course, they are unable to give me the list of forbidden patterns. You have to guess! -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 22 14:35:17 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 23 Nov 2022 00:05:17 +1030 Subject: [Gambas-user] unable to add to wiki In-Reply-To: <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> Message-ID: On 22/11/22 11:51 pm, Benoit Minisini wrote: > Le 22/11/2022 ? 14:20, Benoit Minisini a ?crit?: >> >> It's the company I'm working for that hosts the wiki. They decided to >> add a global sniffer that cancel any HTTP request whose contents >> match "some" patterns. >> >> A really stupid "security" tool that breaks a lot of perfectly valid >> requests because they include something like "SELECT * FROM" inside >> (for example). >> >> Regards, >> > > Of course, they are unable to give me the list of forbidden patterns. > You have to guess! > Try the following, you might at least get a response of some type UPDATE staff SET ??? state='Unemployed' WHERE ??? role IN ('IT Manager', 'IT Director','IT Auditor'); or in the case of my most recent wasted 3 hours UPDATE staff SET ??? state='To be Deceased' comments='Shoot on sight, do not approach - its not worth the effort.' WHERE ??? role IN ('UI Redesigner'); ymmv, of course -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Tue Nov 22 14:56:36 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 22 Nov 2022 14:56:36 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> Message-ID: <7b7878d8-97d9-952c-503f-541ea12aaad8@deganius.de> Am 22.11.22 um 14:20 schrieb Benoit Minisini: > It's the company I'm working for that hosts the wiki. They decided to > add a global sniffer that cancel any HTTP request whose contents match > "some" patterns. Very "good" idea! > A really stupid "security" tool that breaks a lot of perfectly valid > requests because they include something like "SELECT * FROM" inside (for > example). We could host the Wiki on Hostsharing but there's an old Gambas on a Debian machine: > gbs00 at h08 ~ ? gbx3 -V > 3.12.2 :( Alles Gute Christof Thalhofer -- [x] nail here for new monitor From bsteers4 at gmail.com Tue Nov 22 14:57:23 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 22 Nov 2022 13:57:23 +0000 Subject: [Gambas-user] unable to add to wiki In-Reply-To: <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> Message-ID: On Tue, 22 Nov 2022 at 13:22, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 22/11/2022 ? 14:20, Benoit Minisini a ?crit : > > > > It's the company I'm working for that hosts the wiki. They decided to > > add a global sniffer that cancel any HTTP request whose contents match > > "some" patterns. > > > > A really stupid "security" tool that breaks a lot of perfectly valid > > requests because they include something like "SELECT * FROM" inside (for > > example). > > > > Regards, > > > > Of course, they are unable to give me the list of forbidden patterns. > You have to guess! > > -- > Beno?t Minisini. > I think i've tracked it down to this line... `/usr/bin//.gambas` Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Nov 22 15:05:40 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 22 Nov 2022 14:05:40 +0000 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <1c552f26-9d35-1e45-94f7-ebf1c4bd2da5@gambas-basic.org> Message-ID: On Tue, 22 Nov 2022 at 13:57, Bruce Steers wrote: > > > On Tue, 22 Nov 2022 at 13:22, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 22/11/2022 ? 14:20, Benoit Minisini a ?crit : >> > >> > It's the company I'm working for that hosts the wiki. They decided to >> > add a global sniffer that cancel any HTTP request whose contents match >> > "some" patterns. >> > >> > A really stupid "security" tool that breaks a lot of perfectly valid >> > requests because they include something like "SELECT * FROM" inside >> (for >> > example). >> > >> > Regards, >> > >> >> Of course, they are unable to give me the list of forbidden patterns. >> You have to guess! >> >> -- >> Beno?t Minisini. >> > > > I think i've tracked it down to this line... > `/usr/bin//.gambas` > > Respects > BruceS > It was that line. i removed the backquotes and use the 4 spaces instead to make it blockquote /usr/bin//.gambas now it does not error. Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 22 15:36:04 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 22 Nov 2022 15:36:04 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: <7b7878d8-97d9-952c-503f-541ea12aaad8@deganius.de> References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <7b7878d8-97d9-952c-503f-541ea12aaad8@deganius.de> Message-ID: Le 22/11/2022 ? 14:56, Christof Thalhofer a ?crit?: > Am 22.11.22 um 14:20 schrieb Benoit Minisini: > >> It's the company I'm working for that hosts the wiki. They decided to >> add a global sniffer that cancel any HTTP request whose contents match >> "some" patterns. > > Very "good" idea! > >> A really stupid "security" tool that breaks a lot of perfectly valid >> requests because they include something like "SELECT * FROM" inside (for >> example). > > We could host the Wiki on Hostsharing but there's an old Gambas on a > Debian machine: > >> gbs00 at h08 ~ ? gbx3 -V >> 3.12.2 > > :( > > Alles Gute > > Christof Thalhofer > Thanks for the proposal! If you can upgrade Gambas, it will be ok. But I need to rewrite the bugtracker first, because it is linked to the wiki and to the application I wrote for the company I'm working for. Regards, -- Beno?t Minisini. From t.lee.davidson at gmail.com Wed Nov 23 00:09:58 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 22 Nov 2022 18:09:58 -0500 Subject: [Gambas-user] How to survey? In-Reply-To: <8c79bd3a-b550-9b9b-a583-af29792830d9@belmotek.net> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> <8c79bd3a-b550-9b9b-a583-af29792830d9@belmotek.net> Message-ID: <7ebeff72-fad1-a582-a4e8-4df6d67d6d6e@gmail.com> On 11/20/22 17:42, Mart?n Belmonte wrote: > If you have *OpenSuse* please try the *simple-mtpfs* program and if you can send the output of the program detailing the > operating system and the?program?used. > > I will try on manjaro (*arch*) and see what happens with the *mtpfs* program. > > The?code?that?reads?the?output?is?the?following?(for?now). Although `simple-mtpfs` is available in the openSUSE main repository, it is not installed (by default). Are you intending to rely on commands that my not be available? If you really need the device info, be aware that udev already has a comprehensive hardware database which, BTW, `lsusb` queries. The database itself is located at '/usr/lib/udev/hwdb.d/'. And, the device info the system has collected from that database about current local devices can be found at '/run/udev/data/'. Specifically, look at the "+usb*" files. Just for fun, I coded up a command-line app that queries `lsusb` for attached devices then determines the relevant "+usb" file and prints out its contents. It seems to work quite easily. -- Lee From mbelmonte at belmotek.net Wed Nov 23 01:43:06 2022 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn_Belmonte?=) Date: Wed, 23 Nov 2022 01:43:06 +0100 Subject: [Gambas-user] How to survey? In-Reply-To: <7ebeff72-fad1-a582-a4e8-4df6d67d6d6e@gmail.com> References: <84648204-4860-c83c-c168-cf97d7a11587@belmotek.net> <7677e28e-88c7-b8b6-cb00-db9df1fa9767@gmail.com> <8c79bd3a-b550-9b9b-a583-af29792830d9@belmotek.net> <7ebeff72-fad1-a582-a4e8-4df6d67d6d6e@gmail.com> Message-ID: <3407a765-d5ac-8424-b2e9-e65ce263dc1d@belmotek.net> El 23/11/22 a las 0:09, T Lee Davidson escribi?: > Although `simple-mtpfs` is available in the openSUSE main repository, > it is not installed (by default). Are you intending to rely on > commands that my not be available? > > If you really need the device info, be aware that udev already has a > comprehensive hardware database which, BTW, `lsusb` queries. The > database itself is located at '/usr/lib/udev/hwdb.d/'. And, the device > info the system has collected from that database about current local > devices can be found at '/run/udev/data/'. Specifically, look at the > "+usb*" files. Programs such as simple-mtpfs, if I eventually use these tools, will be a dependency in the package. But this thing you tell me about the data available in that uses lsusb seems better than installing programs. Thank you. Martin. From chrisml at deganius.de Wed Nov 23 08:52:51 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 23 Nov 2022 08:52:51 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <7b7878d8-97d9-952c-503f-541ea12aaad8@deganius.de> Message-ID: Am 22.11.22 um 15:36 schrieb Benoit Minisini: > Thanks for the proposal! If you can upgrade Gambas, it will be ok. > > But I need to rewrite the bugtracker first, because it is linked to the > wiki and to the application I wrote for the company I'm working for. It's shared hosting on a managed machine and it will be upgraded sometime later. And then it will be the next Debian (Bullseye) Gambas 3.15.2-1. I have no influence on when it will be upgraded. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From chrisml at deganius.de Wed Nov 23 09:47:27 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 23 Nov 2022 09:47:27 +0100 Subject: [Gambas-user] unable to add to wiki In-Reply-To: References: <17f1105f-f1f9-fd93-3a49-6428c9f4c14c@gambas-basic.org> <7b7878d8-97d9-952c-503f-541ea12aaad8@deganius.de> Message-ID: <206dcd3c-68ad-e204-0ef6-f4f9b7e1a124@deganius.de> Am 23.11.22 um 08:52 schrieb Christof Thalhofer: > It's shared hosting on a managed machine and it will be upgraded > sometime later. And then it will be the next Debian (Bullseye) Gambas > 3.15.2-1. > > I have no influence on when it will be upgraded. Ahm, if we are able to install the newest Gambas in the user directory and let Apache call it by '.htacess' then we could run the newest one. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From gambas at servinfo.it Wed Nov 23 11:11:23 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Wed, 23 Nov 2022 11:11:23 +0100 Subject: [Gambas-user] web gui file download Message-ID: <3fe05721-8afc-3710-d18f-4c2d836a1cc1@servinfo.it> Hi all, how can I make a web gui button that download a file ? Thank's, marco. From gambas at servinfo.it Wed Nov 23 11:59:51 2022 From: gambas at servinfo.it (Marco Ancillotti) Date: Wed, 23 Nov 2022 11:59:51 +0100 Subject: [Gambas-user] web gui file download In-Reply-To: <3fe05721-8afc-3710-d18f-4c2d836a1cc1@servinfo.it> References: <3fe05721-8afc-3710-d18f-4c2d836a1cc1@servinfo.it> Message-ID: OK , I solved with a: Me.exec("window.open(\"/export/export.xlsx\", '_blank');") bye, marco. Il 23/11/22 11:11, Marco Ancillotti ha scritto: > Hi all, > > how can I make a web gui button that download a file ? > > Thank's, > marco. > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From bagoneo at libero.it Wed Nov 23 15:14:19 2022 From: bagoneo at libero.it (gian) Date: Wed, 23 Nov 2022 15:14:19 +0100 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: References: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> Message-ID: <10207aa3-bbff-5b6c-a57b-64be23977e90@libero.it> Il 22/11/22 01:08, Bruce Steers ha scritto: > Yes , the only function of concern is clicking the MenuButton (not the > menu arrow) and with StickyModals on. > The 2 menu buttons on the right, the menus do nothing but clicking them > pops open a test message centered to the main window (or mouse if > StickToMouse is selected). > > The MenuButton to the left is original gb.form, the one to the right is > modified code to use a Timer to raise the Click event and not Raise it > in the Button_Click event. > > I find with the original MenuButton to the left that when the message > pops up (not moving it first) I have to press the buttons twice, the > first click does nothing. it's busy for some reason. > The custom MenuButton to the right that uses the timer does not have > this issue. > > and i find the issue is there when the program is debugged or run with > gtk regardless of what the IDE uses. > > Respects > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi Bruce, don't know if you have already asked Benoit, but if there was a way to know the height of the window edge the position of Y would be perfect to the micron. See attached test Regards Gianluigi -------------- next part -------------- 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 Ef5/8b8ACkMUhwB4AAA= From bagoneo at libero.it Wed Nov 23 16:02:49 2022 From: bagoneo at libero.it (gian) Date: Wed, 23 Nov 2022 16:02:49 +0100 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: <10207aa3-bbff-5b6c-a57b-64be23977e90@libero.it> References: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> <10207aa3-bbff-5b6c-a57b-64be23977e90@libero.it> Message-ID: <88e0757c-9cb7-8839-ef48-8d0d5aa045b2@libero.it> Il 23/11/22 15:14, gian via User ha scritto: > don't know if you have already asked Benoit ? Me.ScreeX and Me.ScreenY instead of Me.Y and Me.Y http://gambaswiki.org/wiki/comp/gb.qt4/control/screenx Sorry :-( Gianluigi From adamnt42 at gmail.com Thu Nov 24 04:31:19 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 24 Nov 2022 14:01:19 +1030 Subject: [Gambas-user] Suggestion re QT5 annoying messages Message-ID: <45077f5d-8e59-2d53-d4e0-dbb85e3fc970@gmail.com> @ Benoit In the IDE Project module in Sub Main() near line 360 change ??? Env["QT_LOGGING_RULES"] = "*.debug=false" to ??? Env["QT_LOGGING_RULES"] = "*.debug=false,qt.qpa.*=false" gives me a whole lot less of the intrusive QT "errors". rgrds bruce From bsteers4 at gmail.com Thu Nov 24 05:23:40 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 24 Nov 2022 04:23:40 +0000 Subject: [Gambas-user] MenuButton quirk, event inside event(gtk) In-Reply-To: <10207aa3-bbff-5b6c-a57b-64be23977e90@libero.it> References: <2fb8a33e-8a00-4bd3-96f7-31355c10a686@libero.it> <10207aa3-bbff-5b6c-a57b-64be23977e90@libero.it> Message-ID: On Wed, 23 Nov 2022 at 14:15, gian via User wrote: > Il 22/11/22 01:08, Bruce Steers ha scritto: > > > Yes , the only function of concern is clicking the MenuButton (not the > > menu arrow) and with StickyModals on. > > The 2 menu buttons on the right, the menus do nothing but clicking them > > pops open a test message centered to the main window (or mouse if > > StickToMouse is selected). > > > > The MenuButton to the left is original gb.form, the one to the right is > > modified code to use a Timer to raise the Click event and not Raise it > > in the Button_Click event. > > > > I find with the original MenuButton to the left that when the message > > pops up (not moving it first) I have to press the buttons twice, the > > first click does nothing. it's busy for some reason. > > The custom MenuButton to the right that uses the timer does not have > > this issue. > > > > and i find the issue is there when the program is debugged or run with > > gtk regardless of what the IDE uses. > > > > Respects > > BruceS > > > > > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Hi Bruce, > > don't know if you have already asked Benoit, but if there was a way to > know the height of the window edge the position of Y would be perfect to > the micron. > See attached test > > Regards > > Gianluigi Benoit's not really commented on this notion at all. Doing it via Form.class override has the bonus of making it work on all built in modal windows not just Message, like InputBox for example. With my GTK I cannot even make my own window, set a position, then use ShowModal and it not be center screen (and maybe not the screen I'm on) This fixes that. Also you don't have to change any previous Message code, just drop the Form.class in your projects .src dir and set it's defaults. your test using an FMessage.class copy does work okay (no menu button bug) but Initially I just wanted to fix ALL my applications modal/form windows popping open on the wrong screen in one simple hit so a Form.class mod seemed ideal and worked. >From there it developed into attaching to active/selected windows or the mouse. (gotta love options :) ) My Form.class method seems almost flawless and is pretty useful. If it wasn't for the darn MenuButton problem. It makes me worry it has other potential issues. Could my method be modified so the MenuButton (and any other potential control problems i don't know about) do not have a problem? Any advice would be appreciated on my implementation of a pseudo modal window and why it might glitch with a menu button? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Thu Nov 24 09:12:32 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 24 Nov 2022 09:12:32 +0100 Subject: [Gambas-user] FSFE open letter Message-ID: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> Hi, I've just signed this: https://fsfe.org/activities/upcyclingandroid/openletter.html Maybe it's interesting for you too. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From gambas.fr at gmail.com Thu Nov 24 09:50:51 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 24 Nov 2022 09:50:51 +0100 Subject: [Gambas-user] FSFE open letter In-Reply-To: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> References: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> Message-ID: Done too :-). this is an old true subject ! my oldest running machine have 15 years. (Turion 64) From adamnt42 at gmail.com Thu Nov 24 10:05:14 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 24 Nov 2022 19:35:14 +1030 Subject: [Gambas-user] Suggestion re QT5 annoying messages In-Reply-To: <45077f5d-8e59-2d53-d4e0-dbb85e3fc970@gmail.com> References: <45077f5d-8e59-2d53-d4e0-dbb85e3fc970@gmail.com> Message-ID: On 24/11/22 2:01 pm, BB wrote: > @ Benoit > > In the IDE Project module in Sub Main() near line 360 > > change > > ??? Env["QT_LOGGING_RULES"] = "*.debug=false" > > to > > ??? Env["QT_LOGGING_RULES"] = "*.debug=false,qt.qpa.*=false" > > gives me a whole lot less of the intrusive QT "errors". > > rgrds > > bruce > Sorry, that should be Env["QT_LOGGING_RULES"] = "*.debug=false;*.qpa.*=false" Got a bit overexcited. From gambas.fr at gmail.com Thu Nov 24 12:16:32 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 24 Nov 2022 12:16:32 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> Message-ID: ' Gambas module file Public Sub Main() Dim sPatternTitle As String = "$$L3!!$$AC,L10!!&1$$L5,AC!! $$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" Dim sFilledPattern As String = "$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" Dim sPattern As String = "$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" Dim i As Integer ''Format patern '$$ -> start Format 'L# -> Lenght 'A# -> L,R,C,F Alignment 'F# -> One letter filling 'C# -> Decimal letter ... '.' or ',' or else 'D# -> number of decimal '!! endof formating string 'ex : $$L10,AC!!text$$L2!!$$L8,AF,D3!!2.536 Print MakeLine(Subst(sPatternTitle, "Date", "Test", "Value")) Print MakeLine(sFilledPattern) For i = 1 To 10 Print MakeLine(Subst(sPattern, Format(Now(), "dd/mm/yyy"), "Maurice", "2.52")) Print MakeLine(Subst(sPattern, Format(Now(), "dd/mm/yyy"), "Marcel", "23.535")) Next End Public Sub MakeLine(sLine As String) As String Dim sPattern, sText As String Dim iSta, iEnd As Integer Dim sRet As String Dim s As String Dim sSingle As String Dim sAling, sFill As String Dim sDecChar As String Dim iDec As Integer = 2 'Find the next opened pattern iSta = InStr(sLine, "$$") + 1 Do iEnd = InStr(sLine, "!!", iSta + 1) - 1 sPattern = sLine[iSta, iEnd - iSta] iSta = InStr(sLine, "$$", iEnd) + 1 If iSta = 1 Then sText = sLine[iEnd + 2, sLine.Len - (iEnd + 2)] Else sText = sLine[iEnd + 2, iSta - 2 - (iEnd + 2)] Endif For Each s In Split(sPattern) Select Case Left(s) Case "L" sSingle = String(Val(Right(s, -1)), " ") Case "A" sAling = Right(s, -1) Case "F" sFill = Right(s, -1) Case "C" sDecChar = Right(s, -1) Case "D" iDec = Right(s, -1) End Select Next If sFill Then sSingle = String(sSingle.Len, sFill) sFill = "" Endif If sText.Len > sSingle.Len Then sText = Left(stext, sSingle.Len) Select Case sAling Case "L" Mid(sSingle, 1, stext.Len) = sText Case "R" Mid(sSingle, sSingle.Len - sText.Len + 1, stext.Len) = sText Case "C" Mid(sSingle, (sSingle.len - sText.Len) / 2 + 1, stext.Len) = stext Case "F" If Not sDecChar Then sDecChar = "." stext = stext & String(Max(0, iDec - (stext.len - (InStr(stext, sDecChar)))), " ") Mid(sSingle, sSingle.Len - sText.Len + 1, stext.Len) = sText Case Else Mid(sSingle, 1, stext.Len) = sText End Select sRet &= sSingle sSingle = "" sAling = 0 sDecChar = "" iDec = 2 If iSta = 1 Then Break Loop 'Analyse du pattern Return sRet End Enjoy it :-) From adamnt42 at gmail.com Thu Nov 24 14:04:25 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 24 Nov 2022 23:34:25 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> Message-ID: <9238a483-581c-33a9-4f8c-f039bdecb905@gmail.com> On 24/11/22 9:46 pm, Fabien Bodard wrote: > ' Gambas module file > > Public Sub Main() > > Dim sPatternTitle As String = "$$L3!!$$AC,L10!!&1$$L5,AC!!$$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" > Dim sFilledPattern As String ="$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" > Dim sPattern As String ="$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" > > Enjoy it :-) > Enjoy it?? Enjoy it? It looks like the lyrics to the song sung by the Irishman, the Welshman and the Scot when they came out of the hotel 6 hours later. If you recall, I was looking for a "simple" and "quick" way to use Print. ? b From gambas.fr at gmail.com Thu Nov 24 16:00:20 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 24 Nov 2022 16:00:20 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <9238a483-581c-33a9-4f8c-f039bdecb905@gmail.com> Message-ID: .. simple.. It is ! Using a formatting pattern is not something complex. Well I was just trying to help ?. And thinking about how I'll do it for myself. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Thu Nov 24 16:45:12 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 24 Nov 2022 17:45:12 +0200 Subject: [Gambas-user] FSFE open letter In-Reply-To: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> References: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> Message-ID: It is a very good idea and I definitely sign and share, but I'm also very pessimistic about this. The over-consumption culture is too profitable and too many people happily accept it. Jussi On Thu, Nov 24, 2022 at 10:22 AM Christof Thalhofer wrote: > Hi, > > I've just signed this: > > https://fsfe.org/activities/upcyclingandroid/openletter.html > > Maybe it's interesting for you too. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Nov 24 14:28:56 2022 From: adamnt42 at gmail.com (BB) Date: Thu, 24 Nov 2022 23:58:56 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> Message-ID: <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> On 24/11/22 9:46 pm, Fabien Bodard wrote > Dim sPatternTitle As String = "$$L3!!$$AC,L10!!&1$$L5,AC!!$$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" > Dim sFilledPattern As String ="$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" > Dim sPattern As String ="$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" I tried sending that as a MIDI stream to my Yamaha. Half its' keys fell off and then it wrenched the comms cord out and strangled itself before I could intervene. ? Did you know, by the way, that the reason Mozart died as a pauper was that all the concertos were his submissions to the [X] corporation as advertising jingles. Unfortunately television hadn't been invented yet. From benoit.minisini at gambas-basic.org Thu Nov 24 17:32:21 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 24 Nov 2022 17:32:21 +0100 Subject: [Gambas-user] FSFE open letter In-Reply-To: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> References: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> Message-ID: Le 24/11/2022 ? 09:12, Christof Thalhofer a ?crit?: > Hi, > > I've just signed this: > > https://fsfe.org/activities/upcyclingandroid/openletter.html > > Maybe it's interesting for you too. > > Alles Gute > > Christof Thalhofer > Signed! -- Beno?t Minisini. From olivier.cruilles at yahoo.fr Fri Nov 25 01:47:03 2022 From: olivier.cruilles at yahoo.fr (Linus) Date: Thu, 24 Nov 2022 19:47:03 -0500 Subject: [Gambas-user] FSFE open letter In-Reply-To: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> References: <54d3774d-ba5e-739a-046e-e674ec35093a@deganius.de> Message-ID: <3459B64D-3575-4592-AFDA-D2E8DC618D7D@yahoo.fr> Signed too ! Olivier Cruilles > Le 24 nov. 2022 ? 03:12, Christof Thalhofer a ?crit : > > Hi, > > I've just signed this: > > https://fsfe.org/activities/upcyclingandroid/openletter.html > > Maybe it's interesting for you too. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Thu Nov 24 15:56:21 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 24 Nov 2022 15:56:21 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <9238a483-581c-33a9-4f8c-f039bdecb905@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <9238a483-581c-33a9-4f8c-f039bdecb905@gmail.com> Message-ID: P Le jeu. 24 nov. 2022 ? 14:05, BB a ?crit : > On 24/11/22 9:46 pm, Fabien Bodard wrote: > > ' Gambas module file > > > > Public Sub Main() > > > > Dim sPatternTitle As String = > "$$L3!!$$AC,L10!!&1$$L5,AC!!$$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" > > Dim sFilledPattern As String > ="$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" > > Dim sPattern As String > ="$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" > > > > Enjoy it :-) > > > Enjoy it? Enjoy it? It looks like the lyrics to the song sung by the > Irishman, the Welshman and the Scot when they came out of the hotel 6 > hours later. > > If you recall, I was looking for a "simple" and "quick" way to use Print. > ? > > b > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From angelnunez123 at gmail.com Fri Nov 25 07:32:09 2022 From: angelnunez123 at gmail.com (Angel) Date: Fri, 25 Nov 2022 07:32:09 +0100 Subject: [Gambas-user] Xmlwriter.open always gives error 43 Message-ID: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> Hi When executing the sentence: xwri.open ("~/desktop/file new.xsl", True) To save the XML to a file, error 43 always comes out. When I am the owner of the file, and the file is in the Home Desktop folder. I have tried to erase the file and create an empty file with that name and give the same error. What am I doing wrong? How to save the resulting XML to a file. -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Nov 25 07:47:10 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 25 Nov 2022 17:17:10 +1030 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> Message-ID: <3047b775-404c-ec8f-3534-1933bf5eed7f@gmail.com> On 25/11/22 5:02 pm, Angel wrote: > > Hi > > When executing the sentence: > > > xwri.open ("~/desktop/file new.xsl", True) > > > To save the XML to a file, error 43 always comes out. > > When I am the owner of the file, and the file is in the Home Desktop > folder. > > I have tried to erase the file and create an empty file with that name > and give the same error. > > What am I doing wrong? > > How to save the resulting XML to a file. > 1) it's "D"esktop everywhere I've been 2) what's that space? hth bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ajffkcgkjgfedpnl.png Type: image/png Size: 15748 bytes Desc: not available URL: From gambas.fr at gmail.com Fri Nov 25 07:51:38 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 07:51:38 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> Message-ID: By the way.. Mozart was a great artist ? Le ven. 25 nov. 2022 ? 01:40, BB a ?crit : > On 24/11/22 9:46 pm, Fabien Bodard wrote > > Dim sPatternTitle As String = > "$$L3!!$$AC,L10!!&1$$L5,AC!!$$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" > > Dim sFilledPattern As String > ="$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" > > Dim sPattern As String > ="$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" > > I tried sending that as a MIDI stream to my Yamaha. Half its' keys fell > off and then it wrenched the comms cord out and strangled itself before > I could intervene. ? > > Did you know, by the way, that the reason Mozart died as a pauper was > that all the concertos were his submissions to the [X] corporation as > advertising jingles. Unfortunately television hadn't been invented yet. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Nov 25 07:57:35 2022 From: adamnt42 at gmail.com (BB) Date: Fri, 25 Nov 2022 17:27:35 +1030 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> Message-ID: On 25/11/22 5:21 pm, Fabien Bodard wrote: > By the way.. Mozart was a great artist ? > Oh yeah? How come he hasn't done any live youtubes then? (It's after 5:00pm on Friday here... ?) b From gambas.fr at gmail.com Fri Nov 25 08:03:25 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 08:03:25 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> Message-ID: My idea was to make a pattern to have a function more generic with a terminal command like pattern. Sure it look like midi sentences ?. Le ven. 25 nov. 2022 ? 07:51, Fabien Bodard a ?crit : > By the way.. Mozart was a great artist ? > > Le ven. 25 nov. 2022 ? 01:40, BB a ?crit : > >> On 24/11/22 9:46 pm, Fabien Bodard wrote >> > Dim sPatternTitle As String = >> "$$L3!!$$AC,L10!!&1$$L5,AC!!$$L15,AC,D3!!&2$$L5!!$$L8,AC!!&3" >> > Dim sFilledPattern As String >> ="$$L3!!$$AC,L10,F-!!$$L5,AC!!|$$L15,F-!!$$L5!!$$L8,F-!!" >> > Dim sPattern As String >> ="$$L3!!->$$AC,L10!!&1$$L5,AC!!|$$L15,AL!!&2$$L5,AC!!|$$L8,AF,D3!!&3" >> >> I tried sending that as a MIDI stream to my Yamaha. Half its' keys fell >> off and then it wrenched the comms cord out and strangled itself before >> I could intervene. ? >> >> Did you know, by the way, that the reason Mozart died as a pauper was >> that all the concertos were his submissions to the [X] corporation as >> advertising jingles. Unfortunately television hadn't been invented yet. >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kicking177 at gmail.com Fri Nov 25 09:55:43 2022 From: kicking177 at gmail.com (KKing) Date: Fri, 25 Nov 2022 08:55:43 +0000 Subject: [Gambas-user] FSFE open letter Message-ID: Hi, > I've just signed this: > > https://fsfe.org/activities/upcyclingandroid/openletter.html > > Maybe it's interesting for you too. > > Alles Gute > > Christof Thalhofer I've not signed this. While I applaud the concept and intention, I see issues with the first and possibly last goals, in particular with the wording of the last sentence in the first. As someone who has worked for companies whose existence depends on devices they have designed and support, an inkling of the costs involved in the creation and making of the devices I see issues with trying to make it fit an open source model. If a hardware maker has to design, manufacture and support a device to run ... anything ... it will not be viable. K. From gambas.fr at gmail.com Fri Nov 25 12:26:32 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 12:26:32 +0100 Subject: [Gambas-user] FSFE open letter In-Reply-To: References: Message-ID: Le ven. 25 nov. 2022 ? 09:56, KKing a ?crit : > > Hi, > > I've just signed this: > > > > https://fsfe.org/activities/upcyclingandroid/openletter.html > > > > Maybe it's interesting for you too. > > > > Alles Gute > > > > Christof Thalhofer > > I've not signed this. > While I applaud the concept and intention, I see issues with the first > and possibly last goals, in particular with the wording of the last > sentence in the first. > As someone who has worked for companies whose existence depends on > devices they have designed and support, an inkling of the costs involved > in the creation and making of the devices I see issues with trying to > make it fit an open source model. If a hardware maker has to design, > manufacture and support a device to run ... anything ... it will not be > viable. > K. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- But the headlong rush is not viable either. It must be recognized that forcing obsolescence for lack of openness to the technical data of a device of na goes in the direction of good ecological thinking. Manufacturers, if they do not want to open their equipment, must in return ensure repairability over the long term and also the related online services... which is not the case because it is not viable (maintaining a service for three or four people...) So that's why I say that both models are not viable in the long term. Except that open source relies on free resources for a good part...goodwill. There would be a market for the repair and recommissioning of devices that can still perform their true task. You have to realize that today most of us use supercomputers from the 90s... To play! A second generation iphone is more than enough to run games whose gameplay hasn't changed since the 90s. Today we use advertising to sell what people don't need. Too much power... too much capacity... too much power consumption. I understand that all this consumption is also what has allowed the equipment to evolve. But I know the story...many of the novelties distilled year after year, half model by half model are sometimes ten years old. To keep a reason to sell it and make the customer consume it. Why not an economic model or a new model arrives every 5 years ... being really revolutionary but expensive and allowing the repair and recycling of old models. The economic world has nothing to do with us or the planet, only the numbers count... I am for the numbers, for success, but there are several ways to achieve this. I hope google have not mess too many my message :-D -- Fabien Bodard From gambas.fr at gmail.com Fri Nov 25 16:09:52 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 16:09:52 +0100 Subject: [Gambas-user] gambas Disk Management Message-ID: Hi, This is a started component for enable the disk management in gui with gambas. It is based on dbus Udisk2 I'v trying to put as less as possible properties. Just the ones useful for a file manager. There is 3 events DeviceAdded(Block as string) when a new diskBlock is added DeviceRemoved(Block as String) When as DiskBlock is removed DeviceMounted(Block as string) When a FileSytem is Mounted Can someones try on their computer to see if all goes well. Have try with different media It's an early alpha code so please tell me about properties name and event name if something sound wrong. Regards, -- Fabien Bodard -------------- next part -------------- A non-text attachment was scrubbed... Name: gb.disks-0.0.1.tar.gz Type: application/gzip Size: 15158 bytes Desc: not available URL: From gambas.fr at gmail.com Fri Nov 25 16:10:55 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 16:10:55 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: Message-ID: gmail version :-) Le ven. 25 nov. 2022 ? 16:09, Fabien Bodard a ?crit : > > Hi, > > This is a started component for enable the disk management in gui with > gambas. It is based on dbus Udisk2 > > I'v trying to put as less as possible properties. Just the ones useful > for a file manager. > > There is 3 events > > DeviceAdded(Block as string) when a new diskBlock is added > DeviceRemoved(Block as String) When as DiskBlock is removed > DeviceMounted(Block as string) When a FileSytem is Mounted > > Can someones try on their computer to see if all goes well. > > Have try with different media > > It's an early alpha code so please tell me about properties name and > event name if something sound wrong. > > Regards, > -- > Fabien Bodard -- Fabien Bodard -------------- next part -------------- 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 From t.lee.davidson at gmail.com Fri Nov 25 16:28:28 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 25 Nov 2022 10:28:28 -0500 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <3047b775-404c-ec8f-3534-1933bf5eed7f@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <3047b775-404c-ec8f-3534-1933bf5eed7f@gmail.com> Message-ID: <9f7e877d-fade-4695-280b-5e30f4e95d2f@gmail.com> On 11/25/22 01:47, BB wrote: > > On 25/11/22 5:02 pm, Angel wrote: >> >> Hi >> >> When executing the sentence: >> >> >> xwri.open ("~/desktop/file new.xsl", True) >> >> >> To save the XML to a file, error 43 always comes out. >> >> When I am the owner of the file, and the file is in the Home Desktop folder. >> >> I have tried to erase the file and create an empty file with that name and give the same error. >> >> What am I doing wrong? >> >> How to save the resulting XML to a file. >> > > 1) it's "D"esktop everywhere I've been > > 2) what's that space? > > hth > > bruce Also, the tilde may be causing an issue. Try using User.Home in place of it. -- Lee From angelnunez123 at gmail.com Fri Nov 25 17:32:11 2022 From: angelnunez123 at gmail.com (Angel) Date: Fri, 25 Nov 2022 17:32:11 +0100 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> Message-ID: <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> I have tried the following code: xwri.open ("home/angel/probar.xsl", True) Without accents or spaces, without the file and creating a file with the same empty name, I always give me error 43 Access forbidden El 25/11/22 a las 7:32, Angel escribi?: > > Hi > > When executing the sentence: > > > xwri.open ("~/desktop/file new.xsl", True) > > > To save the XML to a file, error 43 always comes out. > > When I am the owner of the file, and the file is in the Home Desktop > folder. > > I have tried to erase the file and create an empty file with that name > and give the same error. > > What am I doing wrong? > > How to save the resulting XML to a file. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Fri Nov 25 17:46:00 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Fri, 25 Nov 2022 17:46:00 +0100 Subject: [Gambas-user] COBOL and how great it was! In-Reply-To: References: <9280a4cf-b766-571d-01dc-a7cdbbec5261@gmail.com> <4058d965-c817-56ef-9505-64458bed45e1@libero.it> <1948fbb8-7174-3113-704f-97735215779f@gmail.com> <41ce91ee-4471-e170-849b-3716df91e227@libero.it> <0320ef3b-cf5f-4380-c1ed-0db19eac11d2@gmail.com> <34b7598c-fe16-893f-cb21-aa66e3637cc5@gmail.com> Message-ID: <141a1c8f-80b0-1cb3-8bd4-672c82a49aa4@deganius.de> Am 25.11.22 um 07:57 schrieb BB: > On 25/11/22 5:21 pm, Fabien Bodard wrote: >> By the way.. Mozart was a great artist ? >> > Oh yeah? How come he hasn't done any live youtubes then? > > (It's after 5:00pm on Friday here... ?) You're so childish ... :] Kindergartner Christof -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From admin at allunix.ru Fri Nov 25 18:25:15 2022 From: admin at allunix.ru (Admin) Date: Sat, 26 Nov 2022 00:25:15 +0700 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: <5ac862c8-87ba-f9b8-2d12-5894afaa443a@allunix.ru> That would not work either, without first slash before "home" it will actually always be "/home/angel/home/angel/probar.xsl", but that should not cause "access forbidden" but rather "no such file or directory". Strange. Dmitry. 25.11.2022 23:32, Angel ?????: > > I have tried the following code: > > xwri.open ("home/angel/probar.xsl", True) > > Without accents or spaces, without the file and creating a file with > the same empty name, > > I always give me error 43 Access forbidden > > > El 25/11/22 a las 7:32, Angel escribi?: >> >> Hi >> >> When executing the sentence: >> >> >> xwri.open ("~/desktop/file new.xsl", True) >> >> >> To save the XML to a file, error 43 always comes out. >> >> When I am the owner of the file, and the file is in the Home Desktop >> folder. >> >> I have tried to erase the file and create an empty file with that >> name and give the same error. >> >> What am I doing wrong? >> >> How to save the resulting XML to a file. >> > > ----[http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From karl.reinl at fen-net.de Fri Nov 25 19:01:52 2022 From: karl.reinl at fen-net.de (Karl Reinl) Date: Fri, 25 Nov 2022 19:01:52 +0100 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: <4469aecd3c97cda0ce2ee6a69a6e6856f349af09.camel@fen-net.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Am Freitag, dem 25.11.2022 um 17:32 +0100 schrieb Angel: > xwri.open ("home/angel/probar.xsl", True) > > Salut, try with the third parameter, an encoding that is on your computer. * Encoding: By default, XmlWriter uses UTF-8 encoding to write the file.You can specify any different encoding, if it is supported by libxml2.Dim xml As New XmlWriter? xml.Open(strArgus[0] & ".xml",TRUE,"utf-8")??that works for me - -- Amicalement Charlie -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEjowiKCHQ+TXcV68jJzngniJtB0MFAmOBAxAACgkQJzngniJt B0NlfwwAkzi9J4Wd9NkoFThOqcfLLn6faQF48c0W/WVth0ykxpbI6hgj2JYVbvEF AMATcU08mNaXQQ+FXLY5JLvAQSsyHCJenKpKsQVZvWrkX8wEhRgaSDXpFuSprtgO OrWxsCgeE6PYtUq/VtTQkGz+h6Ymp4IrWBtsHv1+RK69izOkgkGZnf8KCJnikw3M JjpRIy+0iOygMuIWwM40gMzRgoyRXQRrRnZWOzwqKUf4hsr3/HRFIniC08m6P57M NjUtK2We8cWCMLOCLhUWuSpjO0FreK/bdPZdBQpQw9EJI1uNNlCrzzTcZB8UUR0r AVARhTejyN4w5SGL6p9Y/Ky752mEcLmPsw3lq8V7R4y/9gLu6RmoNJ22UFUxpcPP Q06rea9az2ZA7I0i/Hecisa6T8Vuo0dGNtkIohyk59tGB07ZHnlWc1VmTk71kWwd PKhUKAnk73jEluVjQAn5w+NUogG5B6AXKnmrP60BHDoifrBu3nkUX06ZcTYDEgb0 E6yEFBDn =clmv -----END PGP SIGNATURE----- From karl.reinl at fen-net.de Fri Nov 25 19:08:28 2022 From: karl.reinl at fen-net.de (Karl Reinl) Date: Fri, 25 Nov 2022 19:08:28 +0100 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: Am Freitag, dem 25.11.2022 um 17:32 +0100 schrieb Angel: > xwri.open ("home/angel/probar.xsl", True) > > Sorry something unpleasant happened, but here it comes again Salut, try with the third parameter, an encoding that is on your computer. * Encoding: By default, XmlWriter uses UTF-8 encoding to write the file.You can specify any different encoding, if it is supported by libxml2. Dim xml As New XmlWriter xml.Open(strArgus[0] & ".xml",TRUE,"utf-8") that works for me -- Amicalement Charlie From jussi.lahtinen at gmail.com Fri Nov 25 19:19:00 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Fri, 25 Nov 2022 20:19:00 +0200 Subject: [Gambas-user] FSFE open letter In-Reply-To: References: Message-ID: > > If a hardware maker has to design, manufacture and support a device to run > ... anything ... it will not be viable. > Actually it is the opposite. If you manufacture a device with standard parts, you have to see some trouble to make it incompatible with Linux (and yes, they really do that!). By anything they refer to self built things supporting the underlying architecture (ARM, etc). Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From angelnunez123 at gmail.com Fri Nov 25 20:20:40 2022 From: angelnunez123 at gmail.com (Angel) Date: Fri, 25 Nov 2022 20:20:40 +0100 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: With the bar / before home it works. I am very clueless, do not realize the bar before home. Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Fri Nov 25 21:56:58 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 25 Nov 2022 21:56:58 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: Message-ID: New version With better asynchronous mounting job management and cdrom display. Le ven. 25 nov. 2022 ? 16:10, Fabien Bodard a ?crit : > > gmail version :-) > > Le ven. 25 nov. 2022 ? 16:09, Fabien Bodard a ?crit : > > > > Hi, > > > > This is a started component for enable the disk management in gui with > > gambas. It is based on dbus Udisk2 > > > > I'v trying to put as less as possible properties. Just the ones useful > > for a file manager. > > > > There is 3 events > > > > DeviceAdded(Block as string) when a new diskBlock is added > > DeviceRemoved(Block as String) When as DiskBlock is removed > > DeviceMounted(Block as string) When a FileSytem is Mounted > > > > Can someones try on their computer to see if all goes well. > > > > Have try with different media > > > > It's an early alpha code so please tell me about properties name and > > event name if something sound wrong. > > > > Regards, > > -- > > Fabien Bodard > > > > -- > Fabien Bodard -- Fabien Bodard -------------- next part -------------- H4sIAAAAAAAAA+w8C3QURbYTQYFxRVDebkA+7SBkRofJ/AMsk5A/wfxIIiuEGHpmOpMmk+7QPZMQ QggIuLKAQVAERNGDf1DAwBN9GtijAi4LOYoIxxVQwRdWVrMBWQgJ5FVV/+cTQJK460sfyPRU3br3 Vt1P3Xu7ejxOg5tkS9hoVdddRnDF2Gzw0xRjM8o/hUtlslqsRrPZZo8B7SYzAFBhti7kSbz8rA9n MExVhDtJggoPd63+/9DLI8jf4MFLnXiX6AGSf8w15W8BMDZjjAnI32Kxmnvk3x2XJH+WcXWRE7gh +zfHQPu32+098u+OSyn/JHhrcHlxlu1EGlDAdrs1nPyB0ZtF+duQ/7fGxFhUmLETeQh7/T+XfxSW ivw+hoSOFZFeQq1OZAjcR2C5PtxHutTZDFkOvybSFOvD7mMT/CwWz4JehqQ8mAPTsJWsjygdHx2t CYKNLyvzki6AhqaUY2jGYyhiCMJNsCU+uszwEFI9s4ThPjaHpn1JTj+bjfuKlYOjweho2ehofnS0 00u7SgrdRDnpIthgbhJwlkijfARThLuI6+LHoFFLHOHpJOtLgCSksfkFUr9L7MskKgBRr5dwwZlL EMW5pIfCvRAkCSwj903WDRsBsxQ3TgCTWtTJ5QTlw5LQBOPdbsKtDeBHpwDJIUrp8msBZdB+sCYh gKSJTaadbIh5qbP9TiBeLNfvxAopokKrU6sxLI+pDJ6KA80kn9Oe0UrNKDDIZggQiMvkQASlldIG otUHCw4CGLKcswBABk7hHoLR6AFLfkIHJ6DhEAGpJlNudeAE5vi0OmkBICtJZCkm03bQklaEZdI+ hTLkFROUosGBpRI+qLaJxaTXzUKWtEp9RgsFUKWxmX6vV5tM+UsNaZSbmKND2EAnhkmNAKERNCV7 WQL1pFEuWS/sodxkEYdRNirWIecKLDKQcwD6XLBk6JuSfcgUas4hfH6GEimAGxZTYM2X6BWoBXiM FdZXsp4UP8VpQvDSBFi4TmFdIYUAWxAPglLKwVNoBkvGXcVgTBrVkdrlI8JA+yArDL8svHw7GqYU pTTekDwHsKRlORlCr+MjKT+BRbmdXlcx4SpBBBDfBmC8ABA0ZAKtU0srx/Xm0oxPC7bmTBw04l4d v5xybfUQviCLhbeFqFFYtmIRRGoXNJhzVzzT6F6mfMWiKoDV5cYKMNCM0K1GWLBkhgFrjibNT0NU IJ5KPvpbAPBxiGU6y49QAoawzxRg5JyDEfyDIZnCnV7CDbCm4JxtyF0HZCEYDddfyDsUyR9zS6jH 4hmPvxQ4R6RwU3GGxClffgGiC1QZGBDvtIWvIny+ERoA9y8KmjYFUGrl3cBbzQKOVMPrB297AFTk WSPuTizvujWSSMLhVG56MhmCtcVJlgjYC1LAFm+g8FJCgUenE4Zw4kDfeD/BySk8A/JJ8VgAKLdr 8OqlICXnUAaaLwcqyA+7JQNYDejOKiMYZJAaqFYaGLlwgciYUujoNEoq8pUQNjxpJX4eA2iTYcGt bPnk64UJa8AtvXIR1MHQUaI3FlrljjeMnqAooPO0hAsqOtQRgTmRs5vmTa5AUfGUGwJKIKbO1YVQ sgaD5PQQZBQr0xYAEGru0Lv80hH8zV3K/C8lAycpQxHNlHYmjWvkf2aTzcblfyar3WSxw/zPZo3p yf+64xop5H8gairFoN1jFoNRra7iG8AfoO4ZwH3lunCw12qNeqPeZLTp7WboDfJA9AJsQwvi6tIy MBYhyMTLSQ/uoxkNBIlnGJzyENC2kJmhb4apBANyS7SPVmGTEug5ZvQXGVkQNYvexrmeKiyPpr0J fp+Ppkyye960ZQNNYKBNbxXcbDbpAtsaARjg7/I1pIumxkebzdH+Mg1n8dU8jdwyGAqY+M9g3Jax ejPgSm/WKYZl4xThNXEfwYPGjkVTMYy1xZj0NvQhMBd6hSbRDDkXhJC4gEw+ebPsHptKEhWsuP9k ArcNnaAMWCN2KpbWJF+hjteoHJAY4yZ8OOnlF4vbONwkDeBheiU25tEej5dQtlaHmILlRqZgCTkF GxKy7QamAL/9nAlgIBT0+kPOCv6tRmqcRDIJDF3BEoxJdh+o0ia9XT8uhlv4alH9TSHVf4xJbwL/ jHa9LYbffOeU4ZRbzkcVzMj9pRSYnom/hasZrIHQloDq2k1KtYUmOxUNFu5CaPw4MNZuF8eG4gPD covpCjBvEBTRTKW8i1ui6v/wrfJXeYXa/7u5/mu1gj1frP+brKj+Cz569v9uuELWf6WCZFZCLsyD s5zAkZUDX6ZIyEFsUAgibwpm5cDCuXzIEO/z4a5iLQrQ9VgGAeJ7dI+CAQ4jV1UQkGol/yWWUlBe IFXt8qZqIAU5ILpl+aKWAzMruycRuJtgxMIAqoYAHgqVCaCGdeMmxJdsaBpIGwy5BKxxEjIHJ4OA jjGFZFifOrguE4pMUGE1gB1FlTZErScsbBDOUHUyNpshypVVTaHGBfHyBRdDIk5liAVCqe4Hi7kc BkfQIj1IVIplEM394S+Mzy2xxGIY2bg1AaL0EjgTXLeDzAlZI4seMzBGLpETSKZFgdmBRgGKmw9b YEhj+aWX530yiqj4pkf7nQHGGlpxJBqXTZMBRRFpLAACCSIsZ4ceou6Q21KOLSGYkfOcBGyOMGSV oahYWbtQUDeEjXEs5miXm6FLxfhGrBejzRlpNJaIw1RfSVSqpyf4pSAM42A1ftapkTXeCDtwaEEQ QlcZSf8sjCZ7NOt24Yw7GKliqjfGZDFACLdAGVJggPx6BVVp+MRfVrjljUmmXnwZGFqNrM4SyoFo oYKJvAdA5NE8Dlmx9Eb8VGEicCAlIXxUIAhXVRXjQAOI4UQFlxEkIcESojJI5TF55MuPlrC5SSaY BbG7MB4oHtxstNIjEYBBm46zPgN6UiKtYCCHIgzqDeYB9YNbZb1GzoYsm+xoKZCjgFwpOnQBE3d3 CBtEG6U8oamiQBolW5xkpUzOgNKQUFuEyAePEnKu3B6CBcyEqI/nTS1Mwn24NoeugONhMc9DMHpe aWRNgrz4DgdmkiTFrTxAYygCGawhlQG7MYAYY+Yqa1J3Au4q8TBAndzc/kIzBsbj1JqtRj0m/FHY iDQ0BWJOoL2KJETqzsaBVaNnu8bw8kchTKKXZnn1484/wCcNv4ba3vVcyvife9DT2QnAteJ/m9Um nv8yWywg/reZzD31v265Qsb/oRvTqGKCIX0sVgjNRJYlsEmMIsBUq7mTI9iNnBwJM+TGD5CEQXTz p0nCTermDpWwGZVKlmAfXUYwvkoQheNuIXaW+gO6YQiHHvCiu4Be+CeL8lZCgASwjRA4FQABd4Vc JIawJGTbfcDBFzmUmECEJSWF5TIQ7pBAwDkSpUbp5DnLTTyXB0hl0QQXzsEn1wb0AEyreYgqoegK CkNyxzi5a7gUQMyHZM/k0C2n/A4MfqCvvDgdgSo3OpqDgbGlOvTJCE7ShXCtQp1DwRMqfQSSALzh zjrwbWAzd3a0LhxT+iBtHS08yQepACIuP4mAUBvyaI4LrRjCBLEN9U7GNa+IaHlQAiqqqGgZN8+t REI4cQDPKaBmrZTXcaR1YVkXzEPGvaiXIuabZlagIh6KCeJDMsKQ0odJeGcxk+bOqywj1CIvGBbE jczeg9iRTuTgAW5BcQxHACmTqavYJtNh1CydlsggeD3UY7A2Ywk+KgEgZB5LOnIAlwihvgnlShEf G2sUOY7kLngnhAjJj7vgIaHFggaekY1KGl3CGKagjmobgD+Z3XIeDKWrYK0TcR/gSJbLYiEnwecF gaohOPkQBsOJl5RlCGpMkg3ZaYIRvToq/QmrzUtGdhJJ5rel/IDPI/hm4dQQtxChXYS4aXXoI4Ba yoXAVSVjQerx755GBMT/XEGom+N/eM89/7fYrVYu/reYe+L/7rhChvq/jvDdDXX5l4vbgavMpisI JquoKHxInAwfmcBDjOFBMgg3iceX46T3OuC4CnsS4eOqgh0Do2cJHSMV6tHXAkjw4lRJeKjroKQo QodNRXLJuQhHOh3URboVo8LlpteRanRKtqEIQst115V4cIFylyYeoXZ0QU1D7nA3G3eiOWnQ8yWB TrhoXDSG0Fttp7Ei0gnHiNLkupgbJbEOWVJad3fwpaTYIXOijXcHXyKxcCzxfqlrEjuBFZ7INXhA vrFbGEGUwue6Hcqns1i5pmQUjj5kuttpLkfxXDMMO3BHkXGBNhZ5XeGmuYAE1OHyKdLdpSsg0Q4X /ynj/wza7fcSJkMp+uysGPMa8b/JaosJeP/XZu05/9M9lxj/cyIPPABEJhEueUYvi55KcZLShjl3 0sFpDu40hOyeOzYkHsFAYY9aBFSLlQvF0zkEwh+sYEGIrlFaN+RPjpzmDjHBe13YgzJoookwDYLx FJr5Aw7MCr64QFTFn25C/VpaFzTDgH5DbmWpk/aKJ1hc8BgCrLxhCYSHpFhMU6hRvDEjvl7EVW0Q fT2mwTQ60aCx8dKxCfEGFlfkU+X5gG/Z8eGxltZjrPSCSpTyhS2OKheO5gkrLb1pyHP+IMk9oYWz M4hxt+KUishI6ClAF6bBxoP/o7FwPAq4lBxK5zpuEr1hMo1UNvSZDvkdr3KcEoyBSsA78F/aXDv9 kvw/iB08XfMDENf/+x9mkxHuEyaL0Wzt+f2H7rgk+buFk9udTuMa+7/RaDVJ+78N7v/g1t6z/3fH lZ/E1biA6/MxlQXqNBdNOQzRBng8zlAG9sZfmsGeq0svyf7LGBpum11A41r2b42xBfz+l8Ua02P/ 3XKJ7/9lc+KXXgHMI31ewsH3otAb435QA76nBovqjM9f5kBvjKinEgwLslKH0WA0WNSJdGkZTQEo B9AushQMUTZ5/KSyAb5wqmxxg8xXDVyTiyHLYL7r0OQVkyzmEmAw3OulKzAfjXkIH0ZSEANKjFkM d9J+H4aUWqOO9/uKaYZ1aFKQ+LAE2o0zbkzL/diZoYiZ6AF5jNcAEOs06jzcCTNmh1mdDoIhP2Dc UcSoYdTuELlTZ+OuEvizIg7Tr8E3SvYvePzOp9Gx/Zvtphh7wP5vsdl67L9brqXZmal3qIdAVb4j bVJSjkoVoYL/+94GPmYwrxWBj95sQlpeX3DN6+t+XKXCVGlJ8XlzNvzwXJrXnTb3ZPtA+uDT6776 U8HxI8cfOu44fPzw82v00ZaRvR7D/mzunW/G9vzreP0l96WvF6nuqT8W9WGfVvee+taZfeu/7NMy etrI4pS6C48UFBzZWZZmXv3XH34YGPvRsmeiV6eZ3z2dUN/U575JRfXzos0t3/7t1O3/uvPqx7tv iR/w8eLoKlXveP2dd6l6T5k5STUgaeG9ERMH3PpYb1X8oMiubTRtrXq0ZtDVP7xbo3l79x32q+Oz 2otWx7H70mM9//x08/JeOa9tvLz2cKNz08Xzn1aO7fXShOq207ZxfRZnx0UVNtQu2/4Ju+3v+xrf ihq1Z/A9rXvuLhw4tmG39kgjbq6YcCC2IXlL6QcX6PbDdbsvNkXHrsKoPbcc80bueqe8mXxpw6V1 sXHjWga7BpgvxpoKipdvfODKko3Nc3/0XK2ojr03ZbW+/RHd7D8dmLB1Se3ixU99/+Le319tuVCS M3ni2z9d+mkeYzVc+eBx3dGjxv0151NPXmkesaG6d/zyXQN/N/H2hXU74ozHb1lrb3m1vnZFyTe5 jb3vqRtwLq5hbsMx2549l/4+7eND71KPtNbGxV157/umDR+XfXH27vVxNb/xzDq30dNv6Dv1/u8P HmxvHjH8ypzWf2zqmzC7NAJ7ae6WrYOPbanNrDhx+mj69F6rm3LpnD77l15M19yqevL31Dn/OEPZ uekPJyT0TR9Vc7xt587/jvW3LX7aZH/k9ZMxVy+fmdNP91nDqmFxcx10xIaL/5z73CrvF+2+y1Ga xwfGDOk9o9Cybefe6A1tq6c/RCaWzzpn6W+b9krxt8va2tuac55oq1pTZaoZF9ucseG/Nkc6Gvbt vDB4fVxcZr/KyZuzht/5WsPB02cSs0z2Q98Vt+tmrfihov14alxL0zNVUVOsb41RnZuePvmFKZZt j5xybW2sKbrbcvEd+4qdtx04UfXY1KnRmZfvUb0ydGPLN+NKElvb142Yf/97xtltTzUuGbQua+vG Ee8MGF3bMKzqUGXEmr0RTOOAV3c3nh/+4fw+V7c9u6W0vrlBO3zihn0zPltw8L2FKz4ftr/kH9s/ adgXVWN/YXBbzbBRDTtqxrdEnVKtPtpQONKmP3Shve5k1KFNS/5y+tjOJcZ1lfufaKhZ+1Vl6r66 w18sGn5m1Lg5F3bikaOHnP1bTVvqoDuxQ1/vHaO68vDmJxZPLN9y9ZNzTSMy6l//85tkbNyzc8xH 2r50Rp5vitph/nDx009ebs8xTnpyROQ9BwalN2j3b2/utd/Z7/5HG46cXOU5OiS59fCp8+tHbGqK bh3mqdnX6Piyz0lNmnPXd+9NobInLFh7aMbtC79447b1D8WO+rJm/unCEeyPDe83bT25uuFU49aX T6mmn69bepFYs/ivV9eszHUNfnXfvrd37+u1Yuhdt/xm6PLa1tHj+6+cdm+ufulZTfKjp75gVRM/ SGtWOcezdapzaybW/SU1tv3YS07XkJ/ebyu/Onf8H/pvsA94KbLl4uXpm+bN+3HXV1XffTTNt436 bFVk7Znz2ydU/2v96e93zpjoNH+5NXZzTtPkD7M+7zcj/lRW1dD3564vqP024iPrb3PUM7ZGFn++ d0yEo8X/U9zGk7EPnt18MfNS++WWHc6VrO31Q5+dyK0bePfsBfNGnfh8TsIbx8c9u7/3ma2rl356 Mn35B3Eb71jbt1/6m2N29T8x8dZeEQsgUmCjKy2OWcQTO9UNbf4nM+dfaL20+Ln/pS3Dxs68K/d8 U+XBWl39jqGOuDFvrayNODP5/SnW+TMO3K4z3/tCbOGQd58xVxscnsv/80SfMw1vHnr5viOXxnpa DdHnxwKxvhg38uNej6cBCl9b4mYRd5fYnp915tP76ve3N85cmf7KlNn2ojR3U9ofzRmusyXuCL/9 rSt1p6K2qPY+PNdx24JFlv66yjdaUjc6RjTM/Hry+QOfLlr4wLLUMmPkAutn219u8tTV/PGZ6jMz X3js24ik59/dpxo94siq1/UL+xU1t9+719a8a0Ttdu/ENa2/mzV58uktfZea2uOWRfTtr4tce3ra R/OZ5ev27C+YkXp2yYTWxL4v2tp3bdzYXj28duxd04zZic2qhLqnvttzZNXS6ZWDrsQ1tDfsaB/8 9Gz9RcuyXpEj31nInj4RXbcoqk61aX/cIrdzkCty80nPzJZBp5Oefz6r+Zuso7du2370t/GxkX2B pkXO/uG7PY3aD9jXd43G7vppnsnWvjVqxYLe/9fed4fD9bbrrmGGYZQJ0aIN0SKiBZGog4QoEQkS vWVItBAhgjBKRC8hegshOhPR2+hBRHRRoneC6DHYy+/b37fP3vs61z7nus639/nDzR9zrXfW29/7 uZ/3Xc+a2I+vsdEXS4zVcCJdqZz3nLuBuY9XcxrhWBro0nUYVLIiSEOFqv0d8vuFxEwfFUtRrljd CGDh2VciRtiNNjlNF9lW7fFGIj/5encKr2GNsWevpNmK508uYffm5YjMdSrLgAqqd58gDoHeH3lb FktLBLDtSZ4//Xre+crfwN1PNXZfetve46HGW69KreqwofU8JVwAcF6saBfWu/H1wJVzM31MtpMB IhAwbmXCRC23H4pbWF4ZXT9emJCtSofz6np7HfAyD1UFF64TfVmR4Q8LzO38qHks9qzw1Que+7Ts VurHz6Xji4QY40z1XqeVEW1ff+fftj9Liud60JbZNiu3ktNeVFrTPzSf8Tytjn54/+C3dzBMZqRg 0xSFBq5NEal35hi9fdvJEd/8PVVyyK8+OfP38JejOyYX4uc9xHhisjZ/OwLts184sV8FsKtPQ766 HOnXWXKcvHQmKOhxC6wRLqJ631u9VnGTXnL8qBrPIP8WaCtYGB5+WbFhQ5vXuWOEvXT9IO9umYZw vCkj+Re/Jsb769flZI/uq2Fzgq2Ee/sz9j6gla/z/2Tqa62cTl81vHSvY9PCW4ybz0lXyU3gHsIn UPve7Uc5nepbQt93u3GH22RkgHlIJgzycWqE5ANUGs6lD19sZOdpC/LYno29W+9UkOmo39TxWSsg aMPGrPHW1vVQSpVAEXRasHf0PPt7sfogWjhPL4qbGKXNHxko9i7A9rcQ/+QLNl80g9xx1EnpGBp5 7atc/WB17AVo0q12rZuinlhcO7X6pd+3S/mtDn6P9GEa3X6HPzleVcogunj004PHbOTZ3FcdU35F 7/5t5dwDPcEbjsnctVCRp7odRN8lYyCXaCleSTyDPdMF3gzu6kctkLy//+o6Zfezohx20WtTO1aM mAt+XyuJ36KFVqcENGh98rYfuYT2fyUFCg4i9fk4n+YimymdNFo+PaPHtpZSCsP3I1W6FsdmNX1f zAS7fCJMKJE/VQhe4D1Rsg6f+1ztFhaucdzD3zB2z0zCzYsti7szPfcVfJo8/wMsDXdFfMlH5UqF loLpc3QgmZex8p+SiZf6NReVfUzzmdv3O6QLDt61fEOh0oagX7Q7rQZfK1nvhpt4zW5FzfPS441K AbEwDHAPFdIWO2BZr9lHWJrtbqPiKcC28yTPJMidXGAuv/DJJmBshzfj6MNB4GiDqgFwYfSeNxb1 toP8y8LS1oELa0v3lYkBOt+IjLk2t/iiY4NkoaIDZV1vP8AviDjbhyOEx102Kk3cy02wl9BsNzm4 SvnYgKVQJvLj0IUXCooLR89ZsamZa4M5g+NLLwcqn5eEX4r3u/pNGZn3raAYEMt6P+LwGsd4c/v9 kWc83cHi7aSDbXVL4q5lyO+b/kuzOhqqEckM5lzaH/SN4/4QaGPwQbMHZNOf8j0oTGk6tRMkg+bi hLpFjKeuGTOkfVmGPFPfpfwqivjo4fnqVxJ3RNFGRrvmmIL9O1iaCGXpOfnzF7fmNDFQYf2bcezm ssF4Rl/kjA1h5+VzI2x/kYYu9R1rz98HgQZfCkoAsQ7WCJVniX+Sczek5j6Ga3om62t7had6ffog GbxrtU76xHN60OnyFSD0iTDA4vhWYulr7Mz8CiRtBsY4sGvTIrhF5cNpwBFn8JCLl8drt/L2Fm15 nIEN5LG6osaiZPvQtGYRJaP4PovVmGicq13CPG+AVGNBGSCW5MhomBWDNXaSs4fJL0ofVTADswXA ZDQ36qW+O77VGgmfFnRYAYtteCcVwSWJgc0aBNpYfoJ+EJEA+6XQkZgevzzcnCSiIsgBTQ0YVFO5 Xqf0Ip8K6DD/nvraO7wFrv05VQsfXuE0lqCK1xOR9G3YijIq4GA5kvGsSSFk1LfV0wTt0r6IlzpH HOcngnUi4ei1q36OwT+Cmepyx5lAxTzZ/pZuBXksaZHx55W6HkJYvDvVPVlMVgv4BU7ZdlV3bt/o Gcu6X5TZxymfUk4SUtVUAt1HnQnfJoyrfwbCp1mOLx13Dyf/0TxeXzdWdR7XQ8g3/XAlwc4NUmTX d3fTG9KTBQoHnuuA1x/5Hg5JMaG/xkvZQWZ7Il/Fu2y2pxC3rkALcblCNCI+XN7n8XKE2npiHmr7 x9tQEfZf6qz4myExB1leE5O5shwwAh86qYqJ3Wtb0HjiE+qw3fmNBtIpU5he/pY+tXBtFLUg6xr1 W0att4+ejtoObibK/RHnSha65KSSL/0aB4hZrDU57Dz2ErDY1xLlEbJtwq+fHD+F4Eh5SIYu8KIF fKb1AFpDF8I9IjQNZr7OH7J/WH+oWBEG+zFRXQmhaWa5lASLWPjU5a4oYv9r4eBYeX069JpL/8sm qgHKc+VEnwBLRi+u7pR9/Jd1UoCJBU1Ofnyu3FfBAGDg4EYG9c17pnxd1ywhN3eF6kvKj9GTg2L5 ZshWqWzE3mHytgYxikkQTHK8GAETbhCgNckgHGuVpm5TL1wT9okjHqIHmrgqAh3HbkhccCbMhx+7 /WKCMLnESLD5VJA/ghhCRoU3SL02DCxuKvY+VeSxaiOHm9NVbgV72yd8XS9Pxi3A4k+ar/hB8dx/ q/cQr+4ByMBZk+yOhxWfERtyJxsOnLK74U+tBcrpT+tN9wkoRNAij3s+KaORD3x8sENKbnZYc6/m K68FsDYKDXLTEk5PEKgnR8/ZZlBwczJDfWCsp8PEh49rlujvLtn8bz2s1DwxwXG/KFYGah5IeH/E Hivjl6lA/+9dtUoFblRpNecvmpa6VAQ7lIv8TsO61TMIPB3/3TzNqVgAMWBNV2Yn5M7XTAdvQh55 smudv+LOdxlBhnXK1s1z3Rt/gaurq1t9j3yQNm4/sznTtvg8+8GMXgQgSTpaBiaFJScnY6hfV3A+ qk2mhkECze9vHMbrEtO8zlrcu4o5LScCQAUQKRJhUeQUf08XAHz4hLmAf59IdnoxGoYK0gBr+Ok0 8a6acPrk+UNPHsRpegEJF7lGz7oVORFNS9bk3lVnaBUMfikSHqiisu9IJEcPN/cWPqfSO0RDppLz y7KVkYKEManBlKKsYSqOpbB9KoFE4JupA8k33dETDT+lODj8Ukn3M+bWV4koiANCxc+PAcFyeG73 D2T3EEJFArnhSSGk2n+RPoCWG1D3ff/oWbQAMXenfF+pQ5H5jPFAQ22ub5ZNg/j1CtwI7SV16Iix nwo8+goxd18F3UydRgTwEP25lZrG2xg50xzuOPtaktFvAQFEkgOeZcBwzo1hgdHHMQL5lfTLYYFv 2x+olpBfOocIDGOYysuAmHNs6ja91rGMOF9ep6UC5KMCIzYsvI/Q2KIwkv0qmeZryRz6TUjj6Crg 9jIRPL4KglVnHVESblYwZeQWlmzqEW7eoqW25z8/qEb/M7vatT9/0reA/9cQS/QVC4yYjQCXv5YP gxG717GC83aBVOIwv5Qa249xXx/sZSUBKOFh2syl+ydLuDdCVIeuvUzTo7TsvJ5iM0NCkVzLHznb jc2A3DJvX3SAhZw/O+8iCWasqPJxTLSN6e+5x3qXuP2gbugQK1422Sc7GwdTAF0nloHX1JZK79Bn ovsRJB/pKVA8RL0xNwV4HSxDNW8ogh0O3mAWPfallh/iisPnpYSDHXYQ+ObF4OX9xL2hjeQu8l86 rNprc3CA491EPXjzQnf4ZkmtoIu77E/raHyaT8Ll6cwxJrCbADNOYTjt6u4rj5dieF5SGYJ5fXCs ETsu4lrhB3OOHmpaikbomyakL593O5MCxzkeGikdUrpRrJ3ALaRKjuwMKgQ3Sr2hlxeuSeUGNtwc 2YqkmVTHQB42XN6zv0ADXMaj1Dc+XG22KmDz/OTu8/SG4vMaV8EouXA/GpICdEC968uQJrMAY8aZ pgJ+NomOYjUEDQD4RTymVCS0IDIPUl/IUCjssD5e06THdykSmQY+TvUqX58p0aWWm1ifCm6C6Ps6 mBXmQIUDaCgyoFqcps/Em1SzIJ2mTqFkHzCIDU7vDLOA0wkwgKY2YaP8vnlRScGnpGd2QezgKQs5 keBmVofHcQbktGpCVKSSZNOZHi00+NvImShfNnMOrRKNYZJEd3V5osX9c8fWRcGpazkVym3hSB6i JAj9QjEl1VWN+/eQG5YcCFOyRWmvtuCNufe/D+qXKIoyD7ZoZ3IX7tL5cwhYBHR9oky8KknyxsZh gzmf9jtdsKcAWBVp2QuTsYdGHp6S8jaMjeEwQKd7Mo4lrMGseCDnfoUauBiIbnSfDl5s0Z2N4CPB Gz8HxOV8yd+KSJBnB15OUSdadD3nWeXuo6Riq2srNn/3erb4Sfde1f6BMUNq6Z/htYMfs6SA7yXI bJwqgLxGXUBiSIQWKJ6g3ujaRGreaBIYkUMkQcIatHAa0Vd0RrsBaGAQL9iLaAEkAsIRCev6kHTk dS2Epmb1T/YITwqbO7j0VrVZtYvi6b4nTATDRowD2pQVCR5FwZoGr1Z3ibebHq26fosoNJmMe/BE oeeUi2LkhUI2W8zYU8u1i20GH9fvBg6pSfzUE5pBj7fUJhCrmJYzTGK62zoLw8sYzBkhgdF6dzWF GGl+T19eWsXj2Ke2mmT5Y7yDMGnWJicu52gkL/jvL9kz1I9pinvJ4YVV77DaPGbACmAr0aze9AG7 R+FHjOFSqod7lvA/jlmEqSqLaeOWhkQb7ppyrQbLH/4Yh+1GSavjcL/AFibrMLKoLVvMOCroHDfI YGQ6kXsfZJSacBvZeq2WeoZPurAuajV8DZEMU53g9MClWh+neKlu2VC09ruR9MVlAHy7R+p6WNjx yU5u3UWh5hIL6m5Nadf7YhNcPFbZP3jAqbzf4Mvz06DItPbRFFfA5oNq3v1cGXyeMTaMoTFYqcyv bD5uuFAyW4rnA7QK7Tee0hx4t0Wc4ejyGy2fBSP2FW6EnVDzCs498yE26LYKC+VFwqM9aP3w+tSW Lnv1kWOqF43vVcyrYZKQl3PA+siRx+0vsIcoLWvdchIOqjccVVetTxLsprVKQtYn8mZm3J1rdJ3A SSvkLgsO4/7vu5U0bqJ6Se+tE10LlqePuvjLLksAaeIU7zK/74gE0Pi1HzwI92sOZH8vTuEoTOG4 qjzMN1oc8kO2SMXmkNQsX+xkCpCbWJkGR2c3a58QFQfmxJw9cmu+A3kNtH+w6TayU3vwB1LDZH34 bqnbsWh5kvSp2ObmHdan/UZKCpOJ35CpZX9cPacxL5002kU33MZb3hiIExbRtNSDhgB+q5BUXqMD JCGtZzig14Z0u+JymffvEBp5FbqNsTXS/c5Y3v3ZtDdtayChTxp2FYlcVxwQ0SrVoAGcfKB4os2+ xRNPrzIyU2YWsBufFr47pUM2iU4+A5YiN9k6mc2NDzL4SIaUG7EuTGDD2fIrXYcFrIpe6bCl/YqT FLvu+gU127IJyN3pryCFGBdVM4RJ0dOgBRxolCQX3+xPZ4enrjlvVsjge4T9rjVZkWrjSywTs6/z 5MMK1PgucAH0KkgEC4X21XBUpSuNth1xeALmdP7p/rj1416oVM3D+BNwGGoel7VHv8mcK82CKLVn c+0RHN+AmcMt42rAgiQpTrPXNEmeBOeeyyHkDo/Au+DvPvm36PFjaahJIjJabwuhVhx7t9i5jhjv a0OqrtVajQlSvT5VOrqjibLv05XSmZslGaGnHdwtJ7f5/UL2sG+ulGncHPsFbqI2Yz8LOQWxObcb 1VNtRLXCrQ2o5vI246wDk+c6xULxHLD4NjFtekWMKB9ckvoL0UPQjjIqiZCYhTzyb2QfEnOon5/2 7HptE0b4paSyH4ll10jVNs4nf/nZsX6ADaABDfb+h4EmeyH5OBU4h1D/MVZ0iVTLBx2NSvntz7U2 WQLSWUsPYMJKCY5CM2i4ZsQkr6sdNXDRL6gCwzz53OKXKldA5kMFaj+Rf3rLbpGRhRmDYOZGfOP2 mHyo8ryJcTE387O48lFiNTrkwRMS/LT0Ffa6h3Cue41qDyj8A3+v+yqhAnSEGo2RGWuvXX/ubLZM ofLsV0k2v1p8a0r76jU0m52FbqvMhCCowKn69oPWJoq+4gux6V2ejc/SFQ1MhsFNpZJv76bkGL3B 4YMLUyuptNL9qK2WjwDUt5deEvbe+V+Hw2me+zIqNyEPfYGi3uUmcKYWmAVEoW7JqVvmPpVERF0F FY14m9IP0cm4pBiibjIaAKGUNW6vs7TeQg9YUcQ0mDF55BvfxpDa5sfaKt3Gqqin2uIiFl+T/ZaB QOgMHlfQAyj12fj1IXhOLny0CZ7KTuWQ5HLp5/plSPHo/UuNxiO1C1VxJIrj4rj5uCdyRAlHW6AY vhwExYrd5HUKdgMG8mdCq4KPPLH2SAuH23YrCSxSOgNm5Ym7zDWPBQIjXH/sbNazs+PFQyMRyEDb kreJcQQsjUPX29eW7QleBp9A2fH5goO3cKvps52AlpZz+18xKn7WQZHk3kF2kwW3yFiFGo9R8nIh fb8ntoq64xMMKR8U/FLj2hCI5ZakhqQxty6WFc0PmZAkOuVXdzTGlwN8f47UBfFEIoyfBuwikU9W fpUE+qnm7fgw2hSSReWpyw9IbPxyg5kJaBd3hbepenc3SkgmLM16FSw3BkepwRgYXgti9U38YHcd VAABZCujQCGbrT+LB7jOslZItus8sQmoRHClX1Pd/+lCh+XfkmG5tTENNRPsNBUmGZ3liyeR6KRn 61cbzrnucMXTQvZQYyaOJRHDnMjtzg3rNzrlDLO7Cljcj6pRt1P2pR6lY2Ze0jX+I5101VaH5ZSX 9mwEZW12Np2tAmJl2NfM4nTgMQJhO59Ch1YEfz6J2WywpCOx2r/R1Xe4OZCxs9UoIlnGL1HGzwXM U8IgDPJJhS1DSyK1hnuc/pH48jZZCVWJn7bR3/n0iiv4SS3v4rBv9RR+SIByO/Tt6+RC37JrHICq KlCj9WLTtMBv964eXZHbcWmv87VQe9d7paHP1xVoB2vKL1/eP1KnxxPBaXWY6yeov+9yUjQ+yqI3 9eVrKKGl1mnDuzPT2Ubb5lfyhIjRp13x9reZrk7UqdESusSAGr+KvCtOXPbeEGiN1tnMXZhZwoGe olFcCVzgm9YLdfGDvgsAP5AgBDYg4Jf3NbiFtMyudufKZ08v+hZabutUPAOvrKzcapOI5E/7mOLI W22l3JMJJIZ9eMuXf15uL9f4orFWbWx1kheya145XB0NHT9f1lBsXFasV6aFo9CHVADZ3MNJkUDY EWP9yPp0LKlMErTEfuP68gcnkPtmGNoWYSJ+to3DpuBKUPUocz5wc/75QJmY8GOLChyFnl1L9rZ0 B3XiPX4qUOVKzocYKRdq4E71xrwKFxfIVLV14bzJHMZJrgz04+qckO0maHeYjEpO7j7h4WRpgq9l +612bWarh63ZD0w4udK1V9wdfUCZCKr71PI/+/kDbcGF4Sr5YUtFPTBVUO0W3h7xOhcBxF2s+vgz 6huSlLh0/Wf+Wv0WPCdmpG71YCOVe7/qanPTLSbqQVXX2nnTDNuMeUYHCioynfIJSvPPJBzGLjpb ER/bFFd3iZ7XwCMrKnNrEz88uuBaMD9dmhDcm/+qLcAGrYe9LhpCI63hfnJ54sTaJMVPP3KI0nxb QWfbaTXPec99gQz7ngYoqqoboSL4sHl0Kiif6AxZMCdiELs1GScJf3kKXyM9GWcc3QNAy/hnqiv6 u2qOC62n5/SUA3K6M6Mf9qV05c5sBWJSuV315iEvTlIZ5A+tMvBf68Xjo5N0FESYlIbjHMKbVq7V vju1knQyX0mBk3z6clG5iThLlEV1usdJlUWYuBzHPCLwx3UkAuPzQhqT252wJ8SP6cT7VgWT2vz6 yvomMNFbl/ibN0or0fSzP8cfM58AnpN4YT7Ixi39nIef6POigo5T36MmWb7snZi06B/qeKN1+Adt FTFiy4KqwRInCE+5+xSmVFAcKIrTxOGW1hlG2gKKN4/LL1OB1jpB8MqJkdi2Xbd38IgLLfn4LgHk o9Dnv+8vnZiDKpyqWWFuVfloL/CJti0xSAiu1Xq3ukSeTHXToP5KNEdmvdq+Dai/RjtLuA0LzIAK ifzmSSwRDLIg/zbmlzHmWhKnaaZdfXkHlXFR5XDhsEOMzqHJhhe1HuAkrzrQLaTarC61fp6y1n3T IJRGooO+g97upFaAj0SY9APU7+6oRTcnkCR2gYpk24cRLW1Qj71pAVKQaS7uyUi4/FPIT+qZ+GXW z0snoMqUWplr+XzM880Pik/6fkSwev8rbt+hmryVsU56NUMc3telqEva2v9s3PK2+OppRTSItTi/ gwK4SkapLfybHOlz0ouI9ac6m8eWMPFE+waMwsQxi6l6KXBt2HaNp+NJKigAG6fUxXe3ObcVSiOs tN75uemkYLIlzMvei9VaPKvIGsl2ynhkITP++SI9TXUtoGwsdj/q/ujkQyeNsaJqV6cCv+RctZXj WAqwbwALa/fLfaamZIKEbyy+FtWrfCUVeq32cviPBWwpz6VLQ67FeR3ax9hfuOekLsZC2/V2WalG rwynh8Pp6B7BL8fkuCFaiTRv5BZNXmtTpLB82Ecz2AgAFJdOnwWwNrytcbI3eHmYP8+SR03ziI7g mRVj6oS9GvPkjtAdX8gCPu3z03GRTdOuljsD6HZtqX3bWDuWlxz+S/SGaIF+a7wSip4mMNoqxTh1 aJKCxEJ4/7EVZ8FSgXbfKIlyi+jdF+pihrQaQ623RlI1Ed5BmReCy2rha7vIwyPgkHhgUTtpi8m5 /Wlf6cbPW7B1O+3vDgV0SwcPVg/jDbHXTUXfzfMbkPxB+0z6zDjPmV4LwBl/2tDvujkgsQl+va1u ebVkdM/x+4O1GilPP1q5W3IhUy1EkXEpdpNLd5QKn6RFh300Z8oeIRlkobUpFJ1jLnztb5Nuntcl mZx0F6QIqVd3FHIFlXnZjldHqTxffr9pg1QwRBYJSyr+uFd7XF+t1VC9gtG26zgsIgINMhVo8rtE QKf088GBtwgA75UfmRJu9hV/UDskgrtiu48DXSazooVJ1Dh39szNJYmxHEBFuxZtDHfIKvvhEkIG MdWEA0MKF9caTER1boRpSm7frsrYxLHPjNJSgzw81adL3R1WG3+DZWXAcz0/T8IyEeOO6fW8WZ/a ThRHfFC75uLOsOQ10GhTvmBRPj/pW5Eg083ka5MbKtPx5Je0CjT90Rjsu0FYsDZY4DQ1j8XVaoDe Si9x83a/xIxIChv15sfuG6eOeHWtaRblbSZsls30kMvy/s7Q4Kf2+gt9qacExOJrVbclQGfveeqo 4kbvj74ixWHj76h8Y1QPc2LGwK/fBD6s11OBFe+JZMAknIC2w6OPKUsnbKF+YppCZxS/skNTV63X kvF53qu3ERVDioHM4zGjBit1R+5HwBvFAZkKy+46SX90/OG9sLB6MoRBG0/djQuTJzLrk6A/4+Ke W/tDwCAxp0UW4/GixOfa/T6vuSBPck+5KJgwqa2vRYatRd509loB4/2Rg5AZ2hwfG1D6Pb2hKKZG D/p8Px5VqpiJxiT0DyVtu3lone6sfCaBnPpcHwbaiqjcXD3TPY6DxeQ07wcZYJjXn+qCq5dulC5x 5FUBCrS1WEz2+Z9u7QpXQvNNPgurEEnuchI86hEXC2IMnAoy9zuO7pZePakZaOverTrdZHrM2DW7 RWz9+5oR4qm46r7rR3/qstzc/viH1xfrRUkpWkGTPGiIAC2YAR0zqe9Go5E3iZbPR1ZqndHm0VDR 3LJ4l/bkoh/5LjQ0G5zeUajWzpRwIarDfbAAcFlTkUyp05oMsAqD63m9MHZzSpeSOhFj+8D29+GD 86CnxWmwXmd8azRcOOAtAiYfB39OgINGlvCsHuEr4lGs89pmxInVJtpFxLNnZ7MdzR4+Siwttesg fBfdrpeHdB48tXz1O27E7Ov9OD3dqNSsE2sFNP562rtk/R3dRtD1vzmk2BYckXRf7OKHDjhoR2Sl Vq2YsCrRuJjdzgX1A8IQ2oqS8JzOZDT4dG9MwypA0+AVqFJA52nKyJxdUaf98aRnVwupgU5NvU5L og13BY+J3ZrJ6R4q9vo9HIW0bXQPpbnHs+9NxkJYhmBENXSJ9TXo8KOCHGdv7j+u9k/OzSiD1c97 BJVoqCl6jLNNroSN1NkWsU82h5+6yLGPLXN9PfdyqTz30wLDXyxXmNxHvNoPOk9A9nFAhJUFFK+k 1po4be7qM62ZifWxvdLi7NnkbA6Uf2u9zBcJkmu04BeRyVkXmERcLsP3IF1VeQXOcx014bSBd+F+ gcv3+qn7j32E3CF19mDb2pq2Ct8UspuociyXkoi3Nd8ZaNgrs9lfNKZcz48F5Voc7aV6YYqe9b1z /lNzdV8u99qXM7gUjJKTYa+n+5prDDXuleVtREGPhFNeRt0Ronft2emhpAVHY1N/oMFXnGGvT0J/ BcNsExb4CfPIB7jL48nFVaOSxtC6mJUYyObG8dfGLoe+L9BWN2L7HMmzkT7bO1hsbHPqCSpTJ+zb 7Fm7DvOlVpab1E+0zbSF99iXC73MzHsPo3KUOBWQ37of2NGCXjBFOhQ0M4rj6AUfvyr+Bp2umwa+ SPdXoO+EHTfGruWG7vT6ASpddhz3IEgEaD/HUXSAIjew7eaTZ8+Y+2BvgJW2aIDF42me//pE3lRt KPlyGNlCSJdMo7BS9Xjr8fHxu0K1MenzUEPghuivNqICdICSqrR93pUmK7TKo8RQ/3YkSDyzRLOq /m2GwKXIL2QMKDvt3EFaw1f1RBftlg9Arc1e14NXHhWvGeC7VHJStrZs8NeevCDQOVlMwQ2VHcvl UB31V87RlFVbceAYyG1AnZNsfQYOYq+YycVQG48KvZY2KWdp69yE15nOu7Ukp8wJe4gCh+zQQEeY JGn/XLqSaTl7mpyFuumPCp42l5ZWUKQTQoeY97/dgknRkeqMGsbP1TbPpYXJI5SKaCgSMZ9l6JLL KFLIvYMtiDqxaNgf67BAdzrS8ARuj4g/hKf9Rg89YCNuRsGj0rsrivR4HzNgUI3ec+Y4gXy6kl7W bkeQjvbhebd3U27tjS8kdBgmqMutXe++6BHQK5Zcm3sxCuowoh501b2EGyWUVJcwIyjfqYPAN/bI pnDa0o/4t61PHP3vjbAXL+m7Fs9PHxXw15VoNWRYMnW95deoK3BKDYTHUOAjzx978iBMbwtn86Sx 2+poaT6g8owRrPuxkmfXEjt3LtqOmHpZ8Kde0aRvF/9P6+xSgk1h4DLr4szTdsC5x+fim062jt7K o5Mug4DCuRcaxIU5eX+iB53Vw0APYsTYL+r5uZ78TociMfpsUeNxoWJzZlAMgfNtZnyHHCT6hjsD 3ha/R2OnE+VtjnMX0+JX3wu4d7L19nJAiomi1QfESn7FnW6PdBaGF4WRuI6xTSd+Qyobx5URqn6s WLPXg6klWo2joTRs4p0VJk6gh9LjcKWf5d1PgyWYzNV0ca+rP5pu/abB/DDajYihIsPSyQ+RadvR jtKRggQublC+JoGboBYJ0K4sZEdAcbkr4X5K6e6QFEd7ktr7kcu02aN+sVeIuaMyHjENC4y6OmmQ AbWeJjoMP+1Di+L7CRq48NxVPDcDFornfy/+rKl0A7QHRUNGhD93WO3kFGyQ06ZI0yKGNHGKkldQ kvcu5+4gIK39+tDLdtTGL9RtY+xW+1mks2OL7zsXp5RBhQyynkEEiH/xrw47+apbH4NZv2V4YSNI FA17yLE94v02889+UewVeE4uSXjN4mdAJfYXyVIuejz7voaHc90WFF+bG5pl8/4RU06mwwseGeGb W7yH2eS9hJdfiB6abVs3fsLgJylAmiDdofHhcobQzBE1V5ZNYqFWM2p+TPcY8Ix25++V3WpoqxZf U07qJfiInXBxAbqMduc2nhOHLzMlN/ipW0AAgIxEwvlNarp8gpeLCjAG2f499jmwQnQh9kb6nAJ4 7bH4JCtqlCFtEmzBrU/hQYuPYHLP11P8fbDNyRx9BFwvga6XwKAgCDiuMPURNlW2orq9RLiAAAPq J8d5ikTYitKI+XrZ0wuIJ8crimj56UERnS3eDwdFRKXQi/asMRR3Nal0UuQ8A4Mk/bkVv9e+fPkF hrKn/LhFcM8OsOglDGGhgKMN4xBB6F6XpuyJMwriQOXGyzxtWbFs/OrDwQIpDNKNXsdYjVrlN3II tujsLXeKeaknnGRxICZZ0vkUPvbp7QqTq2Ud0LKu8XZ59UUAKF36XsLWG11imstvBgnvPvjeqnlT +oga46ie92ce0AOaO96Le/mKnYxxQOTzKaISUj2ODxT1AHOMZOYBLXinvwD4eVLU+yIJXyCbarpy ghfkvDFAMD6sF3CHQ3Fiv1oHhaBoQ7K/Ti/54CpImP9/PCm80nB6LoiM+Nt5IHhB5B9fMByB7W/F zkKRzUbePlgwB7A7/vVs8WumEfaEnmCUC+UMkCLS++9/YPZvR7YnxFItI3Mvk4x7T586vn0TlNYK pj7/gw8+n+Ev/Nvz/4+fPHqEsf+n/f77f/3736fxn8KiYn/F/1w9ff/vWfznPx//Nv7/iK35f17G fxX/JSIu9h/iv8T+iv89i//458PgH4FNRuRqmJcyf58P/yGk6/QdaqdxUX+Pp/o/CKciv4dxdH7y DOP0j3iu/+m2nuE/49/Wv9lfb6T5p/H//138/1UJ4TP+/+/A//L+n79FdP4Tyvgv+V9E9D/F/4le PeP//w78LX73fxflK3z695cBIP9HKO+/BvD+PWz37+R+xu5nOMMZznCGM5zhDGc4wxnOcIYznOEM ZzjDGc7w/xX+BePxSxAAoAAA From chrisml at deganius.de Fri Nov 25 23:52:41 2022 From: chrisml at deganius.de (Christof Thalhofer) Date: Fri, 25 Nov 2022 23:52:41 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: Message-ID: <640b737b-b124-26fc-9cec-266258c281d7@deganius.de> Am 25.11.22 um 21:56 schrieb Fabien Bodard: > New version This and the version before was bounced by all Gmail servers. Please hide it. Alles Gute Christof Thalhofer -- Dies ist keine Signatur -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: From adamnt42 at gmail.com Sat Nov 26 02:49:28 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 12:19:28 +1030 Subject: [Gambas-user] How top clearing a readonly textbox Message-ID: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> As the help says, Textbox.Clear() "Clears the text". However, in the case where the textbox is ReadOnly then I don't want this to happen. I've tried several ways* but can't stop it. Any clues? b * overriding Clear, using Stop Event, even saving the original text and re-setting it From jussi.lahtinen at gmail.com Sat Nov 26 03:21:09 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 26 Nov 2022 04:21:09 +0200 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> Message-ID: Might be simplest to check the read only status before calling Clear(). But this surely works: Dim sText As String = TextBox1.Text TextBox1.Clear TextBox1.Text = sText The method _Change() is called after the change is done to the .Text thus it is too late to stop. Not sure if all this is wanted behavior. Jussi On Sat, Nov 26, 2022 at 3:50 AM BB wrote: > As the help says, Textbox.Clear() "Clears the text". However, in the > case where the textbox is ReadOnly then I don't want this to happen. > > I've tried several ways* but can't stop it. Any clues? > > b > > * overriding Clear, using Stop Event, even saving the original text and > re-setting it > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Nov 26 04:07:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 26 Nov 2022 03:07:42 +0000 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: On Fri, 25 Nov 2022 at 19:21, Angel wrote: > With the bar / before home it works. > > I am very clueless, do not realize the bar before home. > > Thank you > Desktop.class has a Path property that points to your desktop folder.. xwri.open (Desktop.Path &/ "probar.xsl", True) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 26 04:16:07 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 13:46:07 +1030 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> Message-ID: <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> Yeah, I over simplified my problem. I'm trying to clear a form by going through all the controls and trying to "clear" them. As in ??? For Each ctl as Object in Me.controls?? ' (ctl has to be an Object as it could be a control or it could be a container.) Try ctl.Clear Next Since I don't know what the ctl is I cant check if its read-only before trying to clear it. As in I can't do If ctl.ReadOnly Then Continue and obviously not Try If ctl.ReadOnly Then Continue I know it could be done with a lot of complex checking for what type of control each one is but I was trying to avoid that. Dim thisTextBox as TextBox Dim thisTextArea as TextArea ' etc etc etc etc ... For Each ctl as Object in Me.Controls If ctl Is TextBox Then thisTextBox=ctl if not thisTextBox.ReadOnly then thisTextBox.Clear Else If ctl Is TextArea etc Else If ctl Is MyCustomTextBox etc Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types I have attached a "simplified" demo. The actual case is a very complex form with lots of controls including custom controls. bruce On 26/11/22 12:51 pm, Jussi Lahtinen wrote: > Might be simplest to check the read only status before calling Clear(). > But this surely works: > Dim sText As String = TextBox1.Text > TextBox1.Clear > TextBox1.Text = sText > > The method _Change() is called after the change is done to the .Text > thus it is too late to stop. > Not sure if all this is wanted behavior. > > > Jussi > > > > On Sat, Nov 26, 2022 at 3:50 AM BB > wrote: > > As the help says, Textbox.Clear() "Clears the text". However, in the > case where the textbox is ReadOnly then I don't want this to happen. > > I've tried several ways* but can't stop it. Any clues? > > b > > * overriding Clear, using Stop Event, even saving the original > text and > re-setting it > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 From adamnt42 at gmail.com Sat Nov 26 04:18:53 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 13:48:53 +1030 Subject: [Gambas-user] Xmlwriter.open always gives error 43 In-Reply-To: References: <3cd44a91-f4f7-ddc6-44f4-f42d1830d9db@gmail.com> <2c9ea9af-311d-3d43-4b36-efc64149f2f6@gmail.com> Message-ID: <99be81e2-224e-b59d-8e1c-501fbe963355@gmail.com> User.Home is probably better! Works without Desktop being loaded. xwri.open (User.Home &/ "probar.xsl", True) On 26/11/22 1:37 pm, Bruce Steers wrote: > > > On Fri, 25 Nov 2022 at 19:21, Angel > wrote: > > With the bar / before home it works. > > I am very clueless, do not realize the bar before home. > > Thank you > > > Desktop.class has a Path property that points to your desktop folder.. > xwri.open (Desktop.Path &/ "probar.xsl", True) > > BruceS > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Nov 26 04:27:37 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 26 Nov 2022 05:27:37 +0200 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> Message-ID: Try bReadOnly = ctl.ReadOnly If bReadOnly = False Then Try ctl.Clear Endif Jussi On Sat, Nov 26, 2022 at 5:17 AM BB wrote: > Yeah, I over simplified my problem. I'm trying to clear a form by going > through all the controls and trying to "clear" them. > > As in > > For Each ctl as Object in Me.controls ' (ctl has to be an Object as it could be a control or it could be a container.) > Try ctl.Clear > Next > > Since I don't know what the ctl is I cant check if its read-only before > trying to clear it. As in I can't do > > If ctl.ReadOnly Then Continue > > and obviously not > > Try If ctl.ReadOnly Then Continue > > I know it could be done with a lot of complex checking for what type of > control each one is but I was trying to avoid that. > > Dim thisTextBox as TextBox > Dim thisTextArea as TextArea > ' etc etc etc etc > ... > For Each ctl as Object in Me.Controls > If ctl Is TextBox Then > thisTextBox=ctl > if not thisTextBox.ReadOnly then thisTextBox.Clear > Else If ctl Is TextArea > etc > Else If ctl Is MyCustomTextBox > etc > Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types > > > > I have attached a "simplified" demo. The actual case is a very complex > form with lots of controls including custom controls. > > bruce > On 26/11/22 12:51 pm, Jussi Lahtinen wrote: > > Might be simplest to check the read only status before calling Clear(). > But this surely works: > Dim sText As String = TextBox1.Text > TextBox1.Clear > TextBox1.Text = sText > > The method _Change() is called after the change is done to the .Text thus > it is too late to stop. > Not sure if all this is wanted behavior. > > > Jussi > > > > On Sat, Nov 26, 2022 at 3:50 AM BB wrote: > >> As the help says, Textbox.Clear() "Clears the text". However, in the >> case where the textbox is ReadOnly then I don't want this to happen. >> >> I've tried several ways* but can't stop it. Any clues? >> >> b >> >> * overriding Clear, using Stop Event, even saving the original text and >> re-setting it > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Nov 26 04:29:15 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 26 Nov 2022 05:29:15 +0200 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> Message-ID: Sorry, this is correct: bReadOnly = False Try bReadOnly = ctl.ReadOnly If bReadOnly = False Then Try ctl.Clear Endif On Sat, Nov 26, 2022 at 5:27 AM Jussi Lahtinen wrote: > Try bReadOnly = ctl.ReadOnly > > If bReadOnly = False Then > Try ctl.Clear > Endif > > Jussi > > > On Sat, Nov 26, 2022 at 5:17 AM BB wrote: > >> Yeah, I over simplified my problem. I'm trying to clear a form by going >> through all the controls and trying to "clear" them. >> >> As in >> >> For Each ctl as Object in Me.controls ' (ctl has to be an Object as it could be a control or it could be a container.) >> Try ctl.Clear >> Next >> >> Since I don't know what the ctl is I cant check if its read-only before >> trying to clear it. As in I can't do >> >> If ctl.ReadOnly Then Continue >> >> and obviously not >> >> Try If ctl.ReadOnly Then Continue >> >> I know it could be done with a lot of complex checking for what type of >> control each one is but I was trying to avoid that. >> >> Dim thisTextBox as TextBox >> Dim thisTextArea as TextArea >> ' etc etc etc etc >> ... >> For Each ctl as Object in Me.Controls >> If ctl Is TextBox Then >> thisTextBox=ctl >> if not thisTextBox.ReadOnly then thisTextBox.Clear >> Else If ctl Is TextArea >> etc >> Else If ctl Is MyCustomTextBox >> etc >> Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types >> >> >> >> I have attached a "simplified" demo. The actual case is a very complex >> form with lots of controls including custom controls. >> >> bruce >> On 26/11/22 12:51 pm, Jussi Lahtinen wrote: >> >> Might be simplest to check the read only status before calling Clear(). >> But this surely works: >> Dim sText As String = TextBox1.Text >> TextBox1.Clear >> TextBox1.Text = sText >> >> The method _Change() is called after the change is done to the .Text thus >> it is too late to stop. >> Not sure if all this is wanted behavior. >> >> >> Jussi >> >> >> >> On Sat, Nov 26, 2022 at 3:50 AM BB wrote: >> >>> As the help says, Textbox.Clear() "Clears the text". However, in the >>> case where the textbox is ReadOnly then I don't want this to happen. >>> >>> I've tried several ways* but can't stop it. Any clues? >>> >>> b >>> >>> * overriding Clear, using Stop Event, even saving the original text and >>> re-setting it >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 26 04:33:47 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 14:03:47 +1030 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> Message-ID: <4d152195-8cc4-8271-f9f0-728203dd2980@gmail.com> Excellent! Thank you. Simple and works no matter what the control is. cheers bruce On 26/11/22 1:59 pm, Jussi Lahtinen wrote: > Sorry, this is correct: > bReadOnly = False > Try bReadOnly = ctl.ReadOnly > > If bReadOnly = False Then > Try ctl.Clear > Endif > > > > On Sat, Nov 26, 2022 at 5:27 AM Jussi Lahtinen > > wrote: > > Try bReadOnly = ctl.ReadOnly > > If bReadOnly = False Then > Try ctl.Clear > Endif > > Jussi > > > On Sat, Nov 26, 2022 at 5:17 AM BB > wrote: > > Yeah, I over simplified my problem. I'm trying to clear a form > by going through all the controls and trying to "clear" them. > > As in > > ??? For Each ctl as Object in Me.controls?? ' (ctl has to be an Object as it could be a control or it could be a container.) > Try ctl.Clear > Next > > Since I don't know what the ctl is I cant check if its > read-only before trying to clear it. As in I can't do > > If ctl.ReadOnly Then Continue > > and obviously not > > Try If ctl.ReadOnly Then Continue > > I know it could be done with a lot of complex checking for > what type of control each one is but I was trying to avoid that. > > Dim thisTextBox as TextBox > Dim thisTextArea as TextArea > ' etc etc etc etc > ... > For Each ctl as Object in Me.Controls > If ctl Is TextBox Then > thisTextBox=ctl > if not thisTextBox.ReadOnly then thisTextBox.Clear > Else If ctl Is TextArea > etc > Else If ctl Is MyCustomTextBox > etc > Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types > > > I have attached a "simplified" demo. The actual case is a very > complex form with lots of controls including custom controls. > > bruce > > On 26/11/22 12:51 pm, Jussi Lahtinen wrote: >> Might be simplest to check the read only status before >> calling Clear(). >> But this surely works: >> Dim sText As String = TextBox1.Text >> TextBox1.Clear >> TextBox1.Text = sText >> >> The method _Change() is called after the change is done to >> the .Text thus it is too late to stop. >> Not sure if all this is wanted behavior. >> >> >> Jussi >> >> >> >> On Sat, Nov 26, 2022 at 3:50 AM BB > > wrote: >> >> As the help says, Textbox.Clear() "Clears the text". >> However, in the >> case where the textbox is ReadOnly then I don't want this >> to happen. >> >> I've tried several ways* but can't stop it. Any clues? >> >> b >> >> * overriding Clear, using Stop Event, even saving the >> original text and >> re-setting it >> > > ----[ http://gambaswiki.org/wiki/doc/netiquette > ]---- > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Nov 26 04:44:56 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 26 Nov 2022 05:44:56 +0200 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <4d152195-8cc4-8271-f9f0-728203dd2980@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <4d152195-8cc4-8271-f9f0-728203dd2980@gmail.com> Message-ID: It works, but I'm not sure it is a very good way. It might be better to tag or group the controls you want to clear. You can, for example, put into .Tag something like "ToBeCleared ToBeRemoved ToBeWhatever", etc and use it. It has more usage for less code. Jussi On Sat, Nov 26, 2022 at 5:34 AM BB wrote: > Excellent! Thank you. Simple and works no matter what the control is. > > cheers > > bruce > On 26/11/22 1:59 pm, Jussi Lahtinen wrote: > > Sorry, this is correct: > bReadOnly = False > Try bReadOnly = ctl.ReadOnly > > If bReadOnly = False Then > Try ctl.Clear > Endif > > > > On Sat, Nov 26, 2022 at 5:27 AM Jussi Lahtinen > wrote: > >> Try bReadOnly = ctl.ReadOnly >> >> If bReadOnly = False Then >> Try ctl.Clear >> Endif >> >> Jussi >> >> >> On Sat, Nov 26, 2022 at 5:17 AM BB wrote: >> >>> Yeah, I over simplified my problem. I'm trying to clear a form by going >>> through all the controls and trying to "clear" them. >>> >>> As in >>> >>> For Each ctl as Object in Me.controls ' (ctl has to be an Object as it could be a control or it could be a container.) >>> Try ctl.Clear >>> Next >>> >>> Since I don't know what the ctl is I cant check if its read-only before >>> trying to clear it. As in I can't do >>> >>> If ctl.ReadOnly Then Continue >>> >>> and obviously not >>> >>> Try If ctl.ReadOnly Then Continue >>> >>> I know it could be done with a lot of complex checking for what type of >>> control each one is but I was trying to avoid that. >>> >>> Dim thisTextBox as TextBox >>> Dim thisTextArea as TextArea >>> ' etc etc etc etc >>> ... >>> For Each ctl as Object in Me.Controls >>> If ctl Is TextBox Then >>> thisTextBox=ctl >>> if not thisTextBox.ReadOnly then thisTextBox.Clear >>> Else If ctl Is TextArea >>> etc >>> Else If ctl Is MyCustomTextBox >>> etc >>> Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types >>> >>> >>> >>> I have attached a "simplified" demo. The actual case is a very complex >>> form with lots of controls including custom controls. >>> >>> bruce >>> On 26/11/22 12:51 pm, Jussi Lahtinen wrote: >>> >>> Might be simplest to check the read only status before calling Clear(). >>> But this surely works: >>> Dim sText As String = TextBox1.Text >>> TextBox1.Clear >>> TextBox1.Text = sText >>> >>> The method _Change() is called after the change is done to the .Text >>> thus it is too late to stop. >>> Not sure if all this is wanted behavior. >>> >>> >>> Jussi >>> >>> >>> >>> On Sat, Nov 26, 2022 at 3:50 AM BB wrote: >>> >>>> As the help says, Textbox.Clear() "Clears the text". However, in the >>>> case where the textbox is ReadOnly then I don't want this to happen. >>>> >>>> I've tried several ways* but can't stop it. Any clues? >>>> >>>> b >>>> >>>> * overriding Clear, using Stop Event, even saving the original text and >>>> re-setting it >>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>> >> > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Nov 26 04:49:31 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 14:19:31 +1030 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <4d152195-8cc4-8271-f9f0-728203dd2980@gmail.com> Message-ID: Will consider that. b On 26/11/22 2:14 pm, Jussi Lahtinen wrote: > It works, but I'm not sure it is a very good way. It might be better > to tag or group the controls you want to clear. > You can, for example, put into .Tag something like "ToBeCleared > ToBeRemoved ToBeWhatever", etc and use it. It has more usage for less > code. > > Jussi > > On Sat, Nov 26, 2022 at 5:34 AM BB > wrote: > 8< -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Nov 26 05:54:14 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 25 Nov 2022 20:54:14 -0800 (PST) Subject: [Gambas-user] gambas Disk Management In-Reply-To: <640b737b-b124-26fc-9cec-266258c281d7@deganius.de> References: <640b737b-b124-26fc-9cec-266258c281d7@deganius.de> Message-ID: <1189476174.10121.1669438454351.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 25, 2022, at 2:52 PM, Christof Thalhofer chrisml at deganius.de wrote: > Am 25.11.22 um 21:56 schrieb Fabien Bodard: > >> New version > > This and the version before was bounced by all Gmail servers. Please > hide it. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- This is a great tool. Question : is it possible to identify NSF mounted disks as well using DBUS? Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G From t.lee.davidson at gmail.com Sat Nov 26 06:04:15 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 26 Nov 2022 00:04:15 -0500 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> Message-ID: <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> On 11/25/22 22:16, BB wrote: > Yeah, I over simplified my problem. I'm trying to clear a form by going through all the controls and trying to "clear" them. I didn't actually look at your demo, so I may be spinning my wheels here. However, here is a solution similar to Jussi's but accomplished in a different way. [code] Dim bHasReadOnly, bReadOnly As Boolean For Each ctl As Object In Me.Controls Try bReadOnly = Object.GetProperty(ctl, "ReadOnly") bHasReadOnly = IIf( Error , False, True) If bHasReadOnly Then If bReadOnly Then Continue ctl.clear Endif Next [/code] -- Lee From brian at westwoodsvcs.com Sat Nov 26 06:37:22 2022 From: brian at westwoodsvcs.com (Brian G) Date: Fri, 25 Nov 2022 21:37:22 -0800 (PST) Subject: [Gambas-user] gambas Disk Management In-Reply-To: <1189476174.10121.1669438454351.JavaMail.zimbra@westwoodsvcs.com> References: <640b737b-b124-26fc-9cec-266258c281d7@deganius.de> <1189476174.10121.1669438454351.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1097168779.10132.1669441042228.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 25, 2022, at 8:54 PM, Brian G brian at westwoodsvcs.com wrote: > ----- On Nov 25, 2022, at 2:52 PM, Christof Thalhofer chrisml at deganius.de wrote: > >> Am 25.11.22 um 21:56 schrieb Fabien Bodard: >> >>> New version >> >> This and the version before was bounced by all Gmail servers. Please >> hide it. >> >> Alles Gute >> >> Christof Thalhofer >> >> -- >> Dies ist keine Signatur >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > This is a great tool. > > Question : is it possible to identify NSF mounted disks as well using DBUS? > > Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi also your section that picks up the disk ID value currently picks up the length When I changed it to Private Function id_Read() As String Dim s As String Try s = Quote(Dbus[$sBus & $sApplication][$sMyPath, $sBaseInterface & "Drive"].Id) If Error Then s = "" Return s End It still fails to see the id, I include a small script I use to identify disks, it does get the Disk ID I hope this helps. ++++++++++++++++++++++++++ #!/usr/bin/env gbs3 ' Gambas Script File Created 11/26/2022 05:27:25.988 use "gb.dbus","gb.xml" Public Sub main() Dim vManaged As Variant[] Dim aList As Collection Dim sXml As String Dim xDevices As New XmlDocument Dim xNodes As XmlNode[] Dim AppName As String = "system://org.freedesktop.UDisks2" Dim DevPath As String = "/org/freedesktop/UDisks2/block_devices" Dim DrivePath As String = "/org/freedesktop/UDisks2/drives" Dim DrIface As String = "org.freedesktop.UDisks2.Drive" Dim Iface As String = "org.freedesktop.UDisks2.Block" Dim devs As New String[] Dim Drives As New String[] sXml = DBus[AppName]._Introspect(DevPath) Print "XML Devices\n"; sXml xDevices.fromstring(sXml) xNodes = xDevices.Root.Children Print "Device List" For Each pNode As XmlNode In xNodes 'Print pNode.Name If pNode.name <> "node" Then Continue For Each elm As Variant In pNode.attributes If Not (elm.value Like "Loop*") Then devs.Add(elm.value) Next Next For Each s As String In devs.Sort() 'Dim dConfig As Variant[] = DBus[AppName][DevPath &/ s, Iface].Configuration Print Left(s & String(30, " "), 30), Format(DBus[AppName][DevPath &/ s, Iface].Size, "############0"), DBus[AppName][DevPath &/ s, Iface].Id, DBus[AppName][DevPath &/ s, Iface].IdUsage;; Print DBus[AppName][DevPath &/ s, Iface].IdType, (DBus[AppName][DevPath &/ s, Iface].Device).tostring() Next sXml = DBus[AppName]._Introspect(DrivePath) Print "XML Devices\n"; sXml xDevices.fromstring(sXml) xNodes = xDevices.Root.Children Print "Device List" For Each pNode As XmlNode In xNodes 'Print pNode.Name If pNode.name <> "node" Then Continue For Each elm As Variant In pNode.attributes If Not (elm.value Like "Loop*") Then Drives.Add(elm.value) Next Next For Each s As String In Drives.Sort() 'Dim dConfig As Variant[] = DBus[AppName][DevPath &/ s, Iface].Configuration Print Left(s & String(20, " "), 20), Format(DBus[AppName][DrivePath &/ s, drIface].Size, "############0"), "Optical:"; DBus[AppName][DrivePath &/ s, DrIface].Optical, "Media:"; DBus[AppName][DrivePath &/ s, DrIface].Media;; Print "Model:"; DBus[AppName][DrivePath &/ s, DrIface].Model, "Removable:"; DBus[AppName][DrivePath &/ s, DrIface].Removable, "Connected:"; DBus[AppName][DrivePath &/ s, DrIface].ConnectionBus Next QUIT 0 catch Print error.text&"\n" & error.where End ++++++++++++++++++++++++++++++++++++++ "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G From adamnt42 at gmail.com Sat Nov 26 07:09:16 2022 From: adamnt42 at gmail.com (BB) Date: Sat, 26 Nov 2022 16:39:16 +1030 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: Message-ID: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> Had a quick try because I was looking for something specific, which was the ability to remount an unmounted USB drive without having to pull it out and re-insert it. OK, I accept that it's alpha, was just checking. BUT if a USB is unmounted but still inserted the prog raises the "Unknown block device" in _Block._new ? hth b From gambas.fr at gmail.com Sat Nov 26 12:42:52 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 26 Nov 2022 12:42:52 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> Message-ID: Ok now mounting/unmounting will work and I get still a bug on Drive Id... I say "Id" and gambas seem to call "id" I think it's a bug in dbus component. -------------- next part -------------- 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 WP4XWWMi5gCgAAA= -------------- next part -------------- A non-text attachment was scrubbed... Name: Capture d??cran du 2022-11-26 12-36-24.png Type: image/png Size: 154598 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Capture d??cran du 2022-11-26 12-40-59.png Type: image/png Size: 206291 bytes Desc: not available URL: From bagoneo at libero.it Sat Nov 26 15:43:18 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 15:43:18 +0100 Subject: [Gambas-user] VA-API test failed Message-ID: Benoit, If I open any project with the IDE and the QT5 libraries I get this: $ GB_GUI=gb.qt5 gambas3 [GFX1-]: glxtest: VA-API test failed: failed to initialise VAAPI connection. ATTENTION: default value of option mesa_glthread overridden by environment. ATTENTION: default value of option mesa_glthread overridden by environment. ATTENTION: default value of option mesa_glthread overridden by environment. ATTENTION: default value of option mesa_glthread overridden by environment. [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status Regards Gianluigi From bagoneo at libero.it Sat Nov 26 15:46:37 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 15:46:37 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> Message-ID: <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> Il 26/11/22 06:04, T Lee Davidson ha scritto: > On 11/25/22 22:16, BB wrote: >> Yeah, I over simplified my problem. I'm trying to clear a form by >> going through all the controls and trying to "clear" them. > > I didn't actually look at your demo, so I may be spinning my wheels > here. However, here is a solution similar to Jussi's but accomplished in > a different way. Hi, Maybe this is a stupid way, but if you have a method to uniquely name textboxes this might work : Public Sub Button1_Click() Dim ctl As Object For Each ctl In Me.Controls If ctl.Name Like "*textbox*" And If ctl.readonly Then Print ctl.name Next End Regards Gianluigi From adamnt42 at gmail.com Sat Nov 26 15:54:08 2022 From: adamnt42 at gmail.com (BB) Date: Sun, 27 Nov 2022 01:24:08 +1030 Subject: [Gambas-user] VA-API test failed In-Reply-To: References: Message-ID: <25b6c8e9-4a34-1406-09b6-4361916abb37@gmail.com> $ env GB_GUI=gb.qt5 gambas3 On 27/11/22 1:13 am, gian via User wrote: > > Benoit, > > If I open any project with the IDE and the QT5 libraries I get this: > > $ GB_GUI=gb.qt5 gambas3 > [GFX1-]: glxtest: VA-API test failed: failed to initialise VAAPI > connection. > ATTENTION: default value of option mesa_glthread overridden by > environment. > ATTENTION: default value of option mesa_glthread overridden by > environment. > ATTENTION: default value of option mesa_glthread overridden by > environment. > ATTENTION: default value of option mesa_glthread overridden by > environment. > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > > Regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From benoit.minisini at gambas-basic.org Sat Nov 26 15:57:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 26 Nov 2022 15:57:42 +0100 Subject: [Gambas-user] VA-API test failed In-Reply-To: References: Message-ID: Le 26/11/2022 ? 15:43, gian via User a ?crit?: > > Benoit, > > If I open any project with the IDE and the QT5 libraries I get this: > > $ GB_GUI=gb.qt5 gambas3 > [GFX1-]: glxtest: VA-API test failed: failed to initialise VAAPI > connection. > ATTENTION: default value of option mesa_glthread overridden by environment. > ATTENTION: default value of option mesa_glthread overridden by environment. > ATTENTION: default value of option mesa_glthread overridden by environment. > ATTENTION: default value of option mesa_glthread overridden by environment. > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > [2022-11-26T13:56:09Z ERROR viaduct::backend::ffi] Missing HTTP status > > Regards > > Gianluigi > Mmm... You want me to fix your system? -- Beno?t Minisini. From bagoneo at libero.it Sat Nov 26 16:03:07 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 16:03:07 +0100 Subject: [Gambas-user] VA-API test failed In-Reply-To: <25b6c8e9-4a34-1406-09b6-4361916abb37@gmail.com> References: <25b6c8e9-4a34-1406-09b6-4361916abb37@gmail.com> Message-ID: Il 26/11/22 15:54, BB ha scritto: > $ env GB_GUI=gb.qt5 gambas3 > Thank you Gianluigi From bagoneo at libero.it Sat Nov 26 16:04:29 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 16:04:29 +0100 Subject: [Gambas-user] VA-API test failed In-Reply-To: References: Message-ID: Il 26/11/22 15:57, Benoit Minisini ha scritto: > Le 26/11/2022 ? 15:43, gian via User a ?crit?: >> >> Benoit, >> >> If I open any project with the IDE and the QT5 libraries I get this: >> >> > > Mmm... You want me to fix your system? Hi Benoit, Maybe!!! :-) I've been having these problems for a few days now :-( Regards Gianluigi From bagoneo at libero.it Sat Nov 26 16:28:26 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 16:28:26 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> Message-ID: <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> Il 26/11/22 15:46, gian via User ha scritto: > Il 26/11/22 06:04, T Lee Davidson ha scritto: >> On 11/25/22 22:16, BB wrote: >>> Yeah, I over simplified my problem. I'm trying to clear a form by >>> going through all the controls and trying to "clear" them. >> >> I didn't actually look at your demo, so I may be spinning my wheels >> here. However, here is a solution similar to Jussi's but accomplished >> in a different way. > > Hi, > > Maybe this is a stupid way, but if you have a method to uniquely name > textboxes this might work : > > Public Sub Button1_Click() > > ? Dim ctl As Object > > ? For Each ctl In Me.Controls > ??? If ctl.Name Like "*textbox*" And If ctl.readonly Then Print ctl.name > ? Next > > End > > Regards > > Gianluigi This way it is more serious: Public Sub Button1_Click() Dim ctl As Object For Each ctl In Me.Controls If Object.Type(ctl) = "TextBox" And If ctl.readonly Then Print ctl.name Next End Gianluigi From benoit.minisini at gambas-basic.org Sat Nov 26 16:33:39 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 26 Nov 2022 16:33:39 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> Message-ID: <9abbb0be-f9d9-0011-274c-5f48453474c4@gambas-basic.org> Le 26/11/2022 ? 16:28, gian via User a ?crit?: > > ??? If Object.Type(ctl) = "TextBox" And If ctl.readonly Then `If ctl Is TextBox` is far more faster! -- Beno?t Minisini. From t.lee.davidson at gmail.com Sat Nov 26 16:33:39 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 26 Nov 2022 10:33:39 -0500 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> Message-ID: <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> On 11/26/22 10:28, gian via User wrote: > This?way?it?is?more?serious: > > Public?Sub?Button1_Click() > > ??Dim?ctl?As?Object > > ??For?Each?ctl?In?Me.Controls > ??? If Object.Type(ctl) = "TextBox" And If ctl.readonly Then Print ctl.name > ??Next > > End I didn't keep the email in which BB attached a sample demo of his problem or I'd forward it to you. But, in that message he stated that he has many more types of controls other than just textboxes, including custom controls, that he wants to clear. I almost missed that until I read his email again more thoroughly. -- Lee From bagoneo at libero.it Sat Nov 26 16:39:54 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 16:39:54 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <9abbb0be-f9d9-0011-274c-5f48453474c4@gambas-basic.org> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <9abbb0be-f9d9-0011-274c-5f48453474c4@gambas-basic.org> Message-ID: <23caa3b4-248a-5aae-d9f4-f0963f2f9947@libero.it> Il 26/11/22 16:33, Benoit Minisini ha scritto: > Le 26/11/2022 ? 16:28, gian via User a ?crit?: >> >> ???? If Object.Type(ctl) = "TextBox" And If ctl.readonly Then > > `If ctl Is TextBox` is far more faster! > This is too simple for my twisted mind ;-) Regards Gianluigi From bagoneo at libero.it Sat Nov 26 16:47:51 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 16:47:51 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> Message-ID: <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> Il 26/11/22 16:33, T Lee Davidson ha scritto: > > I didn't keep the email in which BB attached a sample demo of his > problem or I'd forward it to you. But, in that message he stated that he > has many more types of controls other than just textboxes, including > custom controls, that he wants to clear. I almost missed that until I > read his email again more thoroughly. > > Then as my usual, I didn't understand the problem. Nothing new from the western front Regards Gianluigi P.S. For me it wasn't fruitless, I found out something I didn't know. :-) From brian at westwoodsvcs.com Sat Nov 26 17:01:50 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 26 Nov 2022 19:01:50 +0300 Subject: [Gambas-user] =?utf-8?q?gambas_Disk_Management?= In-Reply-To: References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> Message-ID: <1669478510.551492896@f33.my.com> Did you look at the script I included.bit does display the id -- Thanks Brian G Saturday, 26 November 2022, 03:44AM -08:00 from Fabien Bodard gambas.fr at gmail.com : >Ok now mounting/unmounting will work > >and I get still a bug on Drive Id... I say "Id" and gambas seem to call "id" > >I think it's a bug in dbus component. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sat Nov 26 17:02:55 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 17:02:55 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> Message-ID: Il 26/11/22 16:47, gian via User ha scritto: > Il 26/11/22 16:33, T Lee Davidson ha scritto: > >> >> I didn't keep the email in which BB attached a sample demo of his >> problem or I'd forward it to you. But, in that message he stated that >> he has many more types of controls other than just textboxes, >> including custom controls, that he wants to clear. I almost missed >> that until I read his email again more thoroughly. >> >> > > Then as my usual, I didn't understand the problem. > > Nothing new from the western front > > Regards > > Gianluigi > > P.S. For me it wasn't fruitless, I found out something I didn't know. :-) > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi Lee, If that's what you're referring to: https://lists.gambas-basic.org/pipermail/user/2022-November/077470.html I keep understanding it differently from yours. Can you please explain it better? Unfortunately, I am Italian and I understand that BB only looks for ReadOnly TextBoxes in order to delete them, but only ReadOnly ones. I believe that Benoit's improved code does the job excellently. Regards Gianluigi From gambas.fr at gmail.com Sat Nov 26 17:06:29 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 26 Nov 2022 17:06:29 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: <1669478510.551492896@f33.my.com> References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> <1669478510.551492896@f33.my.com> Message-ID: Le sam. 26 nov. 2022 ? 17:02, Brian G a ?crit : > Did you look at the script I included.bit does display the id > > --tte ]---- > Yes I've see it but for this component I need to limit the workaround. And be based on the dbus component regular call. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bagoneo at libero.it Sat Nov 26 17:13:43 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 17:13:43 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <23caa3b4-248a-5aae-d9f4-f0963f2f9947@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <9abbb0be-f9d9-0011-274c-5f48453474c4@gambas-basic.org> <23caa3b4-248a-5aae-d9f4-f0963f2f9947@libero.it> Message-ID: <26a7c038-afc0-ab1c-177f-16c5715bf4b3@libero.it> Il 26/11/22 16:39, gian via User ha scritto: > Il 26/11/22 16:33, Benoit Minisini ha scritto: >> Le 26/11/2022 ? 16:28, gian via User a ?crit?: >>> >>> ???? If Object.Type(ctl) = "TextBox" And If ctl.readonly Then >> >> `If ctl Is TextBox` is far more faster! >> > > > This is too simple for my twisted mind ;-) > > Regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi Benoit, To be funny, I forgot to thank you for the trick. I do it now: Thank you very much :-) Regards Gianluigi From t.lee.davidson at gmail.com Sat Nov 26 17:19:50 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 26 Nov 2022 11:19:50 -0500 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> Message-ID: <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> On 11/26/22 11:02, gian via User wrote: > If?that's?what?you're?referring?to: > https://lists.gambas-basic.org/pipermail/user/2022-November/077470.html > I?keep?understanding?it?differently?from?yours. Yes, that is the one to which I was referring. In that, he says: > I'm trying to clear a form by going through all the controls and trying to "clear" them. [snip] > I know it could be done with a lot of complex checking for what type of > control each one is but I was trying to avoid that. > > Dim thisTextBox as TextBox > Dim thisTextArea as TextArea > ' etc etc etc etc > ... > For Each ctl as Object in Me.Controls > If ctl Is TextBox Then > thisTextBox=ctl > if not thisTextBox.ReadOnly then thisTextBox.Clear > Else If ctl Is TextArea > etc > Else If ctl Is MyCustomTextBox > etc > Else If ctl Is etc etc etc etc for up to 3 gazillion control types and custom control types From the first sentence, I gather he is wanting to clear any control that has a Clear method. And, he mentions not only TextBox, but also TextArea, MyCustomTextBox, and "up to 3 gazillion control types and custom control types". I hope that helps. -- Lee From bagoneo at libero.it Sat Nov 26 17:34:42 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 17:34:42 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> Message-ID: Il 26/11/22 17:19, T Lee Davidson ha scritto: > On 11/26/22 11:02, gian via User wrote: >> If?that's?what?you're?referring?to: >> https://lists.gambas-basic.org/pipermail/user/2022-November/077470.html >> I?keep?understanding?it?differently?from?yours. > > Yes, that is the one to which I was referring. In that, he says: > Yes now I read more carefully, and I also noticed that Benoit was not suggesting a trick but suggesting to read BB's question better. Gee I'm worried it's not enough for me to read two or three times anymore to understand the questions. I guess senile senility is advancing faster than I feared :-( Have a good Sunday everyone Gianluigi From t.lee.davidson at gmail.com Sat Nov 26 18:14:35 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 26 Nov 2022 12:14:35 -0500 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> Message-ID: <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> On 11/26/22 11:34, gian via User wrote: > Yes now I read more carefully, and I also noticed that Benoit was not > suggesting?a?trick?but?suggesting?to?read?BB's?question?better. Not to speak for him, but I'm fairly certain Beno?t's intent was indeed to point out a performance tip which, BTW, I found to be interesting and good to know. Although, his post may have been dual-purpose as well. > > Gee I'm worried it's not enough for me to read two or three times anymore?to?understand?the?questions. Don't worry, Gianluigi. As I mentioned, I almost missed the "gazillion different types of controls" [slightly paraphrased] until I reread BB's post. I think you understand things, even the English language, just fine. -- Lee From gambas.fr at gmail.com Sat Nov 26 18:37:16 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 26 Nov 2022 18:37:16 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> Message-ID: Easy Create a class named TextBox In it just add Public Sub Clear() If not super.ReadOnly then Super.Clear End This override the TextBox.Clear function as you want Le sam. 26 nov. 2022 ? 18:15, T Lee Davidson a ?crit : > On 11/26/22 11:34, gian via User wrote: > > Yes now I read more carefully, and I also noticed that Benoit was not > > suggesting a trick but suggesting to read BB's question better. > > Not to speak for him, but I'm fairly certain Beno?t's intent was indeed to > point out a performance tip which, BTW, I found to be > interesting and good to know. Although, his post may have been > dual-purpose as well. > > > > > Gee I'm worried it's not enough for me to read two or three times > anymore to understand the questions. > > Don't worry, Gianluigi. As I mentioned, I almost missed the "gazillion > different types of controls" [slightly paraphrased] until > I reread BB's post. I think you understand things, even the English > language, just fine. > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Nov 26 20:38:48 2022 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 26 Nov 2022 11:38:48 -0800 (PST) Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> <1669478510.551492896@f33.my.com> Message-ID: <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 26, 2022, at 8:06 AM, Fabien Bodard wrote: > Le sam. 26 nov. 2022 ? 17:02, Brian G < [ mailto:brian at westwoodsvcs.com | > brian at westwoodsvcs.com ] > a ?crit : >> Did you look at the script I included.bit does display the id >> -- [ http://gambaswiki.org/wiki/doc/netiquette | tte ] ]---- > Yes I've see it but for this component I need to limit the workaround. And be > based on the dbus component regular call. > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I see Ben added the support... cool "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Sat Nov 26 21:34:40 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 26 Nov 2022 21:34:40 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> <1669478510.551492896@f33.my.com> <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le sam. 26 nov. 2022 ? 20:39, Brian G a ?crit : > ----- On Nov 26, 2022, at 8:06 AM, Fabien Bodard > wrote: > > > > Le sam. 26 nov. 2022 ? 17:02, Brian G a ?crit : > >> Did you look at the script I included.bit does display the id >> >> --tte ]---- >> > > Yes I've see it but for this component I need to limit the workaround. And > be based on the dbus component regular call. > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > I see Ben added the support... cool > And I've found my problem. It come from the fact I've named _Drive property 'id' and not 'Id'.. well I don't know why it matter but... > > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sat Nov 26 21:41:29 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 26 Nov 2022 21:41:29 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> <1669478510.551492896@f33.my.com> <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 26/11/2022 ? 21:34, Fabien Bodard a ?crit?: > > And I've found my problem. > > It come from the fact I've named _Drive property 'id' and not 'Id'.. > well I don't know why it matter but... > DBus identifiers are case sensitive. Consequently, calling DBus proxy object properties or methods is case sensitive too. -- Beno?t Minisini. From gambas.fr at gmail.com Sat Nov 26 22:26:30 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 26 Nov 2022 22:26:30 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: <20bc8c03-2de5-8d8e-1928-9283cea8505f@gmail.com> <1669478510.551492896@f33.my.com> <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le sam. 26 nov. 2022 ? 21:42, Benoit Minisini a ?crit : > > Le 26/11/2022 ? 21:34, Fabien Bodard a ?crit : > > > > And I've found my problem. > > > > It come from the fact I've named _Drive property 'id' and not 'Id'.. > > well I don't know why it matter but... > > > > DBus identifiers are case sensitive. Consequently, calling DBus proxy > object properties or methods is case sensitive too. but In this case the problem was not on the DBus calling. > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I join a short program that show the failure (Change the disk id for testing your own) -- Fabien Bodard -------------- next part -------------- A non-text attachment was scrubbed... Name: DBusBug-0.0.1.tar.gz Type: application/gzip Size: 11977 bytes Desc: not available URL: From bagoneo at libero.it Sat Nov 26 23:42:33 2022 From: bagoneo at libero.it (gian) Date: Sat, 26 Nov 2022 23:42:33 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> Message-ID: <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> Il 26/11/22 18:37, Fabien Bodard ha scritto: > Easy > > Create a class named TextBox > > In it just add > > Public Sub Clear() > > ? If not super.ReadOnly then Super.Clear > > End > > This override the TextBox.Clear function as you want Hi Fabien, Sorry for the late reply and guess what, I didn't understand how it should be done. It doesn't work for me :-( If you feel like explaining it you have all the time you want because I am going to sleep now. :-) Good night and thank you Gianluigi From bsteers4 at gmail.com Sun Nov 27 12:49:46 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 27 Nov 2022 11:49:46 +0000 Subject: [Gambas-user] Fileview file chooser preview limit Message-ID: Seems a fileview file chooser will not show a preview of an image file above a certain size about 4.5mb Can it preview all files? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Sun Nov 27 13:51:47 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sun, 27 Nov 2022 13:51:47 +0100 Subject: [Gambas-user] Fileview file chooser preview limit In-Reply-To: References: Message-ID: Le dim. 27 nov. 2022 ? 12:50, Bruce Steers a ?crit : > Seems a fileview file chooser will not show a preview of an image file > above a certain size about 4.5mb > > Can it preview all files? > > Respects > BruceS > In fact it will be possible if we use the freedesktop thumbnails system. But it use a system who embbed a part of the info of the thumbnail in the generated PNG. And I've not find how to deal with png meta datas. If I have this info I can finish my thumbnail manager and allow the fileview to display more biggest picture but also all kind of preview. ?. Beno?t have limited the size because of the time for image loading for big picture. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas.fr at gmail.com Sun Nov 27 15:25:22 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sun, 27 Nov 2022 15:25:22 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> Message-ID: Sorry I forgot one line :-) You must to export the class I join a demo. Be carrefull It change the way of all the text boxes of your project. You can also make a class named "MyTextBox" with Export Inherit TextBox Public Sub Clear() If not super.ReadOnly then Super.Clear End This way only your class is changed. Regards, -- Fabien Bodard From gambas.fr at gmail.com Sun Nov 27 15:25:51 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sun, 27 Nov 2022 15:25:51 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> Message-ID: Le dim. 27 nov. 2022 ? 15:25, Fabien Bodard a ?crit : > > Sorry I forgot one line :-) > > You must to export the class > > I join a demo. > > Be carrefull It change the way of all the text boxes of your project. > > You can also make a class named "MyTextBox" with > > Export > Inherit TextBox > > Public Sub Clear() > > If not super.ReadOnly then Super.Clear > > End > > This way only your class is changed. > > Regards, > > -- > Fabien Bodard -- Fabien Bodard -------------- next part -------------- A non-text attachment was scrubbed... Name: TextBoxDemo-0.0.1.tar.gz Type: application/gzip Size: 12088 bytes Desc: not available URL: From gambas.fr at gmail.com Sun Nov 27 15:26:33 2022 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sun, 27 Nov 2022 15:26:33 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> Message-ID: Le dim. 27 nov. 2022 ? 15:25, Fabien Bodard a ?crit : > > Le dim. 27 nov. 2022 ? 15:25, Fabien Bodard a ?crit : > > > > Sorry I forgot one line :-) > > > > You must to export the class > > > > I join a demo. > > > > Be carrefull It change the way of all the text boxes of your project. > > > > You can also make a class named "MyTextBox" with > > > > Export > > Inherit TextBox > > > > Public Sub Clear() > > > > If not super.ReadOnly then Super.Clear > > > > End > > > > This way only your class is changed. > > > > Regards, > > > > -- > > Fabien Bodard > > > > -- > Fabien Bodard -- Fabien Bodard -------------- next part -------------- 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 AHgAAA== From bagoneo at libero.it Sun Nov 27 16:03:22 2022 From: bagoneo at libero.it (gian) Date: Sun, 27 Nov 2022 16:03:22 +0100 Subject: [Gambas-user] How top clearing a readonly textbox In-Reply-To: References: <86b3dd59-ad29-8882-7382-1084df705e03@gmail.com> <6f16cec2-8cd0-cedd-00d3-ba3f91da9d53@gmail.com> <916c475c-9aec-0e14-85a9-2e8065e421a5@gmail.com> <0a3d5948-08f2-b56e-81fa-b66a2da19050@libero.it> <59db9a0c-a4cf-e06b-3f9a-ebb8835b0773@libero.it> <0ddf2854-ddf0-7512-c9bd-e4ddfbaca652@gmail.com> <19d5f04d-0d77-6518-843e-7dd869a754a1@libero.it> <7e7e07d6-1b56-fe72-6d1f-5bf83708d001@gmail.com> <7a0415c2-0ba5-f5cb-b83a-538b722efaf6@gmail.com> <71d2ddb8-22d2-57c5-cd3a-9f50573ddc7c@libero.it> Message-ID: <20c0b862-cec7-4baf-7057-90bcdfd565ed@libero.it> Il 27/11/22 15:26, Fabien Bodard ha scritto: > Le dim. 27 nov. 2022 ? 15:25, Fabien Bodard a ?crit : >> >> Le dim. 27 nov. 2022 ? 15:25, Fabien Bodard a ?crit : >>> >>> Sorry I forgot one line :-) >>> >>> You must to export the class >>> >>> I join a demo. >>> >>> Be carrefull It change the way of all the text boxes of your project. >>> >>> You can also make a class named "MyTextBox" with >>> >>> Export >>> Inherit TextBox >>> >>> Public Sub Clear() >>> >>> If not super.ReadOnly then Super.Clear >>> >>> End >>> >>> This way only your class is changed. >>> >>> Regards, >>> >>> -- >>> Fabien Bodard >> >> >> >> -- >> Fabien Bodard > Hi Fabien, thank you very much, I had tried 'Create Static' and 'Inherits', one should not stop at the first difficulties.... I also had the doubt that it was a BB trap. That by connecting the YAMAHA, this, instead of strangling itself, should strangle BB :-) You are always kind to clumsy people like me. Have a good Sunday Gianluigi From benoit.minisini at gambas-basic.org Sun Nov 27 18:57:42 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 27 Nov 2022 18:57:42 +0100 Subject: [Gambas-user] Fileview file chooser preview limit In-Reply-To: References: Message-ID: Le 27/11/2022 ? 12:49, Bruce Steers a ?crit?: > Seems a fileview file chooser will not show a preview of an image file > above a certain size about 4.5mb > > Can it preview all files? > > Respects > BruceS > What do you want exactly? An option to have no file size limit? An option to define exactly what the limit is? -- Beno?t Minisini. From bsteers4 at gmail.com Sun Nov 27 19:34:42 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 27 Nov 2022 18:34:42 +0000 Subject: [Gambas-user] Fileview file chooser preview limit In-Reply-To: References: Message-ID: Probably better to let programmer set a desired alternative size if wanted but then could use 0 for unlimited? Personally I want unlimited. And also an exif auto correct orientation option for previews would be awesome ? I tried to use the Icon event but was massively slow. I modified FileView to be unlimited size previews and auto-orientate using exiftool and speed was something I could live with (considering the results were much better) as it uses the Task.class But just allowing limit size/off would be a great option. Cheers Ben Respects BruceS On Sun, 27 Nov 2022, 17:58 Benoit Minisini, < benoit.minisini at gambas-basic.org> wrote: > Le 27/11/2022 ? 12:49, Bruce Steers a ?crit : > > Seems a fileview file chooser will not show a preview of an image file > > above a certain size about 4.5mb > > > > Can it preview all files? > > > > Respects > > BruceS > > > > What do you want exactly? An option to have no file size limit? An > option to define exactly what the limit is? > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Mon Nov 28 20:38:50 2022 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 28 Nov 2022 11:38:50 -0800 (PST) Subject: [Gambas-user] gambas Disk Management In-Reply-To: References: <1669478510.551492896@f33.my.com> <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <97362691.10775.1669664330008.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 26, 2022, at 1:26 PM, Fabien Bodard gambas.fr at gmail.com wrote: > Le sam. 26 nov. 2022 ? 21:42, Benoit Minisini > a ?crit : >> >> Le 26/11/2022 ? 21:34, Fabien Bodard a ?crit : >> > >> > And I've found my problem. >> > >> > It come from the fact I've named _Drive property 'id' and not 'Id'.. >> > well I don't know why it matter but... >> > >> >> DBus identifiers are case sensitive. Consequently, calling DBus proxy >> object properties or methods is case sensitive too. > > but In this case the problem was not on the DBus calling. >> >> -- >> Beno?t Minisini. >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > I join a short program that show the failure (Change the disk id for > testing your own) > > > -- > Fabien Bodard > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- I wonder if it would be possible to make the bdbusproxy enumeratable, rather than using a _getsymbol call It seems that it would be vary useful. From benoit.minisini at gambas-basic.org Mon Nov 28 21:44:11 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 28 Nov 2022 21:44:11 +0100 Subject: [Gambas-user] gambas Disk Management In-Reply-To: <97362691.10775.1669664330008.JavaMail.zimbra@westwoodsvcs.com> References: <1669478510.551492896@f33.my.com> <946107482.10329.1669491528663.JavaMail.zimbra@westwoodsvcs.com> <97362691.10775.1669664330008.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <948fb2dc-c0e3-319e-9f9e-c4092a459d2f@gambas-basic.org> Le 28/11/2022 ? 20:38, Brian G a ?crit?: >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I wonder if it would be possible to make the bdbusproxy enumeratable, rather than using a _getsymbol call > It seems that it would be vary useful. > Don't use it, it's not public API at the moment. -- Beno?t Minisini. From brian at westwoodsvcs.com Tue Nov 29 07:43:23 2022 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Tue, 29 Nov 2022 09:43:23 +0300 Subject: [Gambas-user] =?utf-8?q?gambas_Disk_Management?= In-Reply-To: <948fb2dc-c0e3-319e-9f9e-c4092a459d2f@gambas-basic.org> References: <97362691.10775.1669664330008.JavaMail.zimbra@westwoodsvcs.com> <948fb2dc-c0e3-319e-9f9e-c4092a459d2f@gambas-basic.org> Message-ID: <1669704203.9802439@f31.my.com> Ho should one enumerate then -- Thanks Brian G Monday, 28 November 2022, 00:45PM -08:00 from Benoit Minisini benoit.minisini at gambas-basic.org : >Le 28/11/2022 ? 20:38, Brian G a ?crit?: >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > I wonder if it would be possible to make the bdbusproxy enumeratable, rather than using a _getsymbol call > It seems that it would be vary useful. > > >Don't use it, it's not public API at the moment. > >-- >Beno?t Minisini. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 29 08:04:15 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 29 Nov 2022 17:34:15 +1030 Subject: [Gambas-user] Module is not static Message-ID: I'm reviving an old project, not used since Feb 2020, that re/generates the Gambas source code for some other project. (Essentially, like the Advanced/Format Code in the IDE but with a lot more, anyway...). But suddenly I have a module "Template" (that contains a set of public constants and that's all) that when I refer to it in my code generator I get errors like "_ERR: 'Template.ConstDec' is not static_". The top of the Template module looks like : ' Gambas module file ''' This module contains the code templates for all the code generated by the program. '================================================================= '==== Constants ==== '================================================================= Public Const EventDec As String = "Event #NAME(#SIGNATURE) " ' Public Const PropertyDec As String = "#STATIC Property #READONLY #NAME #ALIASES As #DATATYPE " ' Public Const GlobalDec As String = "#STATIC #SCOPE #NAME As #AUTOCREATE #DATATYPE #DEFAULTVALUE " ' Public Const ArrayDec As String = "#SCOPE #NAME As #AUTOCREATE #DATATYPE [ #DIMENSIONS ] " ' *Public Const ConstDec As String = "#SCOPE Const #NAME As #DATATYPE = #VALUE " ' * Public Const StructDec As String = "Public Struct #NAME \n #STRUCTITEMS\n End Struct" ' and a sample failing line is sCode = Replace(*Template.ConstDec*, "#SCOPE", IIf(Me.IsPrivate, "Private", "Public")) This worked fine two years ago. Any idea what I could be doing wrong? tia bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 29 08:12:00 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 29 Nov 2022 08:12:00 +0100 Subject: [Gambas-user] Module is not static In-Reply-To: References: Message-ID: Le 29/11/2022 ? 08:04, BB a ?crit?: > I'm reviving an old project, not used since Feb 2020, that re/generates > the Gambas source code for some other project. (Essentially, like the > Advanced/Format Code in the IDE but with a lot more, anyway...). > > But suddenly I have a module "Template" (that contains a set of public > constants and that's all) that when I refer to it in my code generator I > get errors like "_ERR: 'Template.ConstDec' is not static_". > > The top of the Template module looks like : > > ' Gambas module file > > ''' This module contains the code templates for all the code generated by the program. > > '================================================================= > '==== Constants ==== > '================================================================= > Public Const EventDec As String = "Event #NAME(#SIGNATURE) " ' > Public Const PropertyDec As String = "#STATIC Property #READONLY #NAME #ALIASES As #DATATYPE " ' > Public Const GlobalDec As String = "#STATIC #SCOPE #NAME As #AUTOCREATE #DATATYPE #DEFAULTVALUE " ' > Public Const ArrayDec As String = "#SCOPE #NAME As #AUTOCREATE #DATATYPE [ #DIMENSIONS ] " ' > *Public Const ConstDec As String = "#SCOPE Const #NAME As #DATATYPE = > #VALUE " ' * > Public Const StructDec As String = "Public Struct #NAME \n #STRUCTITEMS\n End Struct" ' > > and a sample failing line is > > sCode = Replace(*Template.ConstDec*, "#SCOPE", IIf(Me.IsPrivate, "Private", "Public")) > > This worked fine two years ago. Any idea what I could be doing wrong? > > tia > > bruce > Don't you have another 'Template' somewhere as a variable? -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 29 08:32:09 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 29 Nov 2022 18:02:09 +1030 Subject: [Gambas-user] Module is not static In-Reply-To: References: Message-ID: <188cd310-9718-203f-f8fb-71f64f991ae1@gmail.com> On 29/11/22 5:42 pm, Benoit Minisini wrote: > > Don't you have another 'Template' somewhere as a variable? > Not that I can see, they are all references to the module constants. I also searched for it all the components used. There were no hits. I'll try changing the name of the module to see if that adds any light. bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: bffoplajlhpfijlc.png Type: image/png Size: 175975 bytes Desc: not available URL: From adamnt42 at gmail.com Tue Nov 29 08:43:01 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 29 Nov 2022 18:13:01 +1030 Subject: [Gambas-user] Module is not static In-Reply-To: <188cd310-9718-203f-f8fb-71f64f991ae1@gmail.com> References: <188cd310-9718-203f-f8fb-71f64f991ae1@gmail.com> Message-ID: <433b293b-27f7-80dd-3a77-83e22add676d@gmail.com> On 29/11/22 6:02 pm, BB wrote: > On 29/11/22 5:42 pm, Benoit Minisini wrote: >> >> Don't you have another 'Template' somewhere as a variable? >> > Not that I can see, they are all references to the module constants. > > I'll try changing the name of the module to see if that adds any light. > > bruce > Yep, renaming the module to "CodeTemplates" fixed it. Is it a newish reserved word or something in the IDE/debugger that could have caused it? b From benoit.minisini at gambas-basic.org Tue Nov 29 10:45:26 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 29 Nov 2022 10:45:26 +0100 Subject: [Gambas-user] Module is not static In-Reply-To: <433b293b-27f7-80dd-3a77-83e22add676d@gmail.com> References: <188cd310-9718-203f-f8fb-71f64f991ae1@gmail.com> <433b293b-27f7-80dd-3a77-83e22add676d@gmail.com> Message-ID: Le 29/11/2022 ? 08:43, BB a ?crit?: > On 29/11/22 6:02 pm, BB wrote: >> On 29/11/22 5:42 pm, Benoit Minisini wrote: >>> >>> Don't you have another 'Template' somewhere as a variable? >>> >> Not that I can see, they are all references to the module constants. >> >> I'll try changing the name of the module to see if that adds any light. >> >> bruce >> > Yep, renaming the module to "CodeTemplates" fixed it. Is it a newish > reserved word or something in the IDE/debugger that could have caused it? > > b > I don't use 'Template' anywhere as far as I know. Are you sure that you don't export a 'Template' class somewhere? -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 29 11:54:23 2022 From: adamnt42 at gmail.com (BB) Date: Tue, 29 Nov 2022 21:24:23 +1030 Subject: [Gambas-user] Module is not static In-Reply-To: References: <188cd310-9718-203f-f8fb-71f64f991ae1@gmail.com> <433b293b-27f7-80dd-3a77-83e22add676d@gmail.com> Message-ID: <342cc5a4-7019-e706-16f6-1124238c1eb5@gmail.com> On 29/11/22 8:15 pm, Benoit Minisini wrote: > > I don't use 'Template' anywhere as far as I know. Are you sure that > you don't export a 'Template' class somewhere? > Found it! For some reason lost in the mists of time I was loading the code generator project as a component inside itself. Difficult to achieve in the known universe but nevertheless. Anyway, no real matter. It's all solved now. regards bruce p.s. You do use it. In the IDE ProjectBox class, "Public Template As Boolean". I actually found it running the IDE source through the generator. ? From adamnt42 at gmail.com Tue Nov 29 15:14:36 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 00:44:36 +1030 Subject: [Gambas-user] Infinities and division Message-ID: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> I'm not real good on infinite mathematics but If Abs((.Actual - .Predicted) / .Predicted) > 0.005 Then throws a "Division by zero (26)" error when .Actual = -Inf and .Predicted = (a normal real like) 63.665584 Is that correct? Because to me it's a very misleading error. regards bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 29 15:23:51 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 29 Nov 2022 15:23:51 +0100 Subject: [Gambas-user] Infinities and division In-Reply-To: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> Message-ID: Le 29/11/2022 ? 15:14, BB a ?crit?: > I'm not real good on infinite mathematics but > > If Abs((.Actual - .Predicted) / .Predicted) > 0.005 Then > > throws a "Division by zero (26)" error when .Actual = -Inf and > .Predicted = (a normal real like) 63.665584 > > Is that correct? Because to me it's a very misleading error. > > regards > > bruce > Indeed. It's because "/" raises "Division by zero" as soon as it does not return a real number. -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Tue Nov 29 15:24:40 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 29 Nov 2022 15:24:40 +0100 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> Message-ID: <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Le 29/11/2022 ? 15:23, Benoit Minisini a ?crit?: > Le 29/11/2022 ? 15:14, BB a ?crit?: >> I'm not real good on infinite mathematics but >> >> ????If Abs((.Actual - .Predicted) / .Predicted) > 0.005 Then >> >> throws a "Division by zero (26)" error when .Actual = -Inf and >> .Predicted = (a normal real like) 63.665584 >> >> Is that correct? Because to me it's a very misleading error. >> >> regards >> >> bruce >> > > Indeed. It's because "/" raises "Division by zero" as soon as it does > not return a real number. > But should it raise an error in that case, or return the infinites? -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 29 15:28:42 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 00:58:42 +1030 Subject: [Gambas-user] Infinities and division In-Reply-To: <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Message-ID: <7fa01163-8c09-f120-4394-72f7b6ec9a5e@gmail.com> On 30/11/22 12:54 am, Benoit Minisini wrote: > Le 29/11/2022 ? 15:23, Benoit Minisini a ?crit?: >> Le 29/11/2022 ? 15:14, BB a ?crit?: >>> I'm not real good on infinite mathematics but >>> >>> ????If Abs((.Actual - .Predicted) / .Predicted) > 0.005 Then >>> >>> throws a "Division by zero (26)" error when .Actual = -Inf and >>> .Predicted = (a normal real like) 63.665584 >>> >>> Is that correct? Because to me it's a very misleading error. >>> >>> regards >>> >>> bruce >>> >> >> Indeed. It's because "/" raises "Division by zero" as soon as it does >> not return a real number. >> > > But should it raise an error in that case, or return the infinites? > I'd accept an error just stating "Improper infinite math" or something like that. But I accept your answer anyway, it's just that I spent some time trying to figure out why 63.665584 equals zero. ? bruce From jussi.lahtinen at gmail.com Tue Nov 29 19:41:07 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 29 Nov 2022 20:41:07 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Message-ID: > > But should it raise an error in that case, or return the infinites? > I would follow mathematical logic. Infinite / x and x / infinite are not defined and thus error should be raised. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Nov 29 19:52:48 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 29 Nov 2022 20:52:48 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Message-ID: ... also this would be consistent with not allowing divide by zero (which would be kinda x / 0 = infinity). And furthermore this would prevent illogical things like: If infinite / 1 = infinite / 2 Then Print "Yes, 1 is totally equal to 2." Jussi On Tue, Nov 29, 2022 at 8:41 PM Jussi Lahtinen wrote: > But should it raise an error in that case, or return the infinites? >> > > I would follow mathematical logic. Infinite / x and x / infinite are not > defined and thus error should be raised. > > Jussi > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Nov 29 20:37:19 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 29 Nov 2022 20:37:19 +0100 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Message-ID: Le 29/11/2022 ? 19:52, Jussi Lahtinen a ?crit?: > ... also this would be consistent with not allowing divide by zero > (which would be kinda x / 0 = infinity). > And furthermore this would prevent illogical things like: > If infinite / 1 = infinite / 2 Then Print "Yes, 1 is totally equal to 2." > Mmm. Yes, you're right. It's better to raise an error as soon as we see an infinite, even if this is not how the CPU floating point works. If someone want to play with non-standard analysis, it's not a good idea to rely on standard CPU floating points. Regards, -- Beno?t Minisini. From adamnt42 at gmail.com Tue Nov 29 23:04:03 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 08:34:03 +1030 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> Message-ID: <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Mmmmm, debateable. On 30/11/22 5:22 am, Jussi Lahtinen wrote: > ... also this would be consistent with not allowing divide by zero > (which would be kinda x / 0 = infinity). > And furthermore this would prevent illogical things like: > If infinite / 1 = infinite / 2 Then Print "Yes, 1 is totally equal to 2." > > > Jussi > (This one I do know) Mathematically, from the "Infinite Hotel" story, ??? infinity <> infinity. But, in Gambas ??? +Inf = +Inf should be true as +Inf is not really "infinity", It's a constant representing "a very big number". Otherwise, the constant is generally useless. bruce From jussi.lahtinen at gmail.com Tue Nov 29 23:31:02 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 30 Nov 2022 00:31:02 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: <447138b3-020e-0beb-292e-d050534ce302@gmail.com> References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: > > Mathematically, from the "Infinite Hotel" story, > > infinity <> infinity. > No, in Hilbert's hotel there is only one sized infinity (countably infinite set, example natural numbers and integers). It just demonstrates the counterintuitive property of it. However there are different sizes of infinity, for example the set of real numbers is uncountably infinite. IE set of integers and set of real numbers are different in size, but set of integers and set of natural numbers are the same size. But, in Gambas > > +Inf = +Inf > > should be true as +Inf is not really "infinity", It's a constant > representing "a very big number". Otherwise, the constant is generally > useless. > Yes, that is true as it is the same constant in both sides of the equation. However that does not correspond to the mathematical concept (it's not a number) of infinity. And it should not be used in arithmetics, only for some conditionals if at all. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Nov 29 23:59:52 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 09:29:52 +1030 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: On 30/11/22 9:01 am, Jussi Lahtinen wrote: > > Mathematically, from the "Infinite Hotel" story, > > ???? infinity <> infinity. > > > No, in Hilbert's hotel there is only one sized infinity (countably > infinite set, example natural numbers and integers). > It just demonstrates the counterintuitive property of it.? However > there are different sizes of infinity, for example the set of real > numbers is uncountably infinite. IE set of integers and set of real > numbers are different in size, but set of integers and set of natural > numbers are the same size. Oh, OK. I don't really understand it as I said. > > But, in Gambas > > ???? +Inf = +Inf > > should be true as +Inf is not really "infinity", It's a constant > representing "a very big number". Otherwise, the constant is > generally > useless. > > > Yes, that is true as it is the same constant in both sides of the > equation. However that does not correspond to the mathematical concept > (it's not a number) of infinity. > And it should not be used in arithmetics, only for some conditionals > if at all. > > No, I think we do need some arithmetics: If ( +-Inf + X ) = +Inf = ' -> true, no matter if X is real or natural but if X = +Inf? If ( +-Inf - X ) = +-Inf ' -> true, no matter if X is real or natural but if X = +-Inf? if ( +-Inf * X ) = +-Inf '-> true, no matter if X is real or natural, and possibly if X = +-Inf if ( +-Inf / X ) '-> "Improper Infinites Error" If ( X / +-Inf ) '-> "Improper Infinites Error" If ( +-Inf ^ X ) '-> I dont know if ( X ^ = +-Inf ) '-> I dont know and there are some debatable points such as -Inf + +Inf hinted at above. There may be others, Sin(+-Inf)? etc and why btw does Tan(Rad(90)) return 1.63312393531954E+16 ? I also note that CInt( +-Inf) does return a valid integer, which is fine and good for my current purposes. This topic is bigger than I thought. regards bruce -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Nov 30 00:10:55 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 30 Nov 2022 00:10:55 +0100 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: <1e15a072-afe4-229d-ab83-4f4414652312@gambas-basic.org> Le 29/11/2022 ? 23:59, BB a ?crit?: > > On 30/11/22 9:01 am, Jussi Lahtinen wrote: >> >> Mathematically, from the "Infinite Hotel" story, >> >> ???? infinity <> infinity. >> >> >> No, in Hilbert's hotel there is only one sized infinity (countably >> infinite set, example natural numbers and integers). >> It just demonstrates the counterintuitive property of it.? However >> there are different sizes of infinity, for example the set of real >> numbers is uncountably infinite. IE set of integers and set of real >> numbers are different in size, but set of integers and set of natural >> numbers are the same size. > Oh, OK. I don't really understand it as I said. >> >> But, in Gambas >> >> ???? +Inf = +Inf >> >> should be true as +Inf is not really "infinity", It's a constant >> representing "a very big number". Otherwise, the constant is >> generally >> useless. >> >> >> Yes, that is true as it is the same constant in both sides of the >> equation. However that does not correspond to the mathematical concept >> (it's not a number) of infinity. >> And it should not be used in arithmetics, only for some conditionals >> if at all. >> >> > No, I think we do need some arithmetics: > > If ( +-Inf + X ) = +Inf = ' -> true, no matter if X is real or natural > but if X = +Inf? > > If ( +-Inf - X ) = +-Inf ' -> true, no matter if X is real or natural > but if X = +-Inf? > > if ( +-Inf * X ) = +-Inf '-> true, no matter if X is real or natural, > and possibly if X = +-Inf > > if ( +-Inf / X ) '-> "Improper Infinites Error" > > If ( X / +-Inf ) '-> "Improper Infinites Error" > > If ( +-Inf ^ X ) '-> I dont know > > if ( X ^ = +-Inf ) '-> I dont know > > and there are some debatable points such as -Inf + +Inf hinted at above. > There may be others, Sin(+-Inf)? etc and why btw does Tan(Rad(90)) > return 1.63312393531954E+16 ? > > I also note that CInt( +-Inf) does return a valid integer, which is fine > and good for my current purposes. > > This topic is bigger than I thought. > > regards > > bruce All you see in Gambas is actually handled by the CPU and is based on the IEEE 754 standard (which defines these infinities things). So I don't think it will change. Regards, -- Beno?t Minisini. From jussi.lahtinen at gmail.com Wed Nov 30 00:29:17 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 30 Nov 2022 01:29:17 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: > No, I think we do need some arithmetics: > All this is just going to bite your ass sooner or later. As shown earlier, it yields the result 1 = 2. Also, adding to the confusion list; what would be Inf * 0 ? There just aren't logical answers when you treat infinity as a number. It's simply wrong. Illogical. ... why btw does Tan(Rad(90)) return 1.63312393531954E+16 ? > That is just the notification, where XE+Y = X * 10^Y. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Nov 30 01:11:34 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 10:41:34 +1030 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: On 30/11/22 9:59 am, Jussi Lahtinen wrote: > > No, I think we do need some arithmetics: > > All this is just going to bite your ass sooner or later. As shown > earlier, it yields the result 1 = 2. > Also, adding to the confusion list; what would be Inf * 0 ? There just > aren't logical answers when you treat infinity as a number. It's > simply wrong. Illogical. Ah, I was talking about arithmetic using the constants not arithmetic on "actual infinities". In fact I am quite happy, mathematically, that Infinity / 1 does equal Infinity / 2 does equal Infinity / X (For X in R) but doesn't equal Infinity / Infinity. But +Inf / 2 is a completely different thing. A "very large (real) number" / 2 does equal a "very large (real) number" or does it?? Is the f(x)=Limit(x=1 -> +Inf) x / y ,where y is any fixed real number, computable? > > ... why btw does Tan(Rad(90)) return 1.63312393531954E+16 ? > > > That is just the notification, where XE+Y = X * 10^Y. > IMO it should return NaN but I guess it's because there is a real number returned by Rad(90) and therefore a real result to the Tan() function. In fact it looks like there is no way to get a Tan("90 degrees") as all the means of getting the radians involve real number calculations. OK we can forget about this one. I am satisfied with Benoit's answer to this (satisfied but not happy? as I now "have to" read another damn IEEE doc) b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Wed Nov 30 02:20:57 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 30 Nov 2022 03:20:57 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: > Ah, I was talking about arithmetic using the constants not arithmetic on > "actual infinities". In fact I am quite happy, mathematically, ... > Mathematically, infinity is not a number. And arithmetics on the constant doesn't make much sense either, moreover it is completely unnecessary. There are better ways than relying on it. When people say 1 / Inf = 0, they mean the limit x->Inf, 1/x. Not the actual calculation. 1 / Inf = 0 is simply wrong. But +Inf / 2 is a completely different thing. A "very large (real) number" > / 2 does equal a "very large (real) number" or does it? > What is the point? 1.63312393531954E+16 is also a very big number. The Inf comes up when the result is too big for the variable or division by zero (but error is raised on the latter). It is not suitable for any calculations. It does *not* present a result of valid computation. > Is the > > f(x)=Limit(x=1 -> +Inf) x / y > > ,where y is any fixed real number, computable? > I guess you mean: Limit x->Inf, when f(x) = x/y Not sure what you mean, but this limit does have a well defined answer and it's infinity. Limits are very different things. I don't get what you are implying by this. IMO it should return NaN ... but I guess it's because there is a real > number returned by Rad(90) and therefore a real result to the Tan() > function. > Yes, floating points cannot represent Pi/2 (or any irrational numbers) accurately. You can see similar issues when you print out csingle(0.0001). Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Wed Nov 30 02:30:05 2022 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 30 Nov 2022 03:30:05 +0200 Subject: [Gambas-user] Infinities and division In-Reply-To: References: <428549b2-a50f-6d12-1285-75ac60f628ed@gmail.com> <008ea7e0-c39e-c2f3-00de-65e39aa47b8a@gambas-basic.org> <447138b3-020e-0beb-292e-d050534ce302@gmail.com> Message-ID: "The Inf comes up when the result is too big for the variable or division by zero ..." Brain fart. Too big for the register or to the biggest register... not sure. Jussi On Wed, Nov 30, 2022 at 3:20 AM Jussi Lahtinen wrote: > Ah, I was talking about arithmetic using the constants not arithmetic on >> "actual infinities". In fact I am quite happy, mathematically, ... >> > Mathematically, infinity is not a number. And arithmetics on the constant > doesn't make much sense either, moreover it is completely unnecessary. > There are better ways than relying on it. > When people say 1 / Inf = 0, they mean the limit x->Inf, 1/x. Not the > actual calculation. 1 / Inf = 0 is simply wrong. > > But +Inf / 2 is a completely different thing. A "very large (real) number" >> / 2 does equal a "very large (real) number" or does it? >> > What is the point? 1.63312393531954E+16 is also a very big number. The Inf > comes up when the result is too big for the variable or division by zero > (but error is raised on the latter). > It is not suitable for any calculations. It does *not* present a result > of valid computation. > > > >> Is the >> >> f(x)=Limit(x=1 -> +Inf) x / y >> >> ,where y is any fixed real number, computable? >> > I guess you mean: > Limit x->Inf, when f(x) = x/y > Not sure what you mean, but this limit does have a well defined answer and > it's infinity. Limits are very different things. I don't get what you are > implying by this. > > > IMO it should return NaN ... but I guess it's because there is a real >> number returned by Rad(90) and therefore a real result to the Tan() >> function. >> > Yes, floating points cannot represent Pi/2 (or any irrational numbers) > accurately. > You can see similar issues when you print out csingle(0.0001). > > > Jussi > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Nov 30 09:04:27 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 18:34:27 +1030 Subject: [Gambas-user] "Groups" of optional arguments Message-ID: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> Maybe I'm overthinking this or maybe my brain is just not as sharp as it used to be. Short explanation: I think I need to group optional arguments something along the lines of : Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer = 0), Optional ( arg4 As Date = Null, arg5 as Integer = -Inf ) ) The illogical thinking is that calls to the method * must have arg1 provided and * either o arg2 and possibly arg3 * or o possibly arg4 and possibly arg5 The example is simpified, btw. ? Is there a way to do this? Long explanation: We have a hierarchical set of classes, where for example, Region contains a collection of Variety which contains a collection of Vintage. Also we have a set of little projects that let us edit the static data for each of these classes. I want to be able to invoke the editors from within each. So if I am running EditRegion I can invoke EditVariety via a button in the EditRegion form. Alternatively, for example, if I am running EditVintage I want a button to invoke EditVariety and therein is the situation where I (think that I) need this grouped optional arguments thing. EditVariety.Run() "needs" to take two different sets of arguments depending on whether I am coming "down" from EditRegion or "up" from EditVintage. On the "down" pathway it needs to show a list of the varieties produced for that region i.e. in EditRegion I want to call it with Shell "editvariety " & subst("-r &1", thisregionid) i.e. the command is "editvariety -r Langhorne" but on the way "up" I want to call it with ? Shell "editvariety " & subst("-r &1? -v &2? -y? &2" , thisregionid, thisvarietyid, thisvarietyyear ) i.e, the command is "editvariety -r Langhorne -v Shiraz -y 2018" All straightforward so far, but... I also want, for example, on the way up or down to get all the varietals for that region, so ? Shell "editvariety " & subst ( "-r &1 -y &2", thisregionid, thisvarietyyear ) ie the command is "editvariety -r Langhorne -y 2018" Believe it or not, that was simplified just to be able to explain it. The true situation is horribly more complex involving a lot more arguments and argument "sets". I am currently doing this with a complete mash of nested and un-nested if statements in each of the "calling" editors. Result, spaghetti code and maintenance hell. Probably bad design but its what we've got. I have tried changing the editvariety's Run() to? a variadic (is that the word?) method i.e. Run ( region as string, ... ) but that just replicated all the spaghetti in the calling programs into the editvariety program. Gaargh! I have also tried using -Inf as the default values for some of the optional arguments ???? but they tend to slip through into "somewhat complex" logical operations, some of which involve "arithmetic", and *that* has been well and truly squashed by those with more intelligence than I. regards bruce (currently located in the kingdom of Confusion in the Citadel of Toxic Options) -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Nov 30 09:19:45 2022 From: adamnt42 at gmail.com (BB) Date: Wed, 30 Nov 2022 18:49:45 +1030 Subject: [Gambas-user] "Groups" of optional arguments In-Reply-To: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> References: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> Message-ID: <5711aec8-4ba5-a06d-8f5f-9f5eac40f60d@gmail.com> p.s. I do note that this https://stackoverflow.com/questions/70585861/how-to-require-a-group-of-optional-parameters-when-an-argument-is-provided-for-j raises the age-old topic of overloading. ?? From t.lee.davidson at gmail.com Wed Nov 30 17:15:28 2022 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 30 Nov 2022 11:15:28 -0500 Subject: [Gambas-user] "Groups" of optional arguments In-Reply-To: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> References: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> Message-ID: On 11/30/22 03:04, BB wrote: > Maybe I'm overthinking this or maybe my brain is just not as sharp as it used to be. > > Short explanation: I think I need to group optional arguments something along the lines of : > > Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer = 0), Optional ( arg4 As Date = Null, arg5 as Integer = > -Inf ) ) > > The illogical thinking is that calls to the method > > * must have arg1 provided and > * either > o arg2 and possibly arg3 > * or > o possibly arg4 and possibly arg5 > > The example is simpified, btw. ? > > Is there a way to do this? > > This may be a gross misunderstanding of the problem. But, couldn't you pass in the callee's class as a required parameter in addition to the reqion, and pass all the optionals as variadic or, simply, positional optionals? Ie.: given Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer = 0), Optional ( arg4 As Date = Null, arg5 as Integer = -Inf ) ) data = XYZ(regionid, Object.Type(Me), ...) , or data = XYZ(regionid, Object.Type(Me), Optional arg3 as blah, Optional arg4 as blahblah, etc.) and handle the myriad optional arguments based on who's calling? Or would that lead to more spaghetti code? -- Lee From bsteers4 at gmail.com Wed Nov 30 20:09:53 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 30 Nov 2022 19:09:53 +0000 Subject: [Gambas-user] DBus Explorer seems different? Message-ID: Oddly one of my programs that uses a previous version of Fabiens gb.disks seems to not be able to mount any more. and i didn't change anything. So i looked at the new built in DBus explorer to find UDisk2 filesystem Mount now has 2 args Label and Options according to that. Yet in the original DBus explorer from the farm it only shows one arg (see attached pic, orig DBus explorer is behind the gambas window, both showing the same item but different args) V weird BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.png Type: image/png Size: 245875 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Nov 30 20:13:09 2022 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 30 Nov 2022 19:13:09 +0000 Subject: [Gambas-user] DBus Explorer seems different? In-Reply-To: References: Message-ID: Ahh, Seems built in DBus explorer is doing something fairly wrong looking again at that snapshot as it's listing "options as collection" quite a, unusual amount. On Wed, 30 Nov 2022 at 19:09, Bruce Steers wrote: > Oddly one of my programs that uses a previous version of Fabiens gb.disks > seems to not be able to mount any more. and i didn't change anything. > > So i looked at the new built in DBus explorer to find UDisk2 filesystem > Mount now has 2 args Label and Options according to that. > > Yet in the original DBus explorer from the farm it only shows one arg (see > attached pic, orig DBus explorer is behind the gambas window, both showing > the same item but different args) > > V weird > BruceS > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Nov 30 20:17:57 2022 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 30 Nov 2022 11:17:57 -0800 (PST) Subject: [Gambas-user] "Groups" of optional arguments In-Reply-To: References: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> Message-ID: <559838677.11280.1669835877849.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 30, 2022, at 8:15 AM, T Lee Davidson t.lee.davidson at gmail.com wrote: > On 11/30/22 03:04, BB wrote: >> Maybe I'm overthinking this or maybe my brain is just not as sharp as it used to >> be. >> >> Short explanation: I think I need to group optional arguments something along >> the lines of : >> >> Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer = 0), >> Optional ( arg4 As Date = Null, arg5 as Integer = >> -Inf ) ) >> >> The illogical thinking is that calls to the method >> >> * must have arg1 provided and >> * either >> o arg2 and possibly arg3 >> * or >> o possibly arg4 and possibly arg5 >> >> The example is simpified, btw. ? >> >> Is there a way to do this? >> >> > > This may be a gross misunderstanding of the problem. But, couldn't you pass in > the callee's class as a required parameter in > addition to the reqion, and pass all the optionals as variadic or, simply, > positional optionals? > > Ie.: given Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer > = 0), Optional ( arg4 As Date = Null, arg5 as > Integer = -Inf ) ) > > data = XYZ(regionid, Object.Type(Me), ...) , or > data = XYZ(regionid, Object.Type(Me), Optional arg3 as blah, Optional arg4 as > blahblah, etc.) > > > and handle the myriad optional arguments based on who's calling? Or would that > lead to more spaghetti code? > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- How about from your example the following script example of parsing parameters: #!/usr/bin/env gbs3 ' Gambas Script File Created 11/30/2022 17:09:34.817 class xyz Static Public Sub _call(regionid As String, ...) On param.count Goto sublabel1, sublabelerr, sublabel2, sublabelerr, sublabel4 ' 1 parm, 2 parms, 3 params 4 params Dim a As Integer Dim b As String Dim offset As Integer = 0 Dim OutputLine As String = "" SubLabel1: GoSub sublabel11 Print "editVariety" & Outputline sublabel11: ' one parameter OutputLine = " -r " & regionID 'do stuff here Return Sublabel2: ' three parameters GoSub SubLabel11 If Not (TypeOf(param[0]) = gb.boolean) Then GoSub SubLabel22 Else GoSub Sublabel21 Endif Print "editVariety " & outputLine Return Sublabel21: ' First parm was boolean ' Print "optional Parm set with boolean as first and ";; param.count;; "params Values =";; param[0];; ",";; param[1];; OutputLine &= " -v " & Str(param[0]) & " -Y " & Str(Param[1]) ' do stuff here Return SubLabel22: ' First param was not boolean 'If Param.count = 2 Then Print "optional Parm set not boolean as first and ";; param.count;; "params Values =";; Else Print ",";; 'Print param[0 + offset];; ",";; param[1 + offset] outputline &= " -u " & Str(Param[0 + offset]) & " -q " & Str(Param[1 + offset]) ' do stuff here Return SublabelErr: ' Invalid parm count Print error.raise("Error : Not enough parameters (" & Str(Param.count) & ")") Sublabel4: 'Print "Recieved 4 parameters" offset = 2 GoSub sublabel11 GoSub sublabel21 GoSub sublabel22 Print "editVariety" & OutPutline End end class xyz("Sacramento") Try xyz("Boston", True) If Error Then Print "Error", "Boston";; Error.text xyz("Boston", True, "1987") Try xyz("Washinton", "Badcnt") If Error Then Print "Error", "Washinton";; Error.text xyz("Washinton", "Arg3", "Arg4") Try xyz("Daton", True, "2007", "arg3") If Error Then Print "Error", "Daton";; Error.text xyz("Daton", True, "2008", "arg3", "arg4") QUIT 0 catch Print error.text&"\n" & error.where From brian at westwoodsvcs.com Wed Nov 30 20:32:35 2022 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 30 Nov 2022 11:32:35 -0800 (PST) Subject: [Gambas-user] "Groups" of optional arguments In-Reply-To: <559838677.11280.1669835877849.JavaMail.zimbra@westwoodsvcs.com> References: <1b1a0169-9529-66fa-18c7-3e46765162d9@gmail.com> <559838677.11280.1669835877849.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <302959114.11289.1669836755097.JavaMail.zimbra@westwoodsvcs.com> ----- On Nov 30, 2022, at 11:17 AM, Brian G brian at westwoodsvcs.com wrote: > ----- On Nov 30, 2022, at 8:15 AM, T Lee Davidson t.lee.davidson at gmail.com > wrote: > >> On 11/30/22 03:04, BB wrote: >>> Maybe I'm overthinking this or maybe my brain is just not as sharp as it used to >>> be. >>> >>> Short explanation: I think I need to group optional arguments something along >>> the lines of : >>> >>> Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer = 0), >>> Optional ( arg4 As Date = Null, arg5 as Integer = >>> -Inf ) ) >>> >>> The illogical thinking is that calls to the method >>> >>> * must have arg1 provided and >>> * either >>> o arg2 and possibly arg3 >>> * or >>> o possibly arg4 and possibly arg5 >>> >>> The example is simpified, btw. ? >>> >>> Is there a way to do this? >>> >>> >> >> This may be a gross misunderstanding of the problem. But, couldn't you pass in >> the callee's class as a required parameter in >> addition to the reqion, and pass all the optionals as variadic or, simply, >> positional optionals? >> >> Ie.: given Sub XYZ ( arg1 As String, Optional ( arg2 As Boolean, arg3 As Integer >> = 0), Optional ( arg4 As Date = Null, arg5 as >> Integer = -Inf ) ) >> >> data = XYZ(regionid, Object.Type(Me), ...) , or >> data = XYZ(regionid, Object.Type(Me), Optional arg3 as blah, Optional arg4 as >> blahblah, etc.) >> >> >> and handle the myriad optional arguments based on who's calling? Or would that >> lead to more spaghetti code? >> >> >> -- >> Lee >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > How about from your example the following script example of parsing parameters: > > #!/usr/bin/env gbs3 > ' Gambas Script File Created 11/30/2022 17:09:34.817 > > class xyz > > Static Public Sub _call(regionid As String, ...) > > On param.count Goto sublabel1, sublabelerr, sublabel2, sublabelerr, sublabel4 ' > 1 parm, 2 parms, 3 params 4 params > > Dim a As Integer > Dim b As String > Dim offset As Integer = 0 > Dim OutputLine As String = "" > > SubLabel1: > GoSub sublabel11 > Print "editVariety" & Outputline > > sublabel11: ' one parameter > OutputLine = " -r " & regionID > 'do stuff here > Return > > Sublabel2: ' three parameters > GoSub SubLabel11 > > If Not (TypeOf(param[0]) = gb.boolean) Then > GoSub SubLabel22 > Else > GoSub Sublabel21 > Endif > Print "editVariety " & outputLine > Return > > Sublabel21: ' First parm was boolean > ' Print "optional Parm set with boolean as first and ";; param.count;; "params > Values =";; param[0];; ",";; param[1];; > OutputLine &= " -v " & Str(param[0]) & " -Y " & Str(Param[1]) > ' do stuff here > Return > > SubLabel22: ' First param was not boolean > 'If Param.count = 2 Then Print "optional Parm set not boolean as first and ";; > param.count;; "params Values =";; Else Print ",";; > 'Print param[0 + offset];; ",";; param[1 + offset] > outputline &= " -u " & Str(Param[0 + offset]) & " -q " & Str(Param[1 + offset]) > ' do stuff here > Return > > SublabelErr: ' Invalid parm count > Print > error.raise("Error : Not enough parameters (" & Str(Param.count) & ")") > > Sublabel4: > 'Print "Recieved 4 parameters" > offset = 2 > GoSub sublabel11 > GoSub sublabel21 > GoSub sublabel22 > Print "editVariety" & OutPutline > > End > end class > > > xyz("Sacramento") > Try xyz("Boston", True) > If Error Then Print "Error", "Boston";; Error.text > xyz("Boston", True, "1987") > Try xyz("Washinton", "Badcnt") > If Error Then Print "Error", "Washinton";; Error.text > xyz("Washinton", "Arg3", "Arg4") > Try xyz("Daton", True, "2007", "arg3") > If Error Then Print "Error", "Daton";; Error.text > xyz("Daton", True, "2008", "arg3", "arg4") > > > > QUIT 0 > catch > Print error.text&"\n" & error.where > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Sorry forgot to mention Basically this line should be looking for the parameters pattern If Not (TypeOf(param[0]) = gb.boolean) Then Testing for possible identifiable patterns for number of parameters passed "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G From benoit.minisini at gambas-basic.org Wed Nov 30 21:53:46 2022 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 30 Nov 2022 21:53:46 +0100 Subject: [Gambas-user] DBus Explorer seems different? In-Reply-To: References: Message-ID: <3c226ac8-2b30-84c5-5f1c-5b1dca7b09db@gambas-basic.org> Le 30/11/2022 ? 20:13, Bruce Steers a ?crit?: > Ahh, Seems built in DBus explorer is doing something fairly wrong > looking again at that snapshot as it's listing "options as collection" > quite a, unusual amount. > > > On Wed, 30 Nov 2022 at 19:09, Bruce Steers > wrote: > > Oddly one of my programs that uses a previous version of Fabiens > gb.disks seems to not be able to mount any more. and i didn't change > anything. > > So i looked at the new built in DBus explorer to find UDisk2 > filesystem Mount now has 2 args Label and Options according to that. > > Yet in the original DBus explorer from the farm it only shows one > arg (see attached pic, orig DBus explorer is behind the gambas > window, both showing the same item but different args) > > V weird > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- It's fixed in master. Regards, -- Beno?t Minisini.