From t.lee.davidson at gmail.com Wed Mar 1 00:24:40 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 28 Feb 2023 18:24:40 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> References: <5120aad5-882a-7fa4-ab25-10bb7e0f9de4@gmail.com> <9c7b8af0-d77e-c117-b526-05ead2fe6f80@gmail.com> <1d1d60c1-8464-2314-a477-7f7381d841ab@gmail.com> <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> Message-ID: <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> On 2/28/23 17:33, Christof Thalhofer wrote: > >> I?was?referring?to?a?timeout?on?the?connection?itself,?ie.?the?time >> that?must?pass?before?a?stale/inactive?connection?is?freed?by?the >> server?so?a?new?one?can?be?created.?If?'max_connections'?has?been >> reached,?no?new?connections?can?be?created?until?one?or?more?are >> freed. > > Yes, but this would be reproducible. But it is not. It happens by random. And it can happen in the first second. Usually network > timeouts happen after a couple of seconds at minimum due to the inherent unreliability?of?network?connections > > Ok,?a?new?observation: > > If?it?happens?this?gambas?process?runs?at?100?percent?forever: > > /usr/bin/gbx3 -g -f /tmp/gambas.1000/gambas3-ide-debug-6552. -H /home/doms/mynewpage.de/webapp > > I?can?hear?the?fan?hissing?right?now. > > Alles?Gute > > Christof?Thalhofer Okay. But, it may only seem random merely because we don't know what triggers it. I don't know exactly how the embedded server works, but perhaps is uses some sort of caching to maintain its state (and connection data). If so, and the cache isn't getting cleared properly between launches, that could be part of the reason it chokes. How long are you waiting between relaunches/retries? -- Lee From t.lee.davidson at gmail.com Wed Mar 1 00:37:05 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 28 Feb 2023 18:37:05 -0500 Subject: [Gambas-user] WebTable Background color of row selection In-Reply-To: <20230228192349.M24633@455.co.il> References: <20230227194522.M71388@455.co.il> <20230227210842.M54807@455.co.il> <9082daee-4c4b-51f7-cef3-b7ba635695b9@gmail.com> <20230228055140.M89974@455.co.il> <20230228182129.M11581@455.co.il> <20230228192349.M24633@455.co.il> Message-ID: <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> On 2/28/23 14:28, Mayost Sharon wrote: > Hello > > It is not good that I define the yellow background color in both cells > I want the table to be: > Column 0 has a yellow background color > Column 1 has a white background color > But only when I select a certain row then it will color the entire row I selected to a blue background color > > I was able to do what I want but the problem is that it only works when I execute > Me.Reload() > And it doesn't seem successful because it refreshes the whole page every time > Attached is an example of what I did > > Is there a better way? > > Thank you Try Me.Refresh. -- Lee From chrisml at deganius.de Wed Mar 1 08:30:25 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 1 Mar 2023 08:30:25 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> References: <5120aad5-882a-7fa4-ab25-10bb7e0f9de4@gmail.com> <9c7b8af0-d77e-c117-b526-05ead2fe6f80@gmail.com> <1d1d60c1-8464-2314-a477-7f7381d841ab@gmail.com> <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> Message-ID: Am 01.03.23 um 00:24 schrieb T Lee Davidson: > Okay. But, it may only seem random merely because we don't know what > triggers it. > > I don't know exactly how the embedded server works, but perhaps is > uses some sort of caching to maintain its state (and connection > data). If so, and the cache isn't getting cleared properly between > launches, that could be part of the reason it chokes. > > How long are you waiting between relaunches/retries? Between two seconds and three days. :-) Ok. Claus provided an application with which it happens. Did you test it? I think we should write a bug and add the application there. What I can just imagine is that there is an infinite loop anywhere, my observation speaks for it. The ugly thing is that it happens by random which makes it difficult to debug. It can happen at the first request or one can request 50 times from the application until it occurs ... One thing is sure: it happens. 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 fabien.toniutti at free.fr Wed Mar 1 08:31:15 2023 From: fabien.toniutti at free.fr (Fabien TONIUTTI) Date: Wed, 1 Mar 2023 08:31:15 +0100 Subject: [Gambas-user] Drop text on not selected line of ListBox Message-ID: <8d27eae0-2ac4-f29a-04b8-a4952b9ad674@free.fr> !! All in the title !! GB3.18 What should be code written in Drop event method to change text to a non selected line in ListBox? (i think line should? be selected during mouseup) exemple: Public Sub Label1_Drag() Last.Drag(Label1.Text) End Public Sub ListBox1_Drop() "????????" = Drag.data End Thx a lot for your support From sharon at 455.co.il Wed Mar 1 11:44:20 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 1 Mar 2023 12:44:20 +0200 Subject: [Gambas-user] WebTable Background color of row selection In-Reply-To: <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> References: <20230227194522.M71388@455.co.il> <20230227210842.M54807@455.co.il> <9082daee-4c4b-51f7-cef3-b7ba635695b9@gmail.com> <20230228055140.M89974@455.co.il> <20230228182129.M11581@455.co.il> <20230228192349.M24633@455.co.il> <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> Message-ID: <20230301103503.M2702@455.co.il> Hello Me.Refresh It works beautifully Sometimes when I scroll the table down with the scroll and then immediately I select a row it does not show me the selection Then I keep scrolling and I see that he has selected another row Is this the end of the solution or should we look for a better solution? It seems to me that it would be better if there was a CSS way to fix it But I couldn't figure out how to do it thank you very much ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Tue, 28 Feb 2023 18:37:05 -0500 Subject: Re: [Gambas-user] WebTable Background color of row selection > On 2/28/23 14:28, Mayost Sharon wrote: > > Hello > > > > It is not good that I define the yellow background color in both cells > > I want the table to be: > > Column 0 has a yellow background color > > Column 1 has a white background color > > But only when I select a certain row then it will color the entire row I selected to a blue background color > > > > I was able to do what I want but the problem is that it only works when I execute > > Me.Reload() > > And it doesn't seem successful because it refreshes the whole page every time > > Attached is an example of what I did > > > > Is there a better way? > > > > Thank you > > Try Me.Refresh. > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- From sharon at 455.co.il Wed Mar 1 11:47:21 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 1 Mar 2023 12:47:21 +0200 Subject: [Gambas-user] WebTable Background color of row selection In-Reply-To: <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> References: <20230227194522.M71388@455.co.il> <20230227210842.M54807@455.co.il> <9082daee-4c4b-51f7-cef3-b7ba635695b9@gmail.com> <20230228055140.M89974@455.co.il> <20230228182129.M11581@455.co.il> <20230228192349.M24633@455.co.il> <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> Message-ID: <20230301104721.M25335@455.co.il> Hello Sorry again, I forgot to attach the sample Now the sample is attached Me.Refresh It works beautifully Sometimes when I scroll the table down with the scroll and then immediately I select a row it does not show me the selection Then I keep scrolling and I see that he has selected another row Is this the end of the solution or should we look for a better solution? It seems to me that it would be better if there was a CSS way to fix it But I couldn't figure out how to do it thank you very much ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Tue, 28 Feb 2023 18:37:05 -0500 Subject: Re: [Gambas-user] WebTable Background color of row selection > On 2/28/23 14:28, Mayost Sharon wrote: > > Hello > > > > It is not good that I define the yellow background color in both cells > > I want the table to be: > > Column 0 has a yellow background color > > Column 1 has a white background color > > But only when I select a certain row then it will color the entire row I selected to a blue background color > > > > I was able to do what I want but the problem is that it only works when I execute > > Me.Reload() > > And it doesn't seem successful because it refreshes the whole page every time > > Attached is an example of what I did > > > > Is there a better way? > > > > Thank you > > Try Me.Refresh. > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: test3.zip Type: application/zip Size: 18651 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Mar 1 12:40:42 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 11:40:42 +0000 Subject: [Gambas-user] Drop text on not selected line of ListBox In-Reply-To: <8d27eae0-2ac4-f29a-04b8-a4952b9ad674@free.fr> References: <8d27eae0-2ac4-f29a-04b8-a4952b9ad674@free.fr> Message-ID: On Wed, 1 Mar 2023 at 07:32, Fabien TONIUTTI wrote: > !! All in the title !! GB3.18 > > What should be code written in Drop event method to change text to a non > selected line in ListBox? > > (i think line should be selected during mouseup) > > exemple: > > Public Sub Label1_Drag() > Last.Drag(Label1.Text) > End > > Public Sub ListBox1_Drop() > "????????" = Drag.data > End > > Thx a lot for your support > you can use FindChild to get the gridview object inside the listbox then use gridview RowAt to get the item. Public Sub ListBox1_Drop() Dim gv As Gridview = ListBox1.FindChild(Drag.X, Drag.Y) Dim iIndex As Integer = gv.RowAt(Drag.Y) ListBox1[iIndex].Text = Trim(Drag.Paste("text/plain")) End BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Wed Mar 1 13:14:04 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Wed, 1 Mar 2023 13:14:04 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <1dcffe65-5643-eca3-7f8f-dee384da6b7c@t-online.de> References: <1dcffe65-5643-eca3-7f8f-dee384da6b7c@t-online.de> Message-ID: <954f2b39-0ab0-7540-2694-01883c43bdb2@freenet.de> On /Wed Mar 1 08:30:25 CET 2023 Christof Thalhofer wrote: > think we should write a bug and add the application there. I agree and take care of it. The problem seems to relate to the required multiple requests to get embedded images, media and JavaScripts to the browser which gb.httpd has to handle file by file through a single socket (HTTP/1.0). For the time being all these files have to be located in the .public directory, which is another gb.httpd usability issue. But I suggest not to stress this before the main problem is solved. Best regards Claus From sharon at 455.co.il Wed Mar 1 13:41:55 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 1 Mar 2023 14:41:55 +0200 Subject: [Gambas-user] Event WebTable.Click Message-ID: <20230301123541.M4136@455.co.il> Hello I am trying that when I click on an element inside a cell in the table it will respond to the click event Clicking with the mouse does not trigger the click event Even if I click on the cell and if I click on the button that I put inside the cell Is there a bug? Or I misunderstood what the click event is supposed to do I am attaching an example file Thank you -------------- next part -------------- A non-text attachment was scrubbed... Name: webtable1.zip Type: application/zip Size: 17577 bytes Desc: not available URL: From bsteers4 at gmail.com Wed Mar 1 13:50:17 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 12:50:17 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230301123541.M4136@455.co.il> References: <20230301123541.M4136@455.co.il> Message-ID: On Wed, 1 Mar 2023 at 12:25, Mayost Sharon wrote: > Hello > > I am trying that when I click on an element inside a cell in the table it > will respond to the click event > > Clicking with the mouse does not trigger the click event > Even if I click on the cell and if I click on the button that I put inside > the cell > > Is there a bug? Or I misunderstood what the click event is supposed to do > > I am attaching an example file > > Thank you > you probably need to use Data.Control so it configures properly and not just insert a button using Data.Html This works and fires the WebTable_Click event okay. Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As WebTableData) Select Case Column Case 0 Data.Background = Color.SetAlpha(Color.Yellow, 192) Data.Text = "Data: " & CString(Row) & "_" & CString(Column) Case 1 Dim wb As WebButton = New WebButton(Me) wb.Text = "Button: " & CString(Row) & "_" & CString(Column) wb.Class = "button is-danger" Data.Control = wb End Select End -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 1 14:02:53 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 13:02:53 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230301123541.M4136@455.co.il> References: <20230301123541.M4136@455.co.il> Message-ID: On Wed, 1 Mar 2023 at 12:25, Mayost Sharon wrote: > Hello > > I am trying that when I click on an element inside a cell in the table it > will respond to the click event > > Clicking with the mouse does not trigger the click event > Even if I click on the cell and if I click on the button that I put inside > the cell > > Is there a bug? Or I misunderstood what the click event is supposed to do > > I am attaching an example file > > Thank you > Note: if you do not use the proper gambas way of making a control and just use your own html then the control will be missing required things like click event triggers. Your example code that added a button did not even have a onclick event set for the button so of course it did not fire one so the WebTable_Click event does not trigger. So you cannot just simply insert things using your own html, they must be created/configured correctly (using gb.web.gui methods) to work correctly. Good luck BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Mar 1 16:27:57 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 1 Mar 2023 16:27:57 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <954f2b39-0ab0-7540-2694-01883c43bdb2@freenet.de> References: <1dcffe65-5643-eca3-7f8f-dee384da6b7c@t-online.de> <954f2b39-0ab0-7540-2694-01883c43bdb2@freenet.de> Message-ID: <67abe2dd-2559-ee99-85e0-806f1ed24b9b@deganius.de> Am 01.03.23 um 13:14 schrieb Claus Dietrich: > On /Wed Mar 1 08:30:25 CET 2023 Christof Thalhofer wrote: > > > think we should write a bug and add the application there. > > I agree and take care of it. Thank you! > For the time being all these files have to be located in the .public > directory, > which is another gb.httpd usability issue. But I suggest not to stress this > before the main problem is solved. This bug is already written: https://gambaswiki.org/bugtracker/edit?object=BUG.2706 Btw: Please answer to *existing mails in a thread* by using "Reply to" in your Thunderbird instead of creating a new thread with the same topic as you did in the mail I am just replying to. Alles Gute Christof Thalhofer -- [x] nail here for new monitor From sharon at 455.co.il Wed Mar 1 17:49:03 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 1 Mar 2023 18:49:03 +0200 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> Message-ID: <20230301160556.M68316@455.co.il> Thank you very much I didn't see that there is Data.Control now 1. Is it possible to combine multiple controls into one cell? 2. If I understood correctly, only controls that have a click event can be integrated into the cell (if I want it to respond to the event) But only a button control responds to the event I am attaching an example file Many thanks again ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Wed, 1 Mar 2023 12:50:17 +0000 Subject: Re: [Gambas-user] Event WebTable.Click > On Wed, 1 Mar 2023 at 12:25, Mayost Sharon wrote: > > > Hello > > > > I am trying that when I click on an element inside a cell in the table it > > will respond to the click event > > > > Clicking with the mouse does not trigger the click event > > Even if I click on the cell and if I click on the button that I put inside > > the cell > > > > Is there a bug? Or I misunderstood what the click event is supposed to do > > > > I am attaching an example file > > > > Thank you > > > > you probably need to use Data.Control so it configures properly and not > just insert a button using Data.Html > This works and fires the WebTable_Click event okay. > > Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As > WebTableData) > > Select Case Column > Case 0 > Data.Background = Color.SetAlpha(Color.Yellow, 192) > Data.Text = "Data: " & CString(Row) & "_" & CString(Column) > Case 1 > Dim wb As WebButton = New WebButton(Me) > wb.Text = "Button: " & CString(Row) & "_" & CString(Column) > wb.Class = "button is-danger" > Data.Control = wb > End Select > > End ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: webtable2.zip Type: application/zip Size: 18445 bytes Desc: not available URL: From fabien.toniutti at free.fr Wed Mar 1 17:54:36 2023 From: fabien.toniutti at free.fr (Fabien TONIUTTI) Date: Wed, 1 Mar 2023 17:54:36 +0100 Subject: [Gambas-user] Inode from file and Gambas Message-ID: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> Hi every one Is existing one Gambas command to get File inode from its name ? Or reverse ,get name from inode? gb3.18 MINT ext4 Thx From jussi.lahtinen at gmail.com Wed Mar 1 19:00:44 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 1 Mar 2023 20:00:44 +0200 Subject: [Gambas-user] Inode from file and Gambas In-Reply-To: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> References: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> Message-ID: Does this give you what you need? https://gambaswiki.org/wiki/comp/gb/stat Jussi On Wed, Mar 1, 2023 at 6:55?PM Fabien TONIUTTI wrote: > Hi every one > > Is existing one Gambas command to get File inode from its name ? > > Or reverse ,get name from inode? > > gb3.18 MINT ext4 > > Thx > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Wed Mar 1 19:04:30 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 1 Mar 2023 13:04:30 -0500 Subject: [Gambas-user] Inode from file and Gambas In-Reply-To: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> References: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> Message-ID: <4e921f1e-2816-f216-d009-6e3d68573913@gmail.com> On 3/1/23 11:54, Fabien TONIUTTI wrote: > Hi every one > > Is existing one Gambas command to get File inode from its name ? > > Or reverse ,get name from inode? > > gb3.18 MINT ext4 > > Thx There is the Stat command that returns a Stat object. But, that object does not have an Inode property. You would need to use Shell thusly: Shell("stat --printf=%i " & [filename] To sOutput Getting a filename from an inode number can be problematic. -- Lee From t.lee.davidson at gmail.com Wed Mar 1 19:12:12 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 1 Mar 2023 13:12:12 -0500 Subject: [Gambas-user] WebTable Background color of row selection In-Reply-To: <20230301104721.M25335@455.co.il> References: <20230227194522.M71388@455.co.il> <20230227210842.M54807@455.co.il> <9082daee-4c4b-51f7-cef3-b7ba635695b9@gmail.com> <20230228055140.M89974@455.co.il> <20230228182129.M11581@455.co.il> <20230228192349.M24633@455.co.il> <5fdddba7-d420-c7a3-0459-11571afc0fdf@gmail.com> <20230301104721.M25335@455.co.il> Message-ID: <508c20a7-507e-9eac-7546-40810d265456@gmail.com> On 3/1/23 05:47, Mayost Sharon wrote: > Hello > > Sorry again, I forgot to attach the sample > Now the sample is attached > > Me.Refresh > It works beautifully > > Sometimes when I scroll the table down with the scroll and then immediately I select a row it does not show me the selection > Then I keep scrolling and I see that he has selected another row > > Is this the end of the solution or should we look for a better solution? > > It seems to me that it would be better if there was a CSS way to fix it > But I couldn't figure out how to do it > > thank you very much > I can't reproduce that behavior. It seems to work just fine. -- Lee From gambas.fr at gmail.com Wed Mar 1 20:05:05 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Wed, 1 Mar 2023 20:05:05 +0100 Subject: [Gambas-user] Scaled property to False by default In-Reply-To: <40f729fe-231e-a5a5-cf53-d9d811ee99b7@free.fr> References: <40f729fe-231e-a5a5-cf53-d9d811ee99b7@free.fr> Message-ID: Le mar. 28 f?vr. 2023 ? 22:31, Fabien TONIUTTI a ?crit : > Hi every one, > > Is it possible do define the 'SCALED' property of all form in my project > to FALSE by default? Do we have this option in IDE? or in .conf? > > ...and is it possible to define all FONT from all FORMS to 'NOT > PROPORTIONAL' by d?fault too? > > thx > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > No.. but What for ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Wed Mar 1 20:41:09 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 1 Mar 2023 14:41:09 -0500 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230301160556.M68316@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> Message-ID: <334a19d1-7c8d-a5b2-d4d1-da4a33b63c57@gmail.com> On 3/1/23 11:49, Mayost Sharon wrote: > Thank you very much > I didn't see that there is Data.Control > > now > 1. Is it possible to combine multiple controls into one cell? > 2. If I understood correctly, only controls that have a click event can be integrated into the cell (if I want it to respond to the event) > But only a button control responds to the event > I am attaching an example file > > Many thanks again Just FYI, by creating controls without any condition, you were creating controls owned by, and displayed in, the WebForm. I made some modifications that seem to work well, unless the form is refreshed by the client. (attached) Unfortunately, this answers neither of your questions. I do not know the answer to #1. And, I can't figure out the cause of #2 but confirm the behavior. -- Lee -------------- next part -------------- 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 fKp1hACgAAA= From t.lee.davidson at gmail.com Wed Mar 1 20:46:19 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 1 Mar 2023 14:46:19 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: References: <5120aad5-882a-7fa4-ab25-10bb7e0f9de4@gmail.com> <9c7b8af0-d77e-c117-b526-05ead2fe6f80@gmail.com> <1d1d60c1-8464-2314-a477-7f7381d841ab@gmail.com> <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> Message-ID: <312729a5-709b-d43a-5bd0-1be0c71d67fc@gmail.com> On 3/1/23 02:30, Christof Thalhofer wrote: > Am 01.03.23 um 00:24 schrieb T Lee Davidson: > >> Okay. But, it may only seem random merely because we don't know what >> triggers it. >> >> I don't know exactly how the embedded server works, but perhaps is >> uses some sort of caching to maintain its state (and connection >> data). If so, and the cache isn't getting cleared properly between >> launches, that could be part of the reason it chokes. >> >> How long are you waiting between relaunches/retries? > > Between two seconds and three days. :-) LOL. > Ok. Claus provided an application with which it happens. No, I have not. I'll have to go find it. While I'm there, I'll try to find the discussion from when I raised this issue, I think, a couple of years ago. -- Lee From t.lee.davidson at gmail.com Wed Mar 1 21:19:59 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 1 Mar 2023 15:19:59 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <312729a5-709b-d43a-5bd0-1be0c71d67fc@gmail.com> References: <5120aad5-882a-7fa4-ab25-10bb7e0f9de4@gmail.com> <9c7b8af0-d77e-c117-b526-05ead2fe6f80@gmail.com> <1d1d60c1-8464-2314-a477-7f7381d841ab@gmail.com> <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> <312729a5-709b-d43a-5bd0-1be0c71d67fc@gmail.com> Message-ID: <6969cd90-6c33-839a-2416-b3d7cc26a5b2@gmail.com> On 3/1/23 14:46, T Lee Davidson wrote: > >> Ok.?Claus?provided?an?application?with?which?it?happens. > > No, I have not. I'll have to go find it. While I'm there, I'll try to find the discussion from when I raised this issue, I > think,?a?couple?of?years?ago. Okay, it wasn't even a year ago. First asked: https://lists.gambas-basic.org/pipermail/user/2022-June/076211.html Asked again: https://lists.gambas-basic.org/pipermail/user/2022-June/076222.html I got webapp4_Prelease-3.7.7.tar.gz from the link Clause posted. But, then Hans sent me an updated version, webapp4-3.7.12.tar.gz. With v3.7.12 I cannot reproduce the issue. I have launched and relaunched it a number of times immediately after another; running through all the top menu items each time. It works fine here. :-\ -- Lee From sharon at 455.co.il Wed Mar 1 21:48:19 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 1 Mar 2023 22:48:19 +0200 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <334a19d1-7c8d-a5b2-d4d1-da4a33b63c57@gmail.com> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <334a19d1-7c8d-a5b2-d4d1-da4a33b63c57@gmail.com> Message-ID: <20230301204640.M30255@455.co.il> Hello I can't decompress your file The file seems to have been processed by Google You can resend a file Thanks ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Wed, 1 Mar 2023 14:41:09 -0500 Subject: Re: [Gambas-user] Event WebTable.Click > On 3/1/23 11:49, Mayost Sharon wrote: > > Thank you very much > > I didn't see that there is Data.Control > > > > now > > 1. Is it possible to combine multiple controls into one cell? > > 2. If I understood correctly, only controls that have a click event can be integrated into the cell (if I want it to respond to the event) > > But only a button control responds to the event > > I am attaching an example file > > > > Many thanks again > > Just FYI, by creating controls without any condition, you were creating > controls owned by, and displayed in, the WebForm. I made some modifications > that seem to work well, unless the form is refreshed by the client. (attached) > > Unfortunately, this answers neither of your questions. I do not know the > answer to #1. And, I can't figure out the cause of #2 but confirm the behavior. > > -- > Lee ------- End of Original Message ------- From bsteers4 at gmail.com Wed Mar 1 21:34:21 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 20:34:21 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230301204640.M30255@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <334a19d1-7c8d-a5b2-d4d1-da4a33b63c57@gmail.com> <20230301204640.M30255@455.co.il> Message-ID: It decompressed fine here Do you not know about gmail.txt archives? Read here.. https://gambaswiki.org/wiki/howto/opengmailtxt Open it in gambas IDE using the "Uncompress file" option twice , once to convert from text to archive then again to uncompress. BruceS On Wed, 1 Mar 2023 at 20:28, Mayost Sharon wrote: > Hello > > I can't decompress your file > The file seems to have been processed by Google > > You can resend a file > > Thanks > ---------- Original Message ----------- > From: T Lee Davidson > To: user at lists.gambas-basic.org > Sent: Wed, 1 Mar 2023 14:41:09 -0500 > Subject: Re: [Gambas-user] Event WebTable.Click > > > On 3/1/23 11:49, Mayost Sharon wrote: > > > Thank you very much > > > I didn't see that there is Data.Control > > > > > > now > > > 1. Is it possible to combine multiple controls into one cell? > > > 2. If I understood correctly, only controls that have a click event > can be integrated into the cell (if I want it to respond to the event) > > > But only a button control responds to the event > > > I am attaching an example file > > > > > > Many thanks again > > > > Just FYI, by creating controls without any condition, you were creating > > controls owned by, and displayed in, the WebForm. I made some > modifications > > that seem to work well, unless the form is refreshed by the client. > (attached) > > > > Unfortunately, this answers neither of your questions. I do not know the > > answer to #1. And, I can't figure out the cause of #2 but confirm the > behavior. > > > > -- > > Lee > ------- End of Original Message ------- > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 1 21:58:20 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 20:58:20 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230301160556.M68316@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> Message-ID: On Wed, 1 Mar 2023 at 16:30, Mayost Sharon wrote: > Thank you very much > I didn't see that there is Data.Control > > now > 1. Is it possible to combine multiple controls into one cell? > Have you tried making the .Control a panel with items? > 2. If I understood correctly, only controls that have a click event can be > integrated into the cell (if I want it to respond to the event) > But only a button control responds to the event > I am attaching an example file > I think maybe you do not want the Click event but should use 'As "HandlerName"' on the Buttons Like below i create 2 buttons in a container, add the container as .Control object and use BUT_Click to get clicks Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As WebTableData) Select Case Column Case 0 Data.Background = Color.SetAlpha(Color.Yellow, 192) Data.Text = "Data: " & CString(Row) & "_" & CString(Column) Case 1 Dim wp As WebContainer = New WebContainer(Me) wp.Arrangement = Arrange.Horizontal wp.Spacing = True wp.Height = "30px" Dim wb As WebButton = New WebButton(wp) As "BUT" wb.Text = "ButtonFine: " & CString(Row) & "_" & CString(Column) wb = New WebButton(wp) As "BUT" wb.Text = "ButtonDanger: " & CString(Row) & "_" & CString(Column) wb.Class = "button is-danger" Data.Control = wp End Select End Public Sub BUT_Click() Message(Last.Text) End Good luck BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From fabien.toniutti at free.fr Wed Mar 1 23:54:41 2023 From: fabien.toniutti at free.fr (Fabien TONIUTTI) Date: Wed, 1 Mar 2023 23:54:41 +0100 Subject: [Gambas-user] Scaled property to False by default Message-ID: @t Fabien, Most of my machines don't have the same screen resolution, and differents linux distro don't have the same true type default fonts. That's why i have some problems on 32 computers in my customer's stations in europe. I have done one? profesionnal Gambas software 12 years ago, and disabled all scaled properties from all forms, all widgets, and all? fonts. Now it works perfectly, but it was long hours to remove scaled properties and fonts for all form (more than 40 form for every computer) I checked one by one every Form.class file to remove Movescaled property. By the way, maybe a bug i don't know. I ask : example : I have 2 vbox on my form inside these 2 vbox i have some widgets. I click on somevwhere on my form and CTRL+A to select all. I change font of all widget in one time. But if i click on one widget inside vbox, font didn't change. is it a bug? ;-) From bsteers4 at gmail.com Thu Mar 2 00:42:16 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 1 Mar 2023 23:42:16 +0000 Subject: [Gambas-user] Scaled property to False by default In-Reply-To: References: Message-ID: On Wed, 1 Mar 2023, 22:55 Fabien TONIUTTI, wrote: > @t Fabien, > > Most of my machines don't have the same screen resolution, and > differents linux distro don't have the same true type default fonts. > > That's why i have some problems on 32 computers in my customer's > stations in europe. > > I have done one profesionnal Gambas software 12 years ago, and disabled > all scaled properties from all forms, all widgets, and all fonts. > > Now it works perfectly, but it was long hours to remove scaled > properties and fonts for all form (more than 40 form for every computer) > > I checked one by one every Form.class file to remove Movescaled property. > > By the way, maybe a bug i don't know. I ask : > > > example : > > I have 2 vbox on my form > > inside these 2 vbox i have some widgets. > > I click on somevwhere on my form and CTRL+A to select all. > > I change font of all widget in one time. > > But if i click on one widget inside vbox, font didn't change. is it a bug? > > ;-) I would say no. Select all selects all the containers children. Not the grandchildren ? I wish there were as some way to set defaults. I always select spacing on my containers. Mostly all labels and checkboxes get autoresize unless their expanded to stop pango warnings. I may just see if I can edit my ide to support some default settings. Do you compile gambas? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Mar 2 01:08:21 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 2 Mar 2023 01:08:21 +0100 Subject: [Gambas-user] WebTable Background color of row selection In-Reply-To: <20230227194522.M71388@455.co.il> References: <20230227194522.M71388@455.co.il> Message-ID: <868af679-9ab7-a3a6-d71c-7ffa2c477582@gambas-basic.org> Le 27/02/2023 ? 20:55, Mayost Sharon a ?crit?: > Hello > > I am trying to create in WEBTABLE the contents of cells with HTML ELEMENT > It works > but > 1. When I select the row it marks the selection of the row in blue color but some cells are not selected with blue color. > 2. How can I change the background color of row selection > > I'm featuring a file > > Thank you > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Hi, In the last commit, I added that to the default CSS: TR.gw-selected > TD { background-color: inherit !important; } That way, the background color of a selected row is always stronger than the background color of its cells. If you want to change the default colors, just override the CSS. Regards, -- Beno?t Minisini. From jussi.lahtinen at gmail.com Thu Mar 2 01:27:29 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 2 Mar 2023 02:27:29 +0200 Subject: [Gambas-user] Scaled property to False by default In-Reply-To: References: Message-ID: > > Most of my machines don't have the same screen resolution, and ... With proper form design this shouldn't be an issue at all. Example, Gambas IDE works fine with different resolutions. ... differents linux distro don't have the same true type default fonts. > As far as I know this shouldn't be an issue either. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From vuott at tutanota.com Thu Mar 2 06:12:48 2023 From: vuott at tutanota.com (vuott at tutanota.com) Date: Thu, 2 Mar 2023 06:12:48 +0100 (CET) Subject: [Gambas-user] Inode from file and Gambas In-Reply-To: <4e921f1e-2816-f216-d009-6e3d68573913@gmail.com> References: <8920a7e7-ab45-0e31-a4d8-d55513303337@free.fr> <4e921f1e-2816-f216-d009-6e3d68573913@gmail.com> Message-ID: ...or you could use the "Extern" resource: Library "libc:6" Public Struct stat_ ? st_dev As Long ? st_ino As Long ? st_nlink As Long ? st_mode As Integer ? st_uid As Integer ? st_gid As Integer ? __pad0 As Integer ? st_rdev As Long ? st_size As Long ? st_blksize As Long ? st_blocks As Long ? st_atime As Long ? st_atimensec As Long ? st_mtime As Long ? st_mtimensec As Long ? st_ctime As Long ? st_ctimensec As Long ? __glibc_reserved[3] As Long End Struct Private Const _STAT_VER_LINUX As Integer = 1 ' int __xstat (_STAT_VER, __path, __statbuf) ' Get file attributes for FILE and put them in BUF. Private Extern __xstat(_STAT_VER As Integer, __path As String, __statbuf As Stat_) As Integer Public Sub Main() ? Dim i As Integer ? Dim st As New Stat_ ? i = __xstat(_STAT_VER_LINUX, "/path/of/file", st) ? If i < 0 Then Error.Raise("Error !") ?? Print st.st_ino End ----------------------------------------------------------------------- 1 mar 2023, 19:05 da t.lee.davidson at gmail.com: > On 3/1/23 11:54, Fabien TONIUTTI wrote: > >> Hi every one >> >> Is existing one Gambas command to get File inode from its name ? >> >> Or reverse ,get name from inode? >> >> gb3.18 MINT ext4 >> >> Thx >> > > There is the Stat command that returns a Stat object. But, that object does not have an Inode property. You would need to use Shell thusly: > Shell("stat --printf=%i " & [filename] To sOutput > > Getting a filename from an inode number can be problematic. > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Thu Mar 2 12:20:33 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Thu, 2 Mar 2023 12:20:33 +0100 Subject: [Gambas-user] Problem with Embedded Server Message-ID: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Sorry, if this opens a new thread again. It should be the last time. I hope I solved the bounce back problem with my provider for future posts. On 3/1/23 14:46, T Lee Davidson wrote: >I got webapp4_Prelease-3.7.7.tar.gz from the link Clause posted. But, then Hans sent me an updated version, webapp4-3.7.12.tar.gz. >With v3.7.12 I cannot reproduce the issue. I have launched and relaunched it a number of times immediately after another; >running through all the top menu items each time. It works fine here. :-\ As described it doesn't occur when launching the app. The stall happens when changing the selection of the menu tabs. I tested the v3.7.12 with the same result - hanging server. I recorded it in a screen video which can be downloaded here: https://magentacloud.de/s/YnsfGF7y762yrdK With best regards Claus From antonio.j.teixeira at gmail.com Thu Mar 2 15:42:55 2023 From: antonio.j.teixeira at gmail.com (Antonio Teixeira) Date: Thu, 2 Mar 2023 14:42:55 +0000 Subject: [Gambas-user] httpget issue Message-ID: Hi everyone, I am trying to use the httpget class in gambas but I am having issues. The curl that is working is : curl --location --request POST 'https://192.168.10.110:50301/api/user/Login' \ --header 'Content-Type: application/json' \ --data-raw '{ "username" : "a", "password" : "a" }' the answer is "code":0,"message":"No error","data":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzc3Njg3MjQuNjk2MTg0LCJpYXQiOjE2Nzc3Njc4MjQuNjk2MTY5LCJuYmYiOjE2Nzc3Njc4MjQuNjk2MTc5LCJyZW1vdGVBY2NvdW50IjpmYWxzZSwic3ViIjoiQ2FzaG1hdGljIEpXVCB0b2tlbiIsInVpZCI6MX0.498btABtMc40u57mLczvFasEL89llI9RlHC4dvlD_xA"}} The code I am using in gambas is : Private Sub DoLogin() Dim data As String Dim headers As New String[] Dim resposta As String hClient.URL = "https://192.168.10.110:50301/api/user/Login" hClient.Async = False hclient.Auth = Net.AuthNone hclient.SSL.VerifyHost = False hclient.SSL.VerifyPeer = False hClient.Timeout = 2 headers.Add("Content-Type: application/json") data = "username=a&password=a" hClient.Post("application/json", data) ', headers) 'hClient.get(headers) Resposta = hclient.Peek() Message(Resposta, "OK") End Sub I am getting always "Bad Request" Any help please? Thanks in advance. Atentamente / Regards Ant?nio Teixeira -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Thu Mar 2 15:52:07 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 2 Mar 2023 15:52:07 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> References: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Message-ID: Am 02.03.23 um 12:20 schrieb Claus Dietrich: > I tested the v3.7.12 with the same result - hanging server. I recorded > it in a screen video which can be downloaded > here: https://magentacloud.de/s/YnsfGF7y762yrdK You can upload it to the bug. The we have no such strong limits as in the ML. Alles Gute Christof Thalhofer -- [x] nail here for new monitor From sharon at 455.co.il Thu Mar 2 17:03:15 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 2 Mar 2023 18:03:15 +0200 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> Message-ID: <20230302155837.M26361@455.co.il> Hello Thanks The problem is that if you don't receive an event on clicking inside the table (WebTable_Click) we won't be able to know from which row and column the button was clicked And there is another problem that the table click event (WebTable_Click) only works if you add a button but the other controls do not transfer the click event to the table ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Wed, 1 Mar 2023 20:58:20 +0000 Subject: Re: [Gambas-user] Event WebTable.Click > On Wed, 1 Mar 2023 at 16:30, Mayost Sharon wrote: > > > Thank you very much > > I didn't see that there is Data.Control > > > > now > > 1. Is it possible to combine multiple controls into one cell? > > > > Have you tried making the .Control a panel with items? > > > 2. If I understood correctly, only controls that have a click event can be > > integrated into the cell (if I want it to respond to the event) > > But only a button control responds to the event > > I am attaching an example file > > > > I think maybe you do not want the Click event but should use 'As > "HandlerName"' on the Buttons > > Like below i create 2 buttons in a container, add the container as .Control > object and use BUT_Click to get clicks > > Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As > WebTableData) > > Select Case Column > Case 0 > Data.Background = Color.SetAlpha(Color.Yellow, 192) > Data.Text = "Data: " & CString(Row) & "_" & CString(Column) > Case 1 > Dim wp As WebContainer = New WebContainer(Me) > wp.Arrangement = Arrange.Horizontal > wp.Spacing = True > wp.Height = "30px" > Dim wb As WebButton = New WebButton(wp) As "BUT" > wb.Text = "ButtonFine: " & CString(Row) & "_" & CString(Column) > wb = New WebButton(wp) As "BUT" > wb.Text = "ButtonDanger: " & CString(Row) & "_" & CString(Column) > wb.Class = "button is-danger" > Data.Control = wp > End Select > > End > > Public Sub BUT_Click() > > Message(Last.Text) > > End > > Good luck > BruceS ------- End of Original Message ------- From benoit.minisini at gambas-basic.org Thu Mar 2 16:50:40 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 2 Mar 2023 16:50:40 +0100 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230302155837.M26361@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> Message-ID: Le 02/03/2023 ? 17:03, Mayost Sharon a ?crit?: > Hello > > Thanks > > The problem is that if you don't receive an event on clicking inside the table (WebTable_Click) we won't be able to know from which row and column the button was clicked > > And there is another problem that the table click event (WebTable_Click) only works if you add a button but the other controls do not transfer the click event to the table > WebTable is just a control made for displaying contents like rows from a database able. It's not like the GridView control. A WebGridView control should be made to fulfill your needs. Regards, -- Beno?t Minisini. From sharon at 455.co.il Thu Mar 2 17:35:16 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 2 Mar 2023 18:35:16 +0200 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> Message-ID: <20230302162931.M31066@455.co.il> Hello I know it's just for show but While I fill the cell with the button data.control=WebButton So when I click on the button that is in a certain cell I get an event of: WebTable1_Click(Row As Integer, Column As Integer) Then I can know from which row and which column the button is pressed And it provides me with information on how to access a database to retrieve the information I need The problem is that it only works with a button If I fill the cell with a check box It does not respond to a click event I am attaching the example again that shows what I mean Many thanks ---------- Original Message ----------- From: Benoit Minisini To: user at lists.gambas-basic.org Sent: Thu, 2 Mar 2023 16:50:40 +0100 Subject: Re: [Gambas-user] Event WebTable.Click > Le 02/03/2023 ? 17:03, Mayost Sharon a ?crit?: > > Hello > > > > Thanks > > > > The problem is that if you don't receive an event on clicking inside the table (WebTable_Click) we won't be able to know from which row and column the button was clicked > > > > And there is another problem that the table click event (WebTable_Click) only works if you add a button but the other controls do not transfer the click event to the table > > > > WebTable is just a control made for displaying contents like rows from a > database able. It's not like the GridView control. > > A WebGridView control should be made to fulfill your needs. > > Regards, > > -- > Beno?t Minisini. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: webtable2.zip Type: application/zip Size: 18445 bytes Desc: not available URL: From t.lee.davidson at gmail.com Thu Mar 2 17:16:43 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 2 Mar 2023 11:16:43 -0500 Subject: [Gambas-user] httpget issue In-Reply-To: References: Message-ID: <64c993aa-675d-132d-c8a2-8d87a4659db5@gmail.com> On 3/2/23 09:42, Antonio Teixeira wrote: > Hi everyone, > > I am trying to use the httpget class in gambas but I am having issues. > The curl that is working is : > [snip] > > The code I am using in gambas is : > > Private Sub DoLogin() > ? Dim data As String > ? Dim headers As New String[] > ? Dim resposta As String > > ? hClient.URL = "https://192.168.10.110:50301/api/user/Login " > ? hClient.Async = False > ? hclient.Auth = Net.AuthNone > ? hclient.SSL.VerifyHost = False > ? hclient.SSL.VerifyPeer = False > ? hClient.Timeout = 2 > ? headers.Add("Content-Type: application/json") > ? data = "username=a&password=a" > ? hClient.Post("application/json", data) ', headers) > ? 'hClient.get(headers) > ? Resposta = hclient.Peek() > ? Message(Resposta, "OK") > End Sub > > > I am getting always "Bad Request" > > Any help please? > > Thanks in advance. > > Atentamente / Regards > > Ant?nio Teixeira First off so that others don't get confused, there is no httpget class. I think you probably meant HttpClient. It appears the data you are sending is not in JSON format: data = "username=a&password=a" try: data = "{'username'='a'&'password'='a'}" Tip: The gb.util.web component has a JSON class that has encode and decode methods: https://gambaswiki.org/wiki/comp/gb.util.web/json (You may already know this, but others may not.) -- Lee From t.lee.davidson at gmail.com Thu Mar 2 17:21:02 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 2 Mar 2023 11:21:02 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> References: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Message-ID: On 3/2/23 06:20, Claus Dietrich wrote: [snip] > > On 3/1/23 14:46, T Lee Davidson wrote: >> I got webapp4_Prelease-3.7.7.tar.gz from the link Clause posted. But, then Hans sent me an updated version, >> webapp4-3.7.12.tar.gz. > >> With v3.7.12 I cannot reproduce the issue. I have launched and relaunched it a number of times immediately after another; >> running through all the top menu items each time. It works fine here. :-\ > > As described it doesn't occur when launching the app. The stall happens when changing the selection of the menu tabs. And, that is exactly what I did many times: "running through all the top menu items each time." I could not make it fail. [snip] -- Lee From bsteers4 at gmail.com Thu Mar 2 17:48:53 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 2 Mar 2023 16:48:53 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230302162931.M31066@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > Hello > > I know it's just for show > but > While I fill the cell with the button > data.control=WebButton > So when I click on the button that is in a certain cell I get an event of: > WebTable1_Click(Row As Integer, Column As Integer) > Then I can know from which row and which column the button is pressed > And it provides me with information on how to access a database to > retrieve the information I need showing the button text in the example code we have been using the text showed Button:1_1 for row 1 column 1 Button:2_1 for row 2 column 1 (there is row/col identity there) You can also use the button.Name to give a unique name stating Row/column while having same button text on all buttons. Also button.Tag So of course you can tell what button was clicked from what row./col, by smart naming as your code has done all along.. Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As WebTableData) Select Case Column Case 0 Data.Background = Color.SetAlpha(Color.Yellow, 192) Data.Text = "Data: " & CString(Row) & "_" & CString(Column) Case 1 Dim wb As WebButton = New WebButton(Me) As "BUT" wb.Text = "DangerButton" wb.Name = "btnDanger_" & CString(Row) & "_" & CString(Column) wb.Class = "button is-danger" Data.Control = wb End Select End Public Sub BUT_Click() Dim iRow, iCol as Integer iRow = Split(Last.Text, "_")[1] iCol = Split(Last.Text, "_")[2] End > The problem is that it only works with a button > If I fill the cell with a check box > It does not respond to a click event > Oh it has lots of problems if you want to make it do more than it has been designed for. I don't get why you even need it as there are plenty of ways to keep track of the buttons row/col data. As mentioned above. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 2 17:51:54 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 2 Mar 2023 16:51:54 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: > > > Public Sub BUT_Click() > > Dim iRow, iCol as Integer > iRow = Split(Last.Text, "_")[1] > iCol = Split(Last.Text, "_")[2] > > End > Oops, that should be Last.Name not Last.Text Public Sub BUT_Click() Dim iRow, iCol as Integer iRow = Split(Last.Name, "_")[1] iCol = Split(Last.Name, "_")[2] End -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 2 20:01:52 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 2 Mar 2023 19:01:52 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230302162931.M31066@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > Hello > > I know it's just for show > but > While I fill the cell with the button > data.control=WebButton > So when I click on the button that is in a certain cell I get an event of: > WebTable1_Click(Row As Integer, Column As Integer) > Then I can know from which row and which column the button is pressed > And it provides me with information on how to access a database to > retrieve the information I need > > The problem is that it only works with a button > If I fill the cell with a check box > It does not respond to a click event > > I am attaching the example again that shows what I mean > I'm attaching an example where buttons and checkboxes trigger WebTable1_Click event. all having Row and column data. the WebTable has 4 columns and puts a button/checkbox in each column. Did it like this... Non buttons (checkboxes) use the "ITEM" handler and on click they get the row/col from the name and raise the WebTable_Click event with the row/col data. There's always a way :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 2 20:02:52 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 2 Mar 2023 19:02:52 +0000 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: On Thu, 2 Mar 2023 at 19:01, Bruce Steers wrote: > > > On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > >> Hello >> >> I know it's just for show >> but >> While I fill the cell with the button >> data.control=WebButton >> So when I click on the button that is in a certain cell I get an event of: >> WebTable1_Click(Row As Integer, Column As Integer) >> Then I can know from which row and which column the button is pressed >> And it provides me with information on how to access a database to >> retrieve the information I need >> >> The problem is that it only works with a button >> If I fill the cell with a check box >> It does not respond to a click event >> >> I am attaching the example again that shows what I mean >> > > I'm attaching an example where buttons and checkboxes trigger > WebTable1_Click event. all having Row and column data. > > the WebTable has 4 columns and puts a button/checkbox in each column. > > Did it like this... > Non buttons (checkboxes) use the "ITEM" handler and on click they get the > row/col from the name and raise the WebTable_Click event with the row/col > data. > > There's always a way :) > BruceS > Oops forgot to attach... -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: test1-0.0.1.tar.gz Type: application/gzip Size: 13040 bytes Desc: not available URL: From sharon at 455.co.il Thu Mar 2 22:17:04 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 2 Mar 2023 23:17:04 +0200 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: <20230302211522.M71490@455.co.il> thank you very much ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Thu, 2 Mar 2023 19:02:52 +0000 Subject: Re: [Gambas-user] Event WebTable.Click > On Thu, 2 Mar 2023 at 19:01, Bruce Steers wrote: > > > > > > > On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > > > >> Hello > >> > >> I know it's just for show > >> but > >> While I fill the cell with the button > >> data.control=WebButton > >> So when I click on the button that is in a certain cell I get an event of: > >> WebTable1_Click(Row As Integer, Column As Integer) > >> Then I can know from which row and which column the button is pressed > >> And it provides me with information on how to access a database to > >> retrieve the information I need > >> > >> The problem is that it only works with a button > >> If I fill the cell with a check box > >> It does not respond to a click event > >> > >> I am attaching the example again that shows what I mean > >> > > > > I'm attaching an example where buttons and checkboxes trigger > > WebTable1_Click event. all having Row and column data. > > > > the WebTable has 4 columns and puts a button/checkbox in each column. > > > > Did it like this... > > Non buttons (checkboxes) use the "ITEM" handler and on click they get the > > row/col from the name and raise the WebTable_Click event with the row/col > > data. > > > > There's always a way :) > > BruceS > > > > Oops forgot to attach... ------- End of Original Message ------- From benoit.minisini at gambas-basic.org Thu Mar 2 23:10:52 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 2 Mar 2023 23:10:52 +0100 Subject: [Gambas-user] Event WebTable.Click In-Reply-To: <20230302162931.M31066@455.co.il> References: <20230301123541.M4136@455.co.il> <20230301160556.M68316@455.co.il> <20230302155837.M26361@455.co.il> <20230302162931.M31066@455.co.il> Message-ID: <7dfd7446-1f76-46b4-8160-ff7b5ad37e46@gambas-basic.org> Le 02/03/2023 ? 17:35, Mayost Sharon a ?crit?: > Hello > > I know it's just for show > but > While I fill the cell with the button > data.control=WebButton > So when I click on the button that is in a certain cell I get an event of: > WebTable1_Click(Row As Integer, Column As Integer) > Then I can know from which row and which column the button is pressed > And it provides me with information on how to access a database to retrieve the information I need > > The problem is that it only works with a button > If I fill the cell with a check box > It does not respond to a click event > Indeed. It has not been correctly implemented for the 'Click' event of WebCheckBox and WebRadioButton. Regards, -- Beno?t Minisini. From t.lee.davidson at gmail.com Fri Mar 3 03:20:41 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 2 Mar 2023 21:20:41 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> References: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Message-ID: I deleted my last response so this may be out of thread order. I finally broke it - well, sort of. The symptom is not exactly as others have described, but I got the server to stop responding. For me, NO images got loaded before the server choked. See the attached. What did I do? Simple. I just used the Chromium browser, ie. Debug > Configuration > Debug browser = Chromium. If I use Firefox or the Internal browser (which probably uses Firefox anyway since it is my default browser), I can't break it. -- Lee -------------- next part -------------- A non-text attachment was scrubbed... Name: screenshot_no-images.png Type: image/png Size: 26781 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: screenshot_unresponsive.png Type: image/png Size: 21536 bytes Desc: not available URL: From bsteers4 at gmail.com Fri Mar 3 12:27:46 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 3 Mar 2023 11:27:46 +0000 Subject: [Gambas-user] Getting an objects handler Message-ID: Is it possible to get the objects handler name? Ie. if i use... Dim m as Menu = New Menu(mParent) As "ThisMenu" m.Name = "This" m.Text = "This is a menu" I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? I've made a Menu.Save() Menu.Load() function to save/restore menus to disk It saves all the properties (except Tag yet) but i want to save the handler name too. Many thanks. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Mar 3 12:33:59 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 3 Mar 2023 12:33:59 +0100 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: Message-ID: <9ce73858-89bb-8a92-9671-0385a20c1613@gambas-basic.org> Le 03/03/2023 ? 12:27, Bruce Steers a ?crit?: > Is it possible to get the objects handler name? > No, it is stored nowhere. Regards, -- Beno?t Minisini. From claus.dietrich at freenet.de Fri Mar 3 13:09:07 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 3 Mar 2023 13:09:07 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: References: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Message-ID: Am 03.03.23 um 03:20 schrieb T Lee Davidson: > I deleted my last response so this may be out of thread order. > > I finally broke it - well, sort of.? The symptom is not exactly as > others have described, but I got the server to stop responding. For > me, NO images got loaded before the server choked. See the attached. > > What did I do? Simple. I just used the Chromium browser, ie. Debug > > Configuration > Debug browser = Chromium. > If I use Firefox or the Internal browser (which probably uses Firefox > anyway since it is my default browser), I can't break it. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- A counter check with the Chrome browser showed the same problem as faced with the Firefox. I would be grateful if you could share some platform data with us. This would allow me to replicate your OS environment in a VM for a test. BTW: We shouldn't forget gb.web as a possible reason for the problem. Best regards Claus From adamnt42 at gmail.com Fri Mar 3 13:36:14 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 3 Mar 2023 23:06:14 +1030 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: Message-ID: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> On 3/3/23 9:57 pm, Bruce Steers wrote: > Is it possible to get the objects handler name? > > Ie. if i use... > > Dim m as Menu = New Menu(mParent) As "ThisMenu" > m.Name = "This" > m.Text = "This is a menu" > > I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? > > I've made a Menu.Save() Menu.Load() function to save/restore menus to disk > It saves all the properties (except Tag yet) but i want to save the > handler name too. > > Many thanks. > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- For why? _FThis_ Dim m as Menu = New Menu(mParent) As "ThisMenu" _FThat_ Dim m as Menu = New Menu(mParent) AsIf FThis.Menus["ThisMenu"] As "ThatMenu" Public Sub ThatMenu_or_maybe_ThisMenu_Click_Or_Clack_Maybe_Even_Cluck() ??? Keyborg.Send(3000kV) ??? Error.Raise("FATAL - Do not try and confuse me Earthbeing") End ???? ? b -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Mar 3 13:55:19 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 3 Mar 2023 23:25:19 +1030 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: Message-ID: <49dc9fc9-43fd-929a-7704-f10537beec9e@gmail.com> On 3/3/23 9:57 pm, Bruce Steers wrote: > Is it possible to get the objects handler name? > > Ie. if i use... > > Dim m as Menu = New Menu(mParent) As "ThisMenu" > m.Name = "This" > m.Text = "This is a menu" > > I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? > > I've made a Menu.Save() Menu.Load() function to save/restore menus to disk > It saves all the properties (except Tag yet) but i want to save the > handler name too. > > Many thanks. > BruceS > WggShelly (I'm learning Welsh btw)! My previously erudition regarding this torpid topic raises, to me anymorehow (it's Friday heer btw) what we need is to bring GBasic into the 1970's with the introduction of .... *Possible Event Handlers!* Imagine .... Public Sub MyControl_AnythingElse(username as String, useraddress as Google.Current.Physical.Location) ... Damn. I just remembered, we had this in 1970 in PL1 with its' magical ON_ANY$ hhandlers. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 3 16:05:37 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 3 Mar 2023 15:05:37 +0000 Subject: [Gambas-user] Getting an objects handler In-Reply-To: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> References: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> Message-ID: On Fri, 3 Mar 2023, 12:37 BB, wrote: > > On 3/3/23 9:57 pm, Bruce Steers wrote: > > Is it possible to get the objects handler name? > > Ie. if i use... > > Dim m as Menu = New Menu(mParent) As "ThisMenu" > m.Name = "This" > m.Text = "This is a menu" > > I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? > > I've made a Menu.Save() Menu.Load() function to save/restore menus to disk > It saves all the properties (except Tag yet) but i want to save the > handler name too. > > Many thanks. > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > For why? > For Object.Attach() was my thinking *FThis* > > Dim m as Menu = New Menu(mParent) As "ThisMenu" > > *FThat* > > Dim m as Menu = New Menu(mParent) AsIf FThis.Menus["ThisMenu"] As > "ThatMenu" > > Public Sub ThatMenu_or_maybe_ThisMenu_Click_Or_Clack_Maybe_Even_Cluck() > > Keyborg.Send(3000kV) > > Error.Raise("FATAL - Do not try and confuse me Earthbeing") > > End > > ???? ? > > b > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonio.j.teixeira at gmail.com Fri Mar 3 17:34:00 2023 From: antonio.j.teixeira at gmail.com (Antonio Teixeira) Date: Fri, 3 Mar 2023 16:34:00 +0000 Subject: [Gambas-user] =?utf-8?q?=E2=80=8Bhttpget_issue?= In-Reply-To: References: Message-ID: Hi T Lee, Thank you for your answer. Replacing the data content from "username=a&password=a" to "{'username'='a'&'password'='a'}" did not solve the problem. The answer "Bad Request" remains. Any other ideas? Atentamente / Regards Ant?nio Teixeira On Thu, 2 Mar 2023 at 19:05, wrote: > Send User mailing list submissions to > user at lists.gambas-basic.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.gambas-basic.org/listinfo/user > or, via email, send a message with subject or body 'help' to > user-request at lists.gambas-basic.org > > You can reach the person managing the list at > user-owner at lists.gambas-basic.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of User digest..." > > > Today's Topics: > > 1. Re: httpget issue (T Lee Davidson) > 2. Re: Problem with Embedded Server (T Lee Davidson) > 3. Re: Event WebTable.Click (Bruce Steers) > 4. Re: Event WebTable.Click (Bruce Steers) > 5. Re: Event WebTable.Click (Bruce Steers) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 2 Mar 2023 11:16:43 -0500 > From: T Lee Davidson > To: user at lists.gambas-basic.org > Subject: Re: [Gambas-user] httpget issue > Message-ID: <64c993aa-675d-132d-c8a2-8d87a4659db5 at gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > On 3/2/23 09:42, Antonio Teixeira wrote: > > Hi everyone, > > > > I am trying to use the httpget class in gambas but I am having issues. > > The curl that is working is : > > > [snip] > > > > The code I am using in gambas is : > > > > Private Sub DoLogin() > > ? Dim data As String > > ? Dim headers As New String[] > > ? Dim resposta As String > > > > ? hClient.URL = "https://192.168.10.110:50301/api/user/Login < > https://192.168.10.110:50301/api/user/Login>" > > ? hClient.Async = False > > ? hclient.Auth = Net.AuthNone > > ? hclient.SSL.VerifyHost = False > > ? hclient.SSL.VerifyPeer = False > > ? hClient.Timeout = 2 > > ? headers.Add("Content-Type: application/json") > > ? data = "username=a&password=a" > > ? hClient.Post("application/json", data) ', headers) > > ? 'hClient.get(headers) > > ? Resposta = hclient.Peek() > > ? Message(Resposta, "OK") > > End Sub > > > > > > I am getting always "Bad Request" > > > > Any help please? > > > > Thanks in advance. > > > > Atentamente / Regards > > > > Ant?nio Teixeira > > First off so that others don't get confused, there is no httpget class. I > think you probably meant HttpClient. > > It appears the data you are sending is not in JSON format: > data = "username=a&password=a" > > try: > data = "{'username'='a'&'password'='a'}" > > Tip: The gb.util.web component has a JSON class that has encode and decode > methods: > https://gambaswiki.org/wiki/comp/gb.util.web/json > (You may already know this, but others may not.) > > > -- > Lee > > > > ------------------------------ > > Message: 2 > Date: Thu, 2 Mar 2023 11:21:02 -0500 > From: T Lee Davidson > To: user at lists.gambas-basic.org > Subject: Re: [Gambas-user] Problem with Embedded Server > Message-ID: > Content-Type: text/plain; charset=UTF-8; format=flowed > > On 3/2/23 06:20, Claus Dietrich wrote: > [snip] > > > > On 3/1/23 14:46, T Lee Davidson wrote: > >> I got webapp4_Prelease-3.7.7.tar.gz from the link Clause posted. But, > then Hans sent me an updated version, > >> webapp4-3.7.12.tar.gz. > > > >> With v3.7.12 I cannot reproduce the issue. I have launched and > relaunched it a number of times immediately after another; > >> running through all the top menu items each time. It works fine here. > :-\ > > > > As described it doesn't occur when launching the app. The stall happens > when changing the selection of the menu tabs. > > And, that is exactly what I did many times: "running through all the top > menu items each time." I could not make it fail. > [snip] > > -- > Lee > > > > ------------------------------ > > Message: 3 > Date: Thu, 2 Mar 2023 16:48:53 +0000 > From: Bruce Steers > To: Gambas Mailing List > Subject: Re: [Gambas-user] Event WebTable.Click > Message-ID: > < > CABuQYCAx9chUmgQsZ5ZOPS4jbBHWkWk5Y8bXKx7qrhG3hmoU1A at mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > > > Hello > > > > I know it's just for show > > but > > While I fill the cell with the button > > data.control=WebButton > > So when I click on the button that is in a certain cell I get an event > of: > > WebTable1_Click(Row As Integer, Column As Integer) > > Then I can know from which row and which column the button is pressed > > And it provides me with information on how to access a database to > > retrieve the information I need > > > showing the button text in the example code we have been using the text > showed > Button:1_1 for row 1 column 1 > Button:2_1 for row 2 column 1 > > (there is row/col identity there) > > You can also use the button.Name to give a unique name stating Row/column > while having same button text on all buttons. > > Also button.Tag > > So of course you can tell what button was clicked from what row./col, > by smart naming as your code has done all along.. > > Public Sub WebTable1_Data(Row As Integer, Column As Integer, Data As > WebTableData) > > Select Case Column > Case 0 > Data.Background = Color.SetAlpha(Color.Yellow, 192) > Data.Text = "Data: " & CString(Row) & "_" & CString(Column) > Case 1 > Dim wb As WebButton = New WebButton(Me) As "BUT" > wb.Text = "DangerButton" > wb.Name = "btnDanger_" & CString(Row) & "_" & CString(Column) > wb.Class = "button is-danger" > Data.Control = wb > End Select > > End > > Public Sub BUT_Click() > > Dim iRow, iCol as Integer > iRow = Split(Last.Text, "_")[1] > iCol = Split(Last.Text, "_")[2] > > End > > > > > The problem is that it only works with a button > > If I fill the cell with a check box > > It does not respond to a click event > > > > Oh it has lots of problems if you want to make it do more than it has been > designed for. > I don't get why you even need it as there are plenty of ways to keep track > of the buttons row/col data. As mentioned above. > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.gambas-basic.org/pipermail/user/attachments/20230302/d18c9c65/attachment-0001.htm > > > > ------------------------------ > > Message: 4 > Date: Thu, 2 Mar 2023 16:51:54 +0000 > From: Bruce Steers > To: Gambas Mailing List > Subject: Re: [Gambas-user] Event WebTable.Click > Message-ID: > < > CABuQYCB+orDrd8xZTpYGMWdX47yTNbXrUKAchs-Vnhq5MbitJQ at mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > > > > > > Public Sub BUT_Click() > > > > Dim iRow, iCol as Integer > > iRow = Split(Last.Text, "_")[1] > > iCol = Split(Last.Text, "_")[2] > > > > End > > > > Oops, that should be Last.Name not Last.Text > > > Public Sub BUT_Click() > > Dim iRow, iCol as Integer > iRow = Split(Last.Name, "_")[1] > iCol = Split(Last.Name, "_")[2] > > End > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.gambas-basic.org/pipermail/user/attachments/20230302/4446bff7/attachment-0001.htm > > > > ------------------------------ > > Message: 5 > Date: Thu, 2 Mar 2023 19:01:52 +0000 > From: Bruce Steers > To: Gambas Mailing List > Subject: Re: [Gambas-user] Event WebTable.Click > Message-ID: > fbYV9MCRC4K8a0Zd6UH7gKLhWjEWvt5tdZJa02Sw at mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > On Thu, 2 Mar 2023 at 16:08, Mayost Sharon wrote: > > > Hello > > > > I know it's just for show > > but > > While I fill the cell with the button > > data.control=WebButton > > So when I click on the button that is in a certain cell I get an event > of: > > WebTable1_Click(Row As Integer, Column As Integer) > > Then I can know from which row and which column the button is pressed > > And it provides me with information on how to access a database to > > retrieve the information I need > > > > The problem is that it only works with a button > > If I fill the cell with a check box > > It does not respond to a click event > > > > I am attaching the example again that shows what I mean > > > > I'm attaching an example where buttons and checkboxes trigger > WebTable1_Click event. all having Row and column data. > > the WebTable has 4 columns and puts a button/checkbox in each column. > > Did it like this... > Non buttons (checkboxes) use the "ITEM" handler and on click they get the > row/col from the name and raise the WebTable_Click event with the row/col > data. > > There's always a way :) > BruceS > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.gambas-basic.org/pipermail/user/attachments/20230302/9aa0aa38/attachment.htm > > > > ------------------------------ > > Subject: Digest Footer > > ----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]---- > > > ------------------------------ > > End of User Digest, Vol 66, Issue 9 > *********************************** > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Fri Mar 3 19:14:55 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 3 Mar 2023 13:14:55 -0500 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: References: <48ffeefb-200e-0647-a101-8bb4abb0bcb4@freenet.de> Message-ID: <0250c61b-ee06-e91c-5ae5-5f5faff90b9b@gmail.com> On 3/3/23 07:09, Claus Dietrich wrote: > Am 03.03.23 um 03:20 schrieb T Lee Davidson: >> I deleted my last response so this may be out of thread order. >> >> I finally broke it - well, sort of.? The symptom is not exactly as others have described, but I got the server to stop >> responding. For me, NO images got loaded before the server choked. See the attached. >> >> What did I do? Simple. I just used the Chromium browser, ie. Debug > Configuration > Debug browser = Chromium. >> If I use Firefox or the Internal browser (which probably uses Firefox anyway since it is my default browser), I can't break it. >> [snip] > > A counter check with the Chrome browser showed the same problem as faced with the Firefox. I don't understand why you said this. I reported that I experienced absolutely NO problems with Firefox. Only with Chromium did I experience an issue. > > I would be grateful if you could share some platform data with us. This would allow me to > > replicate your OS environment in a VM for a test. > > BTW: We shouldn't forget gb.web as a possible reason for the problem. > > Best regards > > Claus -- Lee [System] Gambas=3.18.1 OperatingSystem=Linux Distribution=openSUSE Leap 15.4 Kernel=5.14.21-150400.24.46-default Architecture=x86_64 Cores=6 Memory=15922M Language=en_US.UTF-8 Desktop=KDE DesktopResolution=96 DesktopScale=7 WidgetTheme=breeze Font=Noto Sans,10 [Programs] clang=clang version 13.0.1 gcc=gcc (SUSE Linux) 7.5.0 git=git version 2.35.3 pngquant=2.11.2 (November 2017) trans=Translate Shell 0.9.6.12 [Libraries] Cairo=/usr/lib64/libcairo.so.2.11600.0 Curl=/usr/lib64/libcurl.so.4.7.0 DBus=/usr/lib64/libdbus-1.so.3.19.4 GDK2=/usr/lib64/libgdk-x11-2.0.so.0.2400.33 GDK3=/usr/lib64/libgdk-3.so.0.2404.30 GStreamer=/usr/lib64/libgstreamer-1.0.so.0.2001.0 GTK+2=/usr/lib64/libgtk-x11-2.0.so.0.2400.33 GTK+3=/usr/lib64/libgtk-3.so.0.2404.30 OpenGL=/usr/lib64/libGL.so.1.7.0 Poppler=/usr/lib64/libpoppler.so.117.0.0 Poppler=/usr/lib64/libpoppler.so.89.0.0 QT5=/usr/lib64/libQt5Core.so.5.15.2 RSvg=/usr/lib64/librsvg-2.so.2.48.0 SDL=/usr/lib64/libSDL-1.2.so.0.11.4 SQLite=/usr/lib64/libsqlite3.so.0.8.6 [Environment] AUDIODRIVER=pulseaudio COLORTERM=1 CONFIG_SITE=/usr/share/site/x86_64-unknown-linux-gnu CPU=x86_64 CSHEDIT=emacs CVS_RSH=ssh DBUS_SESSION_BUS_ADDRESS=unix:path=/run//1000/bus DESKTOP_SESSION=/usr/share/xsessions/plasma5 DISPLAY=:0 FROM_HEADER= GB_GUI=gb.qt5 GPG_TTY=not a tty GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/.gtkrc-2.0:/.config/gtkrc-2.0 GTK_IM_MODULE=cedilla GTK_MODULES=canberra-gtk-module GTK_RC_FILES=/etc/gtk/gtkrc:/.gtkrc:/.config/gtkrc G_BROKEN_FILENAMES=1 G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252 HISTSIZE=1000 HOME= HOST= HOSTNAME= HOSTTYPE=x86_64 JAVA_BINDIR=/usr/lib64/jvm/java/bin JAVA_HOME=/usr/lib64/jvm/java JAVA_ROOT=/usr/lib64/jvm/java JDK_HOME=/usr/lib64/jvm/java JRE_HOME=/usr/lib64/jvm/java KDE_APPLICATIONS_AS_SCOPE=1 KDE_FULL_SESSION=true KDE_SESSION_UID=1000 KDE_SESSION_VERSION=5 LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LESS=-M -I -R LESSCLOSE=lessclose.sh %s %s LESSKEY=/etc/lesskey.bin LESSOPEN=lessopen.sh %s LESS_ADVANCED_PREPROCESSOR=no LOGNAME= MACHTYPE=x86_64-suse-linux MAIL=/var/spool/mail/ MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man MINICOM=-c on MORE=-sl OSTYPE=linux PAGER=less PAM_KWALLET5_LOGIN=/run//1000/kwallet5.socket PATH=/.local/bin:/bin:/usr/local/bin:/usr/bin:/bin:/opt/: PROFILEREAD=true PWD= PYTHONSTARTUP=/etc/pythonstart QEMU_AUDIO_DRV=pa QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_IM_MODULE=xim QT_IM_SWITCHER=imsw-multi QT_LOGGING_RULES=*.debug=false SDK_HOME=/usr/lib64/jvm/java SESSION_MANAGER=local/:@/tmp/.ICE-unix/1553,unix/:/tmp/.ICE-unix/1553 SHELL=/bin/bash SHLVL=0 SSH_AGENT_PID=1491 SSH_ASKPASS=/usr/lib/ssh/ssh-askpass SSH_AUTH_SOCK=/tmp/ssh-tpesFI1ZtmwY/agent.1441 SYSTEMD_EXEC_PID=1424 TERM=xterm TZ=:/etc/localtime USER= WINDOWMANAGER=/usr/bin/startplasma-x11 XAUTHLOCALHOSTNAME= XAUTHORITY=/run//1000/xauth_uJTKFX XCURSOR_SIZE=24 XCURSOR_THEME=breeze_cursors XDG_CONFIG_DIRS=/.config/kdedefaults:/etc/xdg XDG_CURRENT_DESKTOP=KDE XDG_DATA_DIRS=/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share XDG_RUNTIME_DIR=/run//1000 XDG_SEAT=seat0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 XDG_SESSION_CLASS= XDG_SESSION_DESKTOP=KDE XDG_SESSION_ID=3 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 XDG_SESSION_TYPE=x11 XDG_VTNR=7 XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB XMODIFIERS=@im=local XNLSPATH=/usr/share/X11/nls XSESSION_IS_UP=yes force_s3tc_enable=true From bsteers4 at gmail.com Fri Mar 3 19:34:58 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 3 Mar 2023 18:34:58 +0000 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> Message-ID: On Fri, 3 Mar 2023, 15:05 Bruce Steers, wrote: > > > On Fri, 3 Mar 2023, 12:37 BB, wrote: > >> >> On 3/3/23 9:57 pm, Bruce Steers wrote: >> >> Is it possible to get the objects handler name? >> >> Ie. if i use... >> >> Dim m as Menu = New Menu(mParent) As "ThisMenu" >> m.Name = "This" >> m.Text = "This is a menu" >> >> I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? >> >> I've made a Menu.Save() Menu.Load() function to save/restore menus to disk >> It saves all the properties (except Tag yet) but i want to save the >> handler name too. >> >> Many thanks. >> BruceS >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> For why? >> > > For Object.Attach() was my thinking > To elaborate.... I have a few programs that i have made custom menu creators for. like the new Desktop-ish launcher that is highly customizable. (i attached a snap of the custom menu editor) I want to just Menu.Save(sFileName) and save the menu to file then just as easily restore it. Hmm, actually, thinking about it, I may not need to save the handler name as it will probably be handled inside the program the same. :-\ I got a Menu.Save(Path) method working pretty well. Had to make an addition to Picture.class though, A Picture.Path property that stores the file Path when an image is loaded. i can save mostly all the menu data including pictures. (just got to work on Tag variants) For some reason I though having the handler name would be useful. ? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.jpg Type: image/jpeg Size: 111467 bytes Desc: not available URL: From t.lee.davidson at gmail.com Fri Mar 3 19:41:16 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 3 Mar 2023 13:41:16 -0500 Subject: [Gambas-user] =?utf-8?q?=E2=80=8Bhttpget_issue?= In-Reply-To: References: Message-ID: On 3/3/23 11:34, Antonio Teixeira wrote: > Hi T Lee, > > Thank you for your answer. > Replacing?the data content?from?"username=a&password=a"?to "{'username'='a'&'password'='a'}" did not?solve the problem. The > answer "Bad Request" remains. > Any other ideas? > > Atentamente / Regards > > Ant?nio Teixeira Oops, what I wrote is not valid JSON either. Try this: "{\"username\":\"a\",\"password\":\"a\"}" Or, using the JSON class: JSON.encode(["username": "a", "password": "a"]) BTW, please quote only the relevant message, not the entire message digest. -- Lee From gambas.fr at gmail.com Sat Mar 4 05:47:52 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Sat, 4 Mar 2023 05:47:52 +0100 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> Message-ID: Do as if the handler and the name was the same. In the ide it go in this way. Le ven. 3 mars 2023 ? 19:36, Bruce Steers a ?crit : > > > > On Fri, 3 Mar 2023, 15:05 Bruce Steers, wrote: > >> >> >> On Fri, 3 Mar 2023, 12:37 BB, wrote: >> >>> >>> On 3/3/23 9:57 pm, Bruce Steers wrote: >>> >>> Is it possible to get the objects handler name? >>> >>> Ie. if i use... >>> >>> Dim m as Menu = New Menu(mParent) As "ThisMenu" >>> m.Name = "This" >>> m.Text = "This is a menu" >>> >>> I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? >>> >>> I've made a Menu.Save() Menu.Load() function to save/restore menus to >>> disk >>> It saves all the properties (except Tag yet) but i want to save the >>> handler name too. >>> >>> Many thanks. >>> BruceS >>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>> >>> For why? >>> >> >> For Object.Attach() was my thinking >> > > To elaborate.... > > I have a few programs that i have made custom menu creators for. like the > new Desktop-ish launcher that is highly customizable. (i attached a snap of > the custom menu editor) > > I want to just Menu.Save(sFileName) and save the menu to file then just as > easily restore it. > Hmm, actually, thinking about it, I may not need to save the handler name > as it will probably be handled inside the program the same. :-\ > I got a Menu.Save(Path) method working pretty well. Had to make an > addition to Picture.class though, A Picture.Path property that stores the > file Path when an image is loaded. > i can save mostly all the menu data including pictures. (just got to > work on Tag variants) > > For some reason I though having the handler name would be useful. ? > > Respects > BruceS > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Mar 4 11:44:28 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 4 Mar 2023 10:44:28 +0000 Subject: [Gambas-user] Getting an objects handler In-Reply-To: <9ce73858-89bb-8a92-9671-0385a20c1613@gambas-basic.org> References: <9ce73858-89bb-8a92-9671-0385a20c1613@gambas-basic.org> Message-ID: On Fri, 3 Mar 2023 at 11:35, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 03/03/2023 ? 12:27, Bruce Steers a ?crit : > > Is it possible to get the objects handler name? > > > > No, it is stored nowhere. > > Regards, > > -- > Beno?t Minisini. > Aah. Cheers Ben :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Mar 4 12:01:34 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 4 Mar 2023 11:01:34 +0000 Subject: [Gambas-user] Getting an objects handler In-Reply-To: References: <64803199-a209-2291-620a-29f56fe37cf2@gmail.com> Message-ID: On Sat, 4 Mar 2023 at 04:49, Fabien Bodard wrote: > Do as if the handler and the name was the same. > > In the ide it go in this way. > Cheers Fab Gotta love gambas, It only took a moment and i now have Menu.Handler property :) But i think i may have over-thought it. the program hasn't been constructed to the point of restoring the menus yet as I have mostly been working on saving the info. I suspect I may not even need the handler name :-\ i sure have needed the Picture.Path property , that's actually really useful :) Respects BruceS > > Le ven. 3 mars 2023 ? 19:36, Bruce Steers a ?crit : > >> >> >> >> On Fri, 3 Mar 2023, 15:05 Bruce Steers, wrote: >> >>> >>> >>> On Fri, 3 Mar 2023, 12:37 BB, wrote: >>> >>>> >>>> On 3/3/23 9:57 pm, Bruce Steers wrote: >>>> >>>> Is it possible to get the objects handler name? >>>> >>>> Ie. if i use... >>>> >>>> Dim m as Menu = New Menu(mParent) As "ThisMenu" >>>> m.Name = "This" >>>> m.Text = "This is a menu" >>>> >>>> I can read m.Name , m.Text, etc but can i get the "ThisMenu" reference? >>>> >>>> I've made a Menu.Save() Menu.Load() function to save/restore menus to >>>> disk >>>> It saves all the properties (except Tag yet) but i want to save the >>>> handler name too. >>>> >>>> Many thanks. >>>> BruceS >>>> >>>> >>>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >>>> >>>> For why? >>>> >>> >>> For Object.Attach() was my thinking >>> >> >> To elaborate.... >> >> I have a few programs that i have made custom menu creators for. like the >> new Desktop-ish launcher that is highly customizable. (i attached a snap of >> the custom menu editor) >> >> I want to just Menu.Save(sFileName) and save the menu to file then just >> as easily restore it. >> Hmm, actually, thinking about it, I may not need to save the handler name >> as it will probably be handled inside the program the same. :-\ >> I got a Menu.Save(Path) method working pretty well. Had to make an >> addition to Picture.class though, A Picture.Path property that stores the >> file Path when an image is loaded. >> i can save mostly all the menu data including pictures. (just got to >> work on Tag variants) >> >> For some reason I though having the handler name would be useful. ? >> >> Respects >> BruceS >> >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Sun Mar 5 15:02:59 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Sun, 5 Mar 2023 16:02:59 +0200 Subject: [Gambas-user] webhtml click event Message-ID: <20230305135240.M75586@455.co.il> Hello I am attaching an example that when I click on WebHTML it responds to a click event It seems to me that the way I did was not successful, maybe there is another advice on how to create the event on a certain control The problem was because: A. All gb.web.gui controls do not have a click event such as WEBHTML, WEBIMAGE, WEBLABEL, etc. B. In order to create an event in WEBHTML I took a WEBBUTTON control that has a click event. I put the HTML content inside WEBHTML.TEXT and put it: onclick=\"gw.raise('@1.WebButton2','click');\" onmousedown=event.stopPropagation(); Now when I click WEBHTML it reaches the WEBBUTTON click event And it's a bit complicated every time to create an additional control for an event. Is there another way? And also is there a good reason that there are no click events in all the gb.web.gui controls Many thanks for the help -------------- next part -------------- A non-text attachment was scrubbed... Name: html_click.zip Type: application/zip Size: 17705 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Sun Mar 5 19:45:48 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 5 Mar 2023 19:45:48 +0100 Subject: [Gambas-user] webhtml click event In-Reply-To: <20230305135240.M75586@455.co.il> References: <20230305135240.M75586@455.co.il> Message-ID: Le 05/03/2023 ? 15:02, Mayost Sharon a ?crit?: > And also is there a good reason that there are no click events in all the gb.web.gui controls > Yes, Logic. If a control is for displaying, it can't any event related to user interaction. Otherwise it will not be a display-only control. Why do you want to add a "Click" event to all controls? Why don't you use a WebButton is that case, customizing its look with css? -- Beno?t Minisini. From sharon at 455.co.il Sun Mar 5 22:17:37 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Sun, 5 Mar 2023 23:17:37 +0200 Subject: [Gambas-user] webhtml click event In-Reply-To: References: <20230305135240.M75586@455.co.il> Message-ID: <20230305204758.M86612@455.co.il> Hello first thanks In GTK or QT, controls that are views also have a click event, sometimes you need events on a view as well I can't use the WebButton for example: I want the label of the button to be aligned to the left side I am attaching an example file in which in WEBHTML I manage to align the caption to the left Thanks again ---------- Original Message ----------- From: Benoit Minisini To: user at lists.gambas-basic.org Sent: Sun, 5 Mar 2023 19:45:48 +0100 Subject: Re: [Gambas-user] webhtml click event > Le 05/03/2023 ? 15:02, Mayost Sharon a ?crit?: > > And also is there a good reason that there are no click events in all the gb.web.gui controls > > > > Yes, Logic. > > If a control is for displaying, it can't any event related to user > interaction. Otherwise it will not be a display-only control. > > Why do you want to add a "Click" event to all controls? Why don't you > use a WebButton is that case, customizing its look with css? > > -- > Beno?t Minisini. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: html_click2.zip Type: application/zip Size: 18998 bytes Desc: not available URL: From gradobag at gradobag.it Mon Mar 6 09:59:22 2023 From: gradobag at gradobag.it (Gianluigi) Date: Mon, 6 Mar 2023 09:59:22 +0100 Subject: [Gambas-user] webhtml click event In-Reply-To: <20230305204758.M86612@455.co.il> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> Message-ID: <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> Il 05/03/23 22:17, Mayost Sharon ha scritto: > Hello > > first thanks > > In GTK or QT, controls that are views also have a click event, sometimes you need events on a view as well > > I can't use the WebButton for example: > I want the label of the button to be aligned to the left side > > I am attaching an example file in which in WEBHTML I manage to align the caption to the left > > Thanks again Hi, I'm not sure I understand your needs, each time you ask for something different. Maybe you are missing the basics of Gambas? Are you sure you understand how containers work? Have you ever read the component code? Here is the link: https://gitlab.com/gambas/gambas/-/tree/3.18.1/comp/src/gb.web.gui Here you will find lectures by A. Guzman, they refer to the previous webform but are still valid: https://www.youtube.com/@alessandriguzmanabad173/videos Regards Gianluigi From sharon at 455.co.il Mon Mar 6 15:55:38 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Mon, 6 Mar 2023 16:55:38 +0200 Subject: [Gambas-user] webhtml click event In-Reply-To: <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> Message-ID: <20230306144647.M46385@455.co.il> Hello First thanks for the video tutorials I will watch them You may not understand me because I don't know English and I translate through Google 1. You refer me to a source code and I don't know how to read it, I should use GAMBAS even if I don't know the source 2. My question was why all the WEB controls in GAMBAS do not have the click event. According to what I understand, there are events that are the basis for all the elements, you can see here: https://www.w3schools.com/js/js_events.asp Many thanks ---------- Original Message ----------- From: Gianluigi To: user at lists.gambas-basic.org Sent: Mon, 6 Mar 2023 09:59:22 +0100 Subject: Re: [Gambas-user] webhtml click event > Il 05/03/23 22:17, Mayost Sharon ha scritto: > > Hello > > > > first thanks > > > > In GTK or QT, controls that are views also have a click event, sometimes you need events on a view as well > > > > I can't use the WebButton for example: > > I want the label of the button to be aligned to the left side > > > > I am attaching an example file in which in WEBHTML I manage to align the caption to the left > > > > Thanks again > > Hi, > > I'm not sure I understand your needs, each time you ask for something > different. > Maybe you are missing the basics of Gambas? > Are you sure you understand how containers work? > Have you ever read the component code? Here is the link: > https://gitlab.com/gambas/gambas/-/tree/3.18.1/comp/src/gb.web.gui > Here you will find lectures by A. Guzman, they refer to the previous > webform but are still valid: > https://www.youtube.com/@alessandriguzmanabad173/videos > > Regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- From gradobag at gradobag.it Mon Mar 6 15:46:38 2023 From: gradobag at gradobag.it (Gianluigi) Date: Mon, 6 Mar 2023 15:46:38 +0100 Subject: [Gambas-user] webhtml click event In-Reply-To: <20230306144647.M46385@455.co.il> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> <20230306144647.M46385@455.co.il> Message-ID: <659b80af-57a2-1cb6-d77b-bd52facf0934@gradobag.it> Il 06/03/23 15:55, Mayost Sharon ha scritto: > Hello > > First thanks for the video tutorials I will watch them > > You may not understand me because I don't know English and I translate through Google > > 1. You refer me to a source code and I don't know how to read it, I should use GAMBAS even if I don't know the source > 2. My question was why all the WEB controls in GAMBAS do not have the click event. > According to what I understand, there are events that are the basis for all the elements, you can see here: > https://www.w3schools.com/js/js_events.asp > > Many thanks Hi, I am unable to add anything to what has already been said. I attach a link to a compressed video on how to read Benoit's code from the Gambas IDE: https://paste.c-net.org/GenieLamar Regards Gianluigi From bsteers4 at gmail.com Mon Mar 6 16:26:30 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 6 Mar 2023 15:26:30 +0000 Subject: [Gambas-user] webhtml click event In-Reply-To: <20230305204758.M86612@455.co.il> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> Message-ID: On Sun, 5 Mar 2023, 20:23 Mayost Sharon, wrote: > Hello > > first thanks > > In GTK or QT, controls that are views also have a click event, sometimes > you need events on a view as well > > I can't use the WebButton for example: > I want the label of the button to be aligned to the left side. With webdrawingarea you can make any kind of control. > > I am attaching an example file in which in WEBHTML I manage to align the > caption to the left > > Thanks agai. gb.gtk and GB.qt toolkits are nothing like web.gui They cannot be compared. You are comparing advanced gui builder toolkits with a htm/js Just because GB.gtk and GB.qt work in a certain way really does not mean gb.web will. Hb web is very long muted compared to gui toolkits. It is easy to add your own click events and customise any web components to suit your own specific needs I do not want Every control to fire click event. Not every gui toolkit control fires a click event. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Mon Mar 6 22:02:52 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Mon, 6 Mar 2023 23:02:52 +0200 Subject: [Gambas-user] webhtml click event In-Reply-To: <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> Message-ID: <20230306205636.M19839@455.co.il> Hello I saw all the videos (very nice) But I didn't see it explaining how to create a WebHTML click event And I didn't understand what CSS has to do with creating events If I still need a click event in WebHTML how do I do it? Is the only way only through source code? Thanks ---------- Original Message ----------- From: Gianluigi To: user at lists.gambas-basic.org Sent: Mon, 6 Mar 2023 09:59:22 +0100 Subject: Re: [Gambas-user] webhtml click event > Il 05/03/23 22:17, Mayost Sharon ha scritto: > > Hello > > > > first thanks > > > > In GTK or QT, controls that are views also have a click event, sometimes you need events on a view as well > > > > I can't use the WebButton for example: > > I want the label of the button to be aligned to the left side > > > > I am attaching an example file in which in WEBHTML I manage to align the caption to the left > > > > Thanks again > > Hi, > > I'm not sure I understand your needs, each time you ask for something > different. > Maybe you are missing the basics of Gambas? > Are you sure you understand how containers work? > Have you ever read the component code? Here is the link: > https://gitlab.com/gambas/gambas/-/tree/3.18.1/comp/src/gb.web.gui > Here you will find lectures by A. Guzman, they refer to the previous > webform but are still valid: > https://www.youtube.com/@alessandriguzmanabad173/videos > > Regards > > Gianluigi > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- From benoit.minisini at gambas-basic.org Tue Mar 7 00:19:08 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 7 Mar 2023 00:19:08 +0100 Subject: [Gambas-user] Problem with Embedded Server In-Reply-To: <6969cd90-6c33-839a-2416-b3d7cc26a5b2@gmail.com> References: <5120aad5-882a-7fa4-ab25-10bb7e0f9de4@gmail.com> <9c7b8af0-d77e-c117-b526-05ead2fe6f80@gmail.com> <1d1d60c1-8464-2314-a477-7f7381d841ab@gmail.com> <5ee2097d-14b3-e923-663a-c154ed519269@deganius.de> <84b7b438-ee67-3976-642b-73d2494d2233@gmail.com> <312729a5-709b-d43a-5bd0-1be0c71d67fc@gmail.com> <6969cd90-6c33-839a-2416-b3d7cc26a5b2@gmail.com> Message-ID: <92eba2d9-9f77-4b88-068f-a8b02c359fac@gambas-basic.org> Le 01/03/2023 ? 21:19, T Lee Davidson a ?crit?: > On 3/1/23 14:46, T Lee Davidson wrote: >> >>> Ok.?Claus?provided?an?application?with?which?it?happens. >> >> No, I have not. I'll have to go find it. While I'm there, I'll try to >> find the discussion from when I raised this issue, I >> think,?a?couple?of?years?ago. > > Okay, it wasn't even a year ago. > First asked: > https://lists.gambas-basic.org/pipermail/user/2022-June/076211.html > Asked again: > https://lists.gambas-basic.org/pipermail/user/2022-June/076222.html > > I got webapp4_Prelease-3.7.7.tar.gz from the link Clause posted. But, > then Hans sent me an updated version, webapp4-3.7.12.tar.gz. > > With v3.7.12 I cannot reproduce the issue. I have launched and > relaunched it a number of times immediately after another; running > through all the top menu items each time. It works fine here. :-\ > > Commit https://gitlab.com/gambas/gambas/-/commit/cac1a0f3d0919d757337cb805ec34d2479378132 should fix the problem, if people want to try. It's actually a workaround. But not an ugly workaround. A reasonable one. I think there is some race condition behind that stuff, related to the fact that I move the fifo between the debugger and the IDE between blocking and non-blocking state, leading to random read or write failures. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Tue Mar 7 03:26:40 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 7 Mar 2023 02:26:40 +0000 Subject: [Gambas-user] webhtml click event In-Reply-To: <20230306205636.M19839@455.co.il> References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> <20230306205636.M19839@455.co.il> Message-ID: On Mon, 6 Mar 2023 at 20:00, Mayost Sharon wrote: > Hello > > I saw all the videos (very nice) > But I didn't see it explaining how to create a WebHTML click event > And I didn't understand what CSS has to do with creating events > > If I still need a click event in WebHTML how do I do it? > Is the only way only through source code? > > Thanks > I thought you wanted a WebButton but with text on the other side? I attach a simple example where i have imported the WebButton.class into my project from gb.web.gui source. I removed EVERY function from the class except the _Render() method. I put the first (make Image) part into a method called RenderImage() I put the last (make menu arrow) part into a method called RenderArrow() I added a "Invert" property. I then made it write either Image - Text - Arrow (Default) or Arrow - Text - Image (if Inverted) It works for compact buttons but not for expanded ones as when inverted the image is center but the text is align.left. I added 2 buttons with images and set Invert on one of them. I had to place the buttons into panels to shrink them to get over the align.left problem. this is only a simple example but shows how you can easily modify an object to your own needs. It is what you said you initially wanted , a button with the text to the left of the image. You must study some of the gb-web-gui object code. You complain that you are being pointed to code you do not understand, but that's the point, YOU MUST understand. I did not understand when i first started using web-gui, but then it starts to make sense. and you will realize gb.web.gui is very different to gb.gui and it will always be. gb.web.gui is very minimal in features, mostly because all it can do is produce HTMl/JS code. If you wish to get more advanced objects you really must learn how your current gb.web objects are made and how to manipulate them. They are all here https://gitlab.com/gambas/gambas/-/tree/master/comp/src/gb.web.gui/.src some are not so complicated and examining them will help you understand. There's always a way :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 /3L8fxLqPFQAeAAA -------------- next part -------------- A non-text attachment was scrubbed... Name: Untitled.jpg Type: image/jpeg Size: 68434 bytes Desc: not available URL: From sharon at 455.co.il Tue Mar 7 07:34:52 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Tue, 7 Mar 2023 08:34:52 +0200 Subject: [Gambas-user] webhtml click event In-Reply-To: References: <20230305135240.M75586@455.co.il> <20230305204758.M86612@455.co.il> <5e5c77c5-dc3b-cdef-c238-9a07ee0f9e0a@gradobag.it> <20230306205636.M19839@455.co.il> Message-ID: <20230307062800.M2350@455.co.il> Hello Thank you very much Your example helped me a lot. Many thanks again ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Tue, 7 Mar 2023 02:26:40 +0000 Subject: Re: [Gambas-user] webhtml click event > On Mon, 6 Mar 2023 at 20:00, Mayost Sharon wrote: > > > Hello > > > > I saw all the videos (very nice) > > But I didn't see it explaining how to create a WebHTML click event > > And I didn't understand what CSS has to do with creating events > > > > If I still need a click event in WebHTML how do I do it? > > Is the only way only through source code? > > > > Thanks > > > > I thought you wanted a WebButton but with text on the other side? > > I attach a simple example where i have imported the WebButton.class into my > project from gb.web.gui source. > > I removed EVERY function from the class except the _Render() method. > I put the first (make Image) part into a method called RenderImage() > I put the last (make menu arrow) part into a method called RenderArrow() > > I added a "Invert" property. > > I then made it write either > Image - Text - Arrow (Default) > or > Arrow - Text - Image (if Inverted) > > It works for compact buttons but not for expanded ones as when inverted the > image is center but the text is align.left. > I added 2 buttons with images and set Invert on one of them. > I had to place the buttons into panels to shrink them to get over the > align.left problem. > > this is only a simple example but shows how you can easily modify an object > to your own needs. > > It is what you said you initially wanted , a button with the text to the > left of the image. > > You must study some of the gb-web-gui object code. > You complain that you are being pointed to code you do not understand, but > that's the point, YOU MUST understand. > > I did not understand when i first started using web-gui, but then it starts > to make sense. > and you will realize gb.web.gui is very different to gb.gui and it will > always be. > gb.web.gui is very minimal in features, mostly because all it can do is > produce HTMl/JS code. > > If you wish to get more advanced objects you really must learn how your > current gb.web objects are made and how to manipulate them. They are all > here https://gitlab.com/gambas/gambas/-/tree/master/comp/src/gb.web.gui/.src > some are not so complicated and examining them will help you understand. > > There's always a way :) > BruceS ------- End of Original Message ------- From denisc at exemail.com.au Tue Mar 7 05:56:16 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Tue, 7 Mar 2023 15:56:16 +1100 Subject: [Gambas-user] IDE Error Message-ID: The attached error is raised if I click New or Open Project when first starting the IDE. Only since upgrading to 3.18.1 Anybody else have this or should I report it? -- Regards Denis -------------- next part -------------- A non-text attachment was scrubbed... Name: Gambas_NewProjectError.png Type: image/png Size: 100892 bytes Desc: not available URL: From chrisml at deganius.de Tue Mar 7 08:10:33 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Tue, 7 Mar 2023 08:10:33 +0100 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: <7726aa78-02aa-af0f-3925-9251bd8bbe6c@deganius.de> Am 07.03.23 um 05:56 schrieb Denis Crowther: > > The attached error is raised if I click New or Open Project when first > starting the IDE. Only since upgrading to 3.18.1 > > Anybody else have this or should I report it? First check your installation. If you have an Apt-based system then execute 'dpkg -l | grep gambas' and check if every package installed has the same version. 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 denisc at exemail.com.au Tue Mar 7 08:38:15 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Tue, 7 Mar 2023 18:38:15 +1100 Subject: [Gambas-user] IDE Error In-Reply-To: <7726aa78-02aa-af0f-3925-9251bd8bbe6c@deganius.de> References: <7726aa78-02aa-af0f-3925-9251bd8bbe6c@deganius.de> Message-ID: <49a4b1c6-2b71-7cac-2d63-a5c8d55da4f6@exemail.com.au> On 3/7/23 18:10, Christof Thalhofer wrote: > Am 07.03.23 um 05:56 schrieb Denis Crowther: >> >> The attached error is raised if I click New or Open Project when first >> starting the IDE. Only since upgrading to 3.18.1 >> >> Anybody else have this or should I report it? > > First check your installation. If you have an Apt-based system then execute > > 'dpkg -l | grep gambas' > > and check if every package installed has the same version. > > Alles Gute > > Christof Thalhofer > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Thanks but I compiled from source. -- Regards Denis From hans at gambas-buch.de Tue Mar 7 09:18:25 2023 From: hans at gambas-buch.de (Hans Lehmann) Date: Tue, 7 Mar 2023 09:18:25 +0100 Subject: [Gambas-user] IDE Error In-Reply-To: <7726aa78-02aa-af0f-3925-9251bd8bbe6c@deganius.de> References: <7726aa78-02aa-af0f-3925-9251bd8bbe6c@deganius.de> Message-ID: <9778fdfa-5fcf-0693-e305-262d24e45693@gambas-buch.de> Am 07.03.23 um 08:10 schrieb Christof Thalhofer: > First check your installation. If you have an Apt-based system then > execute > > 'dpkg -l | grep gambas' > > and check if every package installed has the same version. Hello. The above test showed that all Gambas packages have the same version number. However, the listed error still occurs with me under the same conditions. With kind regards Hans -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Tue Mar 7 09:44:19 2023 From: adamnt42 at gmail.com (BB) Date: Tue, 7 Mar 2023 19:14:19 +1030 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: On 7/3/23 3:26 pm, Denis Crowther wrote: > > The attached error is raised if I click New or Open Project when first > starting the IDE. Only since upgrading to 3.18.1 > > Anybody else have this or should I report it? Yes, report it. From bsteers4 at gmail.com Tue Mar 7 12:09:17 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 7 Mar 2023 11:09:17 +0000 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: The error occurs on this line... $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" Check your ~/.config/user-dirs.dirs file has something like this line in it.,.. XDG_PUBLICSHARE_DIR="$HOME/Public" $ cat ~/.config/user-dirs.dirs Mine does and i get no errors. BruceS On Tue, 7 Mar 2023 at 05:33, Denis Crowther wrote: > > The attached error is raised if I click New or Open Project when first > starting the IDE. Only since upgrading to 3.18.1 > > Anybody else have this or should I report it? > > > -- > Regards > Denis > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From denisc at exemail.com.au Tue Mar 7 12:32:41 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Tue, 7 Mar 2023 22:32:41 +1100 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: On 3/7/23 22:09, Bruce Steers wrote: I didn't have that line and now it's fixed. Thank You > > > The error occurs on this line... > $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > > Check your ~/.config/user-dirs.dirs file has something like this line in > it.,.. > XDG_PUBLICSHARE_DIR="$HOME/Public" > > $ cat ~/.config/user-dirs.dirs > > > Mine does and i get no errors. > > BruceS > > > On Tue, 7 Mar 2023 at 05:33, Denis Crowther > wrote: > > > The attached error is raised if I click New or Open Project when first > starting the IDE. Only since upgrading to 3.18.1 > > Anybody else have this or should I report it? > > > -- > Regards > Denis > ----[ http://gambaswiki.org/wiki/doc/netiquette > ]---- > -- Regards Denis From bsteers4 at gmail.com Tue Mar 7 13:01:59 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 7 Mar 2023 12:01:59 +0000 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: You are welcome. I guess it's still a bug that needs squishing though as a few people seem to have the same issue. Ben would best know how , i would just pop a "Try" in front of the offending line. ? Respects BruceS On Tue, 7 Mar 2023 at 11:33, Denis Crowther wrote: > On 3/7/23 22:09, Bruce Steers wrote: > > I didn't have that line and now it's fixed. > > Thank You > > > > > > > The error occurs on this line... > > $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > > > > Check your ~/.config/user-dirs.dirs file has something like this line in > > it.,.. > > XDG_PUBLICSHARE_DIR="$HOME/Public" > > > > $ cat ~/.config/user-dirs.dirs > > > > > > Mine does and i get no errors. > > > > BruceS > > > > > > On Tue, 7 Mar 2023 at 05:33, Denis Crowther > > wrote: > > > > > > The attached error is raised if I click New or Open Project when > first > > starting the IDE. Only since upgrading to 3.18.1 > > > > Anybody else have this or should I report it? > > > > > > -- > > Regards > > Denis > > ----[ http://gambaswiki.org/wiki/doc/netiquette > > ]---- > > > > -- > Regards > Denis > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Mar 7 14:26:28 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 7 Mar 2023 08:26:28 -0500 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> On 3/7/23 06:09, Bruce Steers wrote: > The error occurs on this line... > $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > > Check your ~/.config/user-dirs.dirs file has something like this line in it.,.. > XDG_PUBLICSHARE_DIR="$HOME/Public" > > $ cat ~/.config/user-dirs.dirs > > > Mine does and i get no errors. > > BruceS I wonder if it is distro-specific. No problem on openSUSE; the line was already there: user at linux-desktop:~> grep -i "publicshare" ~/.config/user-dirs.dirs XDG_PUBLICSHARE_DIR="$HOME/" -- Lee From denisc at exemail.com.au Tue Mar 7 14:49:33 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Wed, 8 Mar 2023 00:49:33 +1100 Subject: [Gambas-user] IDE Error In-Reply-To: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> Message-ID: <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> On 3/8/23 00:26, T Lee Davidson wrote: > On 3/7/23 06:09, Bruce Steers wrote: >> The error occurs on this line... >> $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" >> >> Check your ~/.config/user-dirs.dirs file has something like this line >> in it.,.. >> XDG_PUBLICSHARE_DIR="$HOME/Public" >> >> $ cat ~/.config/user-dirs.dirs >> >> >> Mine does and i get no errors. >> >> BruceS > > I wonder if it is distro-specific. > > No problem on openSUSE; the line was already there: > user at linux-desktop:~> grep -i "publicshare" ~/.config/user-dirs.dirs > XDG_PUBLICSHARE_DIR="$HOME/" > > BruceS said and I used "$HOME/Public" not "$HOME/", typo?. Also I compiled from source, not a distro. -- Regards Denis From bsteers4 at gmail.com Tue Mar 7 15:09:21 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 7 Mar 2023 14:09:21 +0000 Subject: [Gambas-user] IDE Error In-Reply-To: <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> Message-ID: On Tue, 7 Mar 2023 at 13:50, Denis Crowther wrote: > On 3/8/23 00:26, T Lee Davidson wrote: > > On 3/7/23 06:09, Bruce Steers wrote: > >> The error occurs on this line... > >> $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > >> > >> Check your ~/.config/user-dirs.dirs file has something like this line > >> in it.,.. > >> XDG_PUBLICSHARE_DIR="$HOME/Public" > >> > >> $ cat ~/.config/user-dirs.dirs > >> > >> > >> Mine does and i get no errors. > >> > >> BruceS > > > > I wonder if it is distro-specific. > > > > No problem on openSUSE; the line was already there: > > user at linux-desktop:~> grep -i "publicshare" ~/.config/user-dirs.dirs > > XDG_PUBLICSHARE_DIR="$HOME/" > > > > > > BruceS said and I used "$HOME/Public" not "$HOME/", typo?. > > Also I compiled from source, not a distro. > > -- > Regards > Denis > I think he means the XDG_PUBLICSHARE_DIR setting not being there is distro specific. and the location is just where you choose the root of your public area. (it's up to you) I'm sure you can choose to not have a public dir i wonder if that makes the line missing from the config? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Mar 7 16:50:47 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 7 Mar 2023 15:50:47 +0000 Subject: [Gambas-user] IDE Error In-Reply-To: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> Message-ID: On Tue, 7 Mar 2023 at 13:27, T Lee Davidson wrote: > On 3/7/23 06:09, Bruce Steers wrote: > > The error occurs on this line... > > $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > > > > Check your ~/.config/user-dirs.dirs file has something like this line in > it.,.. > > XDG_PUBLICSHARE_DIR="$HOME/Public" > > > > $ cat ~/.config/user-dirs.dirs > > > > > > Mine does and i get no errors. > > > > BruceS > > I wonder if it is distro-specific. > > No problem on openSUSE; the line was already there: > user at linux-desktop:~> grep -i "publicshare" ~/.config/user-dirs.dirs > XDG_PUBLICSHARE_DIR="$HOME/" > > > -- > Lee > a little research shows gnome-user-share will set the XDG_PUBLICSHARE_DIR variable. (and possibly remove it if uninstalled) I guess it's not a guaranteed to exist value. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Mar 7 18:14:19 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 7 Mar 2023 12:14:19 -0500 Subject: [Gambas-user] IDE Error In-Reply-To: References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> Message-ID: On 3/7/23 09:09, Bruce Steers wrote: > On Tue, 7 Mar 2023 at 13:50, Denis Crowther > wrote: > On 3/8/23 00:26, T Lee Davidson wrote: > > On 3/7/23 06:09, Bruce Steers wrote: > >> The error occurs on this line... > >> $cDesktopDirCache[Desktop.GetDirectory("PUBLICSHARE")] = "folder-share" > >> > >> Check your ~/.config/user-dirs.dirs file has something like this line > >> in it.,.. > >> XDG_PUBLICSHARE_DIR="$HOME/Public" > >> > >> $ cat ~/.config/user-dirs.dirs > >> > >> > >> Mine does and i get no errors. > >> > >> BruceS > > > > I wonder if it is distro-specific. > > > > No problem on openSUSE; the line was already there: > > user at linux-desktop:~> grep -i "publicshare" ~/.config/user-dirs.dirs > > XDG_PUBLICSHARE_DIR="$HOME/" > > > > > > BruceS said and I used "$HOME/Public" not "$HOME/", typo?. > > Also I compiled from source, not a distro. > > -- > Regards > Denis > > > I think he means the XDG_PUBLICSHARE_DIR setting not being there is distro specific. That is correct. I believe the content of user-dirs.dirs and user-dirs.locale are set by the specific distro, not Gambas. -- Lee From adamnt42 at gmail.com Wed Mar 8 12:42:25 2023 From: adamnt42 at gmail.com (BB) Date: Wed, 8 Mar 2023 22:12:25 +1030 Subject: [Gambas-user] IDE Error In-Reply-To: References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> Message-ID: <2f880027-fa85-4243-c7d3-e28860664083@gmail.com> On 8/3/23 3:44 am, T Lee Davidson wrote: > That is correct. I believe the content of user-dirs.dirs and > user-dirs.locale are set by the specific distro, not Gambas. To be possibly pedantic its more of a problem with the version of the XDG utilities. This was a consistent problem that I have had over the years with different distros. To put it simply, the XDG scripts are not a *standard* and the distro installed version is one that is convenient to the distro maintainers, for their purposes. For example, for years the Ubuntu version was a complete hack and generally unusable anywhere else. Remember, they are just shell scripts. These days I just install the latest "Portland" version which 99% of the time works ootb. However, there is a bug! Gambas tries to use an internal set of the utilities. That doesn't work. -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Wed Mar 8 16:53:26 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 8 Mar 2023 16:53:26 +0100 Subject: [Gambas-user] IDE Error In-Reply-To: References: Message-ID: <96d61a6e-45b0-a04d-02ec-dfbfde093c6a@gambas-basic.org> Le 07/03/2023 ? 05:56, Denis Crowther a ?crit?: > > The attached error is raised if I click New or Open Project when first > starting the IDE. Only since upgrading to 3.18.1 > > Anybody else have this or should I report it? > It's fixed in the last commit. Regards, -- Beno?t Minisini. From claus.dietrich at freenet.de Wed Mar 8 16:54:54 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Wed, 8 Mar 2023 16:54:54 +0100 Subject: [Gambas-user] No Cache Control with gb.web? Message-ID: Hi I couldn't find any property in gb.web to control the cache of the browser. It seems that the cache is always switched off, which is visible in the we-app from Hans which I provided recently for testing. Is there a way or workaround to get the cache controlled or would it be a good idea to add an according property in the response class? Best regards Claus From benoit.minisini at gambas-basic.org Wed Mar 8 16:57:11 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 8 Mar 2023 16:57:11 +0100 Subject: [Gambas-user] IDE Error In-Reply-To: <2f880027-fa85-4243-c7d3-e28860664083@gmail.com> References: <6293b483-1658-2750-df59-7247294a5b08@gmail.com> <189f7c06-c13f-f63b-74ab-51fd829da491@exemail.com.au> <2f880027-fa85-4243-c7d3-e28860664083@gmail.com> Message-ID: Le 08/03/2023 ? 12:42, BB a ?crit?: > > On 8/3/23 3:44 am, T Lee Davidson wrote: >> That is correct. I believe the content of user-dirs.dirs and >> user-dirs.locale are set by the specific distro, not Gambas. > > To be possibly pedantic its more of a problem with the version of the > XDG utilities. This was a consistent problem that I have had over the > years with different distros. > > To put it simply, the XDG scripts are not a *standard* and the distro > installed version is one that is convenient to the distro maintainers, > for their purposes. For example, for years the Ubuntu version was a > complete hack and generally unusable anywhere else. Remember, they are > just shell scripts. > > These days I just install the latest "Portland" version which 99% of the > time works ootb. What you say is right, but it is not related to the problem described in this thread, that I fixed in the last commit. > > > However, there is a bug! Gambas tries to use an internal set of the > utilities. That doesn't work. They are internal in Gambas because of the exact problem you describe: the ones installed on the system are often out of date. It's just that I must update them more frequently. Moreover, the XDG shell scripts are currently slowly replaced by the DBus XDG portal we were talking about in another thread. The advantage of shell scripts is that they do not depend on DBus. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Wed Mar 8 16:59:28 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Wed, 8 Mar 2023 16:59:28 +0100 Subject: [Gambas-user] No Cache Control with gb.web? In-Reply-To: References: Message-ID: Le 08/03/2023 ? 16:54, Claus Dietrich a ?crit?: > Hi > > I couldn't find any property in gb.web to control the cache of the > browser. It seems that the > > cache is always switched off, which is visible in the we-app from Hans > which I provided recently > > for testing. Is there a way or workaround to get the cache controlled or > would it be a good idea > > to add an according property in the response class? > > Best regards > > Claus > Page that are dynamically generated are usually never cached. Otherwise, you can add your own HTTP headers with the Response.AddHeader() method to control the HTTP cache behaviour. Good luck, it is not simple, as the different browsers seem not to react exactly the same way to the HTTP cache headers. Regards, -- Beno?t Minisini. From denisc at exemail.com.au Thu Mar 9 02:45:16 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Thu, 9 Mar 2023 12:45:16 +1100 Subject: [Gambas-user] IDE Error In-Reply-To: <96d61a6e-45b0-a04d-02ec-dfbfde093c6a@gambas-basic.org> References: <96d61a6e-45b0-a04d-02ec-dfbfde093c6a@gambas-basic.org> Message-ID: <3f7a9d6e-44df-b305-1f40-c8c544647b3f@exemail.com.au> On 3/9/23 02:53, Benoit Minisini wrote: > Le 07/03/2023 ? 05:56, Denis Crowther a ?crit?: >> >> The attached error is raised if I click New or Open Project when first >> starting the IDE. Only since upgrading to 3.18.1 >> >> Anybody else have this or should I report it? >> > > It's fixed in the last commit. > > Regards, > Thank You. I'll shortly be installing Gambas on 2 new machines, now I won't have to remember the fix given by Bruce. and thank you for Gambas itself. -- Regards Denis From bsteers4 at gmail.com Thu Mar 9 16:32:19 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 9 Mar 2023 15:32:19 +0000 Subject: [Gambas-user] a form within a form and Resize event Message-ID: I have a form Inside this form are some objects that are other forms. If i resize the top form and the inner forms also resize themselves they do not fire their own resize events. I think they should, as they are actually being resized. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Thu Mar 9 18:32:35 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 9 Mar 2023 19:32:35 +0200 Subject: [Gambas-user] difference ME and SUPER with inherit Message-ID: <20230309172922.M63772@455.co.il> Hello When I inherit a command Does it make a difference if I use: ME or Super Attached is an example that I don't see a difference For example, I change ListBox.Clear which will clear the entire list except for the rhyme "c" Both when I use me and when I use super it works So the question is if there is a difference between them? Thank you -------------- next part -------------- A non-text attachment was scrubbed... Name: super1.tar.xz Type: application/x-xz Size: 12856 bytes Desc: not available URL: From adamnt42 at gmail.com Thu Mar 9 17:10:03 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 10 Mar 2023 02:40:03 +1030 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <20230309172922.M63772@455.co.il> References: <20230309172922.M63772@455.co.il> Message-ID: <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> Yes there is. If you override a parent property or public method then you can use Super to force the reference to the parent item and Me to refer to the local one. Otherwise they just refer to the visible one, if its in the parent then that one is used with either Me or Super. b On 10/3/23 4:02 am, Mayost Sharon wrote: > Hello > When I inherit a command > Does it make a difference if I use: > ME or Super > Attached is an example that I don't see a difference > For example, I change ListBox.Clear which will clear the entire list except for the rhyme "c" > Both when I use me and when I use super it works > So the question is if there is a difference between them? > > Thank you > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Mar 9 17:14:52 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 10 Mar 2023 02:44:52 +1030 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: References: Message-ID: On 10/3/23 2:02 am, Bruce Steers wrote: > I have a form > > Inside this form are some objects that are other forms. > > If i resize the top form and the inner forms also resize themselves > they do not fire their own resize events. > > I think they should, as they are actually being resized. > > Respects > BruceS > Hmm, I use that a lot with forms embedded in TabStrips and don't have that problem. Maybe it depends on the container that your sub-forms are in? b -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Thu Mar 9 17:59:21 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 9 Mar 2023 18:59:21 +0200 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> Message-ID: <20230309165221.M33083@455.co.il> Hello first thanks I could not understand your explanation also I tried to take the example of the documentation: http://gambaswiki.org/wiki/lang/super When I run it gives me an error: INCORRECT OVERRIDEN IN CLASS Attached is an example I tried to run Thanks ---------- Original Message ----------- From: BB To: user at lists.gambas-basic.org Sent: Fri, 10 Mar 2023 02:40:03 +1030 Subject: Re: [Gambas-user] difference ME and SUPER with inherit > Yes there is. > > If you override a parent property or public method then you can use > Super to force the reference to the parent item and Me to refer to the > local one. Otherwise they just refer to the visible one, if its in the > parent then that one is used with either Me or Super. > > b > > On 10/3/23 4:02 am, Mayost Sharon wrote: > > Hello > > When I inherit a command > > Does it make a difference if I use: > > ME or Super > > Attached is an example that I don't see a difference > > For example, I change ListBox.Clear which will clear the entire list except for the rhyme "c" > > Both when I use me and when I use super it works > > So the question is if there is a difference between them? > > > > Thank you > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: super2.tar.xz Type: application/x-xz Size: 12860 bytes Desc: not available URL: From adamnt42 at gmail.com Thu Mar 9 18:09:05 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 10 Mar 2023 03:39:05 +1030 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> Message-ID: <6d66f323-5be4-b1bf-d202-4dbae96f8fe2@gmail.com> *ClassA* Public Function? DoThis(X as integer) as Integer ??? Return X/2 End *ClassB* Public Function DoThis(Y as Integer) as Integer ??? If "IsOdd"(Y) then ??? ??? Return Super.DoThis(Y-1) ??? Else ??? ??? Return(X*2) End Public Sub Main Dim I as Integer ??? For I = 1 to 10 ??? ??? Print DoThis(I) ??? End End -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Thu Mar 9 19:24:18 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 9 Mar 2023 20:24:18 +0200 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <6d66f323-5be4-b1bf-d202-4dbae96f8fe2@gmail.com> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <6d66f323-5be4-b1bf-d202-4dbae96f8fe2@gmail.com> Message-ID: <20230309182144.M24174@455.co.il> Hello I try to run your example (the example file is attached) and it gives me errors If possible you can attach an example file that works well Many thanks ---------- Original Message ----------- From: BB To: Gambas Mailing List Sent: Fri, 10 Mar 2023 03:39:05 +1030 Subject: Re: [Gambas-user] difference ME and SUPER with inherit > *ClassA* > > Public Function? DoThis(X as integer) as Integer > > ??? Return X/2 > > End > > *ClassB* > > Public Function DoThis(Y as Integer) as Integer > > ??? If "IsOdd"(Y) then > > ??? ??? Return Super.DoThis(Y-1) > > ??? Else > > ??? ??? Return(X*2) > > End > > Public Sub Main > > Dim I as Integer > > ??? For I = 1 to 10 > > ??? ??? Print DoThis(I) > > ??? End > > End ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: super3.tar.xz Type: application/x-xz Size: 12432 bytes Desc: not available URL: From bsteers4 at gmail.com Thu Mar 9 19:30:49 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 9 Mar 2023 18:30:49 +0000 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <20230309165221.M33083@455.co.il> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <20230309165221.M33083@455.co.il> Message-ID: On Thu, 9 Mar 2023 at 17:00, Mayost Sharon wrote: > Hello > > first thanks > I could not understand your explanation > > also > I tried to take the example of the documentation: > http://gambaswiki.org/wiki/lang/super > When I run it gives me an error: > INCORRECT OVERRIDEN IN CLASS > Attached is an example I tried to run > You have much to learn young padwan :) Overrides are incorrect if they do not match the inherited function. you must match if it is Static, Public, Private. you must match the arguments and the return variable. The explanation of the difference of Super and Me should be clear. In the example you linked to in the wiki there is this... ' Reimplements the Add method*Public* *Sub* Add*(*Text *As* *String**,* Key *As* *String**,* *Optional* Pos *As* *Integer* *=* -1*)* ' Adds the item to the list box *Super**.*Add*(*Text*,* Pos*)* ' Adds the key to key array *If* Pos *<* 0 *Then* $aKey*.*Add*(*Key*)* *Else* $aKey*.*Add*(*Key*,* Pos*)* *Endif* $cValue*[*Key*]* *=* Text *End* If that method used Me.Add() and not Super.Add() then it would be in an infinite recursion loop as the local Add() method would just run itself again. You do not want that you want to use the Add() method of the inherited class not your override class. If you cannot understand the explanation then you will just have to wait till you figure it out :) it won't take you long. Yes there is a very clear difference between Super and Me Super = Inherited object Me = local object BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Thu Mar 9 19:49:36 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 10 Mar 2023 05:19:36 +1030 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <20230309182144.M24174@455.co.il> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <6d66f323-5be4-b1bf-d202-4dbae96f8fe2@gmail.com> <20230309182144.M24174@455.co.il> Message-ID: <75741563-6fc6-ec1f-bb66-e295f22c55f7@gmail.com> On 10/3/23 4:54 am, Mayost Sharon wrote: > Hello > > I try to run your example (the example file is attached) and it gives me errors > If possible you can attach an example file that works well > It's just pseudo-code for you to work through in your mind. It wasn't supposed to actually run. b From t.lee.davidson at gmail.com Thu Mar 9 19:57:08 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 9 Mar 2023 13:57:08 -0500 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: References: Message-ID: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> On 3/9/23 10:32, Bruce Steers wrote: > I have a form > > Inside this form are some objects that are other forms. > > If i resize the top form and the inner forms also resize themselves they do not fire their own resize events. > > I think they should, as they are actually being resized. > > Respects > BruceS Are you creating the Child forms with an EventName, or just expecting the Parent to catch the event? -- Lee From sharon at 455.co.il Thu Mar 9 20:05:30 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Thu, 9 Mar 2023 21:05:30 +0200 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <20230309165221.M33083@455.co.il> Message-ID: <20230309184830.M34373@455.co.il> Hello Yes I am this Gambas-user To learn from you But when I try to run the sample it gives an error (I am attaching the sample file "super2.tar.xz" again) for me it gives an error Can you fix the error for me? And so I can study well You helped me a lot when you wrote "recursion loop" If I understood correctly, in the "Clear" part of the example it doesn't matter if we use ME or SUPER ' Reimplements the Clear method public Sub Clear() Super.Clear $aKey.Clear $cValue.Clear End Many thanks again to all the helpers ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Thu, 9 Mar 2023 18:30:49 +0000 Subject: Re: [Gambas-user] difference ME and SUPER with inherit > On Thu, 9 Mar 2023 at 17:00, Mayost Sharon wrote: > > > Hello > > > > first thanks > > I could not understand your explanation > > > > also > > I tried to take the example of the documentation: > > http://gambaswiki.org/wiki/lang/super > > When I run it gives me an error: > > INCORRECT OVERRIDEN IN CLASS > > Attached is an example I tried to run > > > > You have much to learn young padwan :) > Overrides are incorrect if they do not match the inherited function. > you must match if it is Static, Public, Private. you must match the > arguments and the return variable. > > The explanation of the difference of Super and Me should be clear. > > In the example you linked to in the wiki there is this... > > ' Reimplements the Add method*Public* *Sub* Add*(*Text *As* > *String**,* Key *As* *String**,* *Optional* Pos *As* *Integer* *=* > -1*)* > > ' Adds the item to the list box *Super**.*Add*(*Text*,* Pos*)* > ' Adds the key to key array *If* Pos *<* 0 *Then* > $aKey*.*Add*(*Key*)* > *Else* > $aKey*.*Add*(*Key*,* Pos*)* > *Endif* > $cValue*[*Key*]* *=* Text > *End* > > If that method used Me.Add() and not Super.Add() then it would be in > an infinite recursion loop as the local Add() method would just run > itself again. > You do not want that you want to use the Add() method of the inherited > class not your override class. > > If you cannot understand the explanation then you will just have to > wait till you figure it out :) it won't take you long. > > Yes there is a very clear difference between Super and Me > Super = Inherited object > > Me = local object > > BruceS ------- End of Original Message ------- -------------- next part -------------- A non-text attachment was scrubbed... Name: super2.tar.xz Type: application/x-xz Size: 12860 bytes Desc: not available URL: From bsteers4 at gmail.com Thu Mar 9 21:12:28 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 9 Mar 2023 20:12:28 +0000 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <20230309184830.M34373@455.co.il> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <20230309165221.M33083@455.co.il> <20230309184830.M34373@455.co.il> Message-ID: On Thu, 9 Mar 2023 at 19:05, Mayost Sharon wrote: > Hello > > Yes I am this Gambas-user > To learn from you > > But when I try to run the sample it gives an error > (I am attaching the sample file "super2.tar.xz" again) for me it gives an > error > Can you fix the error for me? > And so I can study well > > You helped me a lot when you wrote "recursion loop" > If I understood correctly, in the "Clear" part of the example it doesn't > matter if we use ME or SUPER > ' Reimplements the Clear method > public Sub Clear() > Super.Clear > $aKey.Clear > $cValue.Clear > End > > Many thanks again to all the helpers > Aaah It seems the example in the wiki is wrong :-\ Like I said you must match the arguments the example adds a "Key" arg to the Add method and that is wrong. And it seems you did not understand at all. if you run Me.Clear() in the classes Clear() method it will loop , Me.Clear() IS Clear() Public Sub Clear() Me.Clear() End Is the same as,,, Public Sub Clear() Clear() End You must understand.. The class has inherited another class so it has all it's properties/methods by default. (Me.) Any properties/methods you are *NOT* overriding you can use Me. you will see the inherited classes objects. if you *HAVE* made your own override for a property/method then using Me. will be your own override not the inherited class. You will use Super. to access the inherited objects. Does that make sense? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Thu Mar 9 21:09:19 2023 From: brian at westwoodsvcs.com (Brian G) Date: Thu, 9 Mar 2023 12:09:19 -0800 (PST) Subject: [Gambas-user] Setting Debug break points randomly fail Message-ID: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> I am having an issue with the latest build. When trying to set break points it seems to randomly fail to set the break point. When I double click on a source line, often the break point is not set, but yet if i try at some later time on the same line it will work. I dont know if some changes have been made to the debugger but right now I have had to resort to adding a stop to where i want a break. Has anyone else experienced this? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Mar 9 22:38:06 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 9 Mar 2023 22:38:06 +0100 Subject: [Gambas-user] Setting Debug break points randomly fail In-Reply-To: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> References: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <73a5e6a7-42ab-9a09-8442-baa4ca648230@gambas-basic.org> Le 09/03/2023 ? 21:09, Brian G a ?crit?: > I am having an issue with the latest build. > > When trying to set break points it seems to randomly fail to set the > break point. > When I double click on a source line, often the break point is not set, > but yet if i try at some later time on > the same line it will work. > > I dont know if some changes have been made to the debugger but right now > I have had to resort to > adding a stop to where i want a break. > > Has anyone else experienced this? > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > Yes, there was some changes in the debugger recently (read the git commit logs!), and I have sometimes random problems too now, but I have no idea why at the moment. The change was a workaround of the freeze when debugging a project using the embedded http server (which forks for each request, so the IDE does not talk to the child process running the embedded http server, but to its child). Regards, -- Beno?t Minisini. From sharon at 455.co.il Fri Mar 10 06:07:59 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Fri, 10 Mar 2023 07:07:59 +0200 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <20230309165221.M33083@455.co.il> <20230309184830.M34373@455.co.il> Message-ID: <20230310050413.M41224@455.co.il> Hello Thank you very much Now I was able to understand. If I did me.clear I got: STACK OVERFLOW because it entered an infinite loop. It takes time but eventually I understand. Many thanks again ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Thu, 9 Mar 2023 20:12:28 +0000 Subject: Re: [Gambas-user] difference ME and SUPER with inherit > On Thu, 9 Mar 2023 at 19:05, Mayost Sharon wrote: > > > Hello > > > > Yes I am this Gambas-user > > To learn from you > > > > But when I try to run the sample it gives an error > > (I am attaching the sample file "super2.tar.xz" again) for me it gives an > > error > > Can you fix the error for me? > > And so I can study well > > > > You helped me a lot when you wrote "recursion loop" > > If I understood correctly, in the "Clear" part of the example it doesn't > > matter if we use ME or SUPER > > ' Reimplements the Clear method > > public Sub Clear() > > Super.Clear > > $aKey.Clear > > $cValue.Clear > > End > > > > Many thanks again to all the helpers > > > > Aaah It seems the example in the wiki is wrong :-\ > > Like I said you must match the arguments > the example adds a "Key" arg to the Add method and that is wrong. > > And it seems you did not understand at all. > if you run Me.Clear() in the classes Clear() method it will loop , > Me.Clear() IS Clear() > > Public Sub Clear() > Me.Clear() > End > > Is the same as,,, > Public Sub Clear() > Clear() > End > > You must understand.. > The class has inherited another class so it has all it's properties/methods > by default. (Me.) > Any properties/methods you are *NOT* overriding you can use Me. > you will see the inherited classes objects. > > if you *HAVE* made your own override for a property/method then using Me. > will be your own override not the inherited class. You will use Super. to > access the inherited objects. > > Does that make sense? > BruceS ------- End of Original Message ------- From gambas.fr at gmail.com Fri Mar 10 08:51:28 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 10 Mar 2023 08:51:28 +0100 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> References: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> Message-ID: Le jeu. 9 mars 2023 ? 19:58, T Lee Davidson a ?crit : > On 3/9/23 10:32, Bruce Steers wrote: > > I have a form > > > > Inside this form are some objects that are other forms. > > > > If i resize the top form and the inner forms also resize themselves they > do not fire their own resize events. > > > > I think they should, as they are actually being resized. > > > > Respects > > BruceS > > Are you creating the Child forms with an EventName, or just expecting the > Parent to catch the event? > As Saying Lee I'm quite sure you have redirected involuntary the event handler. If you create a dynamic form As HForm = new MychildForm(hContainer) as "MyForm" All the events of the child (usually named Form_event) are redirected to MyForm_event in the parent form class. So you have two solution: - remove the as "MyForm" sentence so the event is not attached to the parent anymore - If you need to manage some events form the parent you can also do a direct call to the child procedure HForm.Form_resize But note that the LAST value will be the parent form .. not the child. The best way I think will be the first one . And then put some public function to the parent to allow the child to communicate with. Don't forget that Gambas is not VB and the need of using _Resize event is Rare. You have all the bunch of object properties that allow to manage your content positionning automagiquely. But sometime... it is not enouth. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 OMUpTvH/I/4NC9Dn7wB4AAA= From bsteers4 at gmail.com Fri Mar 10 11:26:44 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 10 Mar 2023 10:26:44 +0000 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: References: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> Message-ID: On Fri, 10 Mar 2023 at 07:52, Fabien Bodard wrote: > > > Le jeu. 9 mars 2023 ? 19:58, T Lee Davidson a > ?crit : > >> On 3/9/23 10:32, Bruce Steers wrote: >> > I have a form >> > >> > Inside this form are some objects that are other forms. >> > >> > If i resize the top form and the inner forms also resize themselves >> they do not fire their own resize events. >> > >> > I think they should, as they are actually being resized. >> > >> > Respects >> > BruceS >> >> Are you creating the Child forms with an EventName, or just expecting the >> Parent to catch the event? >> > As Saying Lee I'm quite sure you have redirected involuntary the event > handler. > > If you create a dynamic form > As > HForm = new MychildForm(hContainer) as "MyForm" > > > All the events of the child (usually named Form_event) are redirected to > MyForm_event in the parent form class. > > So you have two solution: > - remove the as "MyForm" sentence so the event is not attached to the > parent anymore > > - If you need to manage some events form the parent you can also do a > direct call to the child procedure > > HForm.Form_resize > > But note that the LAST value will be the parent form .. not the child. > > > > The best way I think will be the first one . > > And then put some public function to the parent to allow the child to > communicate with. > > > Don't forget that Gambas is not VB and the need of using _Resize event is > Rare. You have all the bunch of object properties that allow to manage your > content positionning automagiquely. > > But sometime... it is not enouth. > Yes this time seemed not enough. the problem i have is with objects inside a splitter. If one side gets too small it pumps out pango warnings. I used the Splitter_Resize() event to detect this and limit the size reduction of the left hand panel. That works fine when using the splitter bar. But then resizing the whole window has left me a mystery as to where a resize event is triggered. I tried to make a small test app to show the problem but I found it worked :-/ !! So i will study this mail and investigate and see if i can find the resize trigger, or like you say handle it in FMain. Thank you :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 10 11:48:58 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 10 Mar 2023 10:48:58 +0000 Subject: [Gambas-user] difference ME and SUPER with inherit In-Reply-To: <20230310050413.M41224@455.co.il> References: <20230309172922.M63772@455.co.il> <7701a42f-6e75-0458-21fc-d1f94b484cc3@gmail.com> <20230309165221.M33083@455.co.il> <20230309184830.M34373@455.co.il> <20230310050413.M41224@455.co.il> Message-ID: On Fri, 10 Mar 2023 at 05:04, Mayost Sharon wrote: > Hello > > Thank you very much > > Now I was able to understand. > If I did me.clear I got: STACK OVERFLOW because it entered an infinite > loop. > It takes time but eventually I understand. > > Many thanks again > You see , I told you it wouldn't take you long to figure it out :) I have also just changed the wiki Super page example to be correct and use the same syntax for ListBox.Add() Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From denisc at exemail.com.au Fri Mar 10 13:06:30 2023 From: denisc at exemail.com.au (Denis Crowther) Date: Fri, 10 Mar 2023 23:06:30 +1100 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: References: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> Message-ID: <2719cd68-008e-17f4-5b10-11815199575c@exemail.com.au> On 3/10/23 21:26, Bruce Steers wrote: > > > On Fri, 10 Mar 2023 at 07:52, Fabien Bodard > wrote: > > > > Le jeu. 9 mars 2023 ? 19:58, T Lee Davidson > > a ?crit?: > > On 3/9/23 10:32, Bruce Steers wrote: > > I have a form > > > > Inside this form are some objects that are other forms. > > > > If i resize the top form and the inner forms also resize > themselves they do not fire their own resize events. > > > > I think they should, as they are actually being resized. > > > > Respects > > BruceS > > Are you creating the Child forms with an EventName, or just > expecting the Parent to catch the event? > > As Saying Lee I'm quite sure you have redirected involuntary the > event handler. > > If you create a dynamic form > As > HForm = new MychildForm(hContainer) as "MyForm" > > > All the? events of the child (usually named Form_event) are > redirected to MyForm_event in the parent form class. > > So you have two solution: > - remove the as "MyForm" sentence so the event is not attached to > the parent anymore > > - If you need to manage some events form the parent you can also do > a direct call to the child procedure > > HForm.Form_resize > > But note that the LAST value will be the parent form .. not the child. > > > > The best way I think will be the first one . > > And then put some public function to the parent to allow the child > to communicate with. > > > Don't forget that Gambas is not VB and the need of using _Resize > event is Rare. You have all the bunch of object properties that > allow to manage your content positionning?automagiquely. > > But sometime... it is not enouth. > > > Yes this time seemed not enough. > > the problem i have is with objects inside a splitter. > If one side gets too small it pumps out pango warnings. > I used the Splitter_Resize() event to detect this and limit the size > reduction of the left hand panel. > That works fine when using the splitter bar. > But then resizing the whole window has left me a mystery as to where a > resize event is triggered. > I tried to make a small test app to show the problem but I found it > worked :-/ !! > > So i will study this mail and investigate and see if i can find the > resize trigger, or like you say handle it in FMain. > > Thank you :) > BruceS > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- It would only be a problem when the form is embedded wouldn't it?. So wouldn't storing and tracking the splitter size from the splitter & fmain resizes be the solution? Would you mind posting the solution please, I think this will be a situation for me in the very near future as well. :-) -- Regards Denis From bsteers4 at gmail.com Fri Mar 10 19:43:30 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 10 Mar 2023 18:43:30 +0000 Subject: [Gambas-user] a form within a form and Resize event In-Reply-To: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> References: <749d2267-3c06-b4fb-61f8-a65150cef6af@gmail.com> Message-ID: On Thu, 9 Mar 2023 at 18:58, T Lee Davidson wrote: > On 3/9/23 10:32, Bruce Steers wrote: > > I have a form > > > > Inside this form are some objects that are other forms. > > > > If i resize the top form and the inner forms also resize themselves they > do not fire their own resize events. > > > > I think they should, as they are actually being resized. > > > > Respects > > BruceS > > Are you creating the Child forms with an EventName, or just expecting the > Parent to catch the event? > Yes i tried using an event name but i didn't get a handle_Resize event when resizing the parent form. What I expected was for the child forms own Form_Resize() method to run even though the parent form was being resized. because resizing the parent form resized the child form. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 10 21:50:44 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 10 Mar 2023 20:50:44 +0000 Subject: [Gambas-user] Setting Debug break points randomly fail In-Reply-To: <73a5e6a7-42ab-9a09-8442-baa4ca648230@gambas-basic.org> References: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> <73a5e6a7-42ab-9a09-8442-baa4ca648230@gambas-basic.org> Message-ID: On Thu, 9 Mar 2023 at 21:39, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 09/03/2023 ? 21:09, Brian G a ?crit : > > I am having an issue with the latest build. > > > > When trying to set break points it seems to randomly fail to set the > > break point. > > When I double click on a source line, often the break point is not set, > > but yet if i try at some later time on > > the same line it will work. > > > > I dont know if some changes have been made to the debugger but right now > > I have had to resort to > > adding a stop to where i want a break. > > > > Has anyone else experienced this? > > > > "Failure is the key to success; > > each mistake teaches us something" .. Morihei Ueshiba > > Brian G > > > > Yes, there was some changes in the debugger recently (read the git > commit logs!), and I have sometimes random problems too now, but I have > no idea why at the moment. > > The change was a workaround of the freeze when debugging a project using > the embedded http server (which forks for each request, so the IDE does > not talk to the child process running the embedded http server, but to > its child). > > Regards, > > -- > Beno?t Minisini. > If it even is the debugger? I was just unable to deselect a breakpoint with a double click. At the same time i noticed i could not press the icon in the designer that goes from Code to Form or Form to code. (the arrow, top left of designer, next to save button) I've experienced the Code/Form button not working a few times. I save and select "reload project" then it works again. The same just happened with the breakpoint, after reloading i could double click again to toggle. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Mar 10 21:57:08 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 10 Mar 2023 21:57:08 +0100 Subject: [Gambas-user] Setting Debug break points randomly fail In-Reply-To: References: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> <73a5e6a7-42ab-9a09-8442-baa4ca648230@gambas-basic.org> Message-ID: Le 10/03/2023 ? 21:50, Bruce Steers a ?crit?: > > > On Thu, 9 Mar 2023 at 21:39, Benoit Minisini > > wrote: > > Le 09/03/2023 ? 21:09, Brian G a ?crit?: > > I am having an issue with the latest build. > > > > When trying to set break points it seems to randomly fail to set the > > break point. > > When I double click on a source line, often the break point is > not set, > > but yet if i try at some later time on > > the same line it will work. > > > > I dont know if some changes have been made to the debugger but > right now > > I have had to resort to > > adding a stop to where i want a break. > > > > Has anyone else experienced this? > > > > "Failure is the key to success; > >? ?each mistake teaches us something" ?.. Morihei Ueshiba > > Brian G > > > > Yes, there was some changes in the debugger recently (read the git > commit logs!), and I have sometimes random problems too now, but I have > no idea why at the moment. > > The change was a workaround of the freeze when debugging a project > using > the embedded http server (which forks for each request, so the IDE does > not talk to the child process running the embedded http server, but to > its child). > > Regards, > > -- > Beno?t Minisini. > > > If it even is the debugger? > > I was just unable to deselect a breakpoint with a double click. > > At the same time i noticed i could not press the icon in the designer > that goes from Code to Form or Form to code. (the arrow, top left of > designer, next to save button) > > I've experienced the Code/Form button not working a few times. > I save and select "reload project" then it works again. > > The same just happened with the breakpoint, > after reloading i could double click again to toggle. > > > Respects > BruceS > OK, it's another problem. Sometimes the code window is kept read-only, whereas it should be read-only only when the program is running, and be writable again when the debugger wakes up. -- Beno?t Minisini. From bsteers4 at gmail.com Fri Mar 10 22:11:19 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 10 Mar 2023 21:11:19 +0000 Subject: [Gambas-user] Setting Debug break points randomly fail In-Reply-To: References: <1623842564.19632.1678392559836.JavaMail.zimbra@westwoodsvcs.com> <73a5e6a7-42ab-9a09-8442-baa4ca648230@gambas-basic.org> Message-ID: On Fri, 10 Mar 2023 at 20:58, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 10/03/2023 ? 21:50, Bruce Steers a ?crit : > > > > > > On Thu, 9 Mar 2023 at 21:39, Benoit Minisini > > > > wrote: > > > > Le 09/03/2023 ? 21:09, Brian G a ?crit : > > > I am having an issue with the latest build. > > > > > > When trying to set break points it seems to randomly fail to set > the > > > break point. > > > When I double click on a source line, often the break point is > > not set, > > > but yet if i try at some later time on > > > the same line it will work. > > > > > > I dont know if some changes have been made to the debugger but > > right now > > > I have had to resort to > > > adding a stop to where i want a break. > > > > > > Has anyone else experienced this? > > > > > > "Failure is the key to success; > > > each mistake teaches us something" .. Morihei Ueshiba > > > Brian G > > > > > > > Yes, there was some changes in the debugger recently (read the git > > commit logs!), and I have sometimes random problems too now, but I > have > > no idea why at the moment. > > > > The change was a workaround of the freeze when debugging a project > > using > > the embedded http server (which forks for each request, so the IDE > does > > not talk to the child process running the embedded http server, but > to > > its child). > > > > Regards, > > > > -- > > Beno?t Minisini. > > > > > > If it even is the debugger? > > > > I was just unable to deselect a breakpoint with a double click. > > > > At the same time i noticed i could not press the icon in the designer > > that goes from Code to Form or Form to code. (the arrow, top left of > > designer, next to save button) > > > > I've experienced the Code/Form button not working a few times. > > I save and select "reload project" then it works again. > > > > The same just happened with the breakpoint, > > after reloading i could double click again to toggle. > > > > > > Respects > > BruceS > > > > OK, it's another problem. Sometimes the code window is kept read-only, > whereas it should be read-only only when the program is running, and be > writable again when the debugger wakes up. > > -- > Beno?t Minisini. > Possibly also Bug 2707 bon chance you find it :) Many thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Sat Mar 11 19:36:52 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Sat, 11 Mar 2023 20:36:52 +0200 Subject: [Gambas-user] watch expression on object super Message-ID: <20230311183012.M6362@455.co.il> Hello When I try to check a certain value in the SUPER object, it returns me an error: "UNEXPECTED SUPER" Thank you From t.lee.davidson at gmail.com Sat Mar 11 19:55:48 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 11 Mar 2023 13:55:48 -0500 Subject: [Gambas-user] watch expression on object super In-Reply-To: <20230311183012.M6362@455.co.il> References: <20230311183012.M6362@455.co.il> Message-ID: <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> On 3/11/23 13:36, Mayost Sharon wrote: > Hello > > When I try to check a certain value in the SUPER object, it returns me an error: > "UNEXPECTED SUPER" > > Thank you You really don't give enough information about exactly what you are doing that cause that for us to provide much help. Are you trying to access the value in your code or as a 'watch' expression in the debugger? If in the debugger, don't use SUPER - use the object directly to get its property. If in your code and you have not overridden the property, use ME. -- Lee From philippe.valarcher at free.fr Sat Mar 11 20:10:49 2023 From: philippe.valarcher at free.fr (Philippe Valarcher) Date: Sat, 11 Mar 2023 20:10:49 +0100 Subject: [Gambas-user] [CRASH REPORT] CherchMail Message-ID: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Hello, Damned, my program crashed Gambas that way : Public Function RunPOP(i As Integer) As String????????????????????????????????? 'alimentation des comptes en mails ?? Dim Ligne As Integer, n As Integer, Emails As Integer ?? Dim newLast As String, phrase1 As String, phrase2 As String, monText As String ?? Module1.serveurPop(i) ?? Try Module1.POP.Open?????????????????????????????????????????????????????? 'ouverture de la connexion pop ?? Emails = Module1.POP.count ?? If Emails > 0 Then ????? newLast = Module1.POP[Module1.POP.count - 1].UniqueID ????? If newLast > MailRecu[i].theLast Then ???????? If chkBeep.value Then PlayBeep() ????? Endif ????? monText = txtRun.Text??????????????????????????????????????????????? ' texte des notifications ????? phrase1 = ("Serveur : ") ????? phrase2 = ("Nombre de Courriel(s) : ") ????? monText = Replace(monText, "%p1", phrase1) ????? monText = Replace(monText, "%p2", phrase2) ????? monText = Replace(monText, "%u", Module1.pop.user) ????? monText = Replace(monText, "%s", Module1.pop.host) ????? monText = Replace(monText, "%m", CStr(emails)) ????? AddLog(("Nombre de courriels sur le serveur") & " : " & " [ " & Module1.pop.host & " ] " & " : " & Emails) ????? grvw[i].Rows.Count = Module1.POP.Count ????? For n = 0 To Emails - 1 ???????? newLast = Module1.POP[n].UniqueID ???????? tbstp[i + 1].Text = Accounts[i].Nom & " + " & Module1.POP.Count ???????? ' grvw[i].Columns.Count = 5 ???????? grvw[i][Ligne, 0].Text = CStr(Module1.POP[n].Message.Sender) ???????? grvw[i][Ligne, 1].Text = CStr(Module1.POP[n].Message.Subject) ???????? grvw[i][Ligne, 2].Text = CStr(Module1.POP[n].Message.To) ???????? grvw[i][Ligne, 3].Text = CStr(Module1.POP[n].Message.Headers["Date"]) ???????? grvw[i][Ligne, 4].Text = CStr(Module1.POP[n].Size) ???????? Ligne += 1 ???????? MailRecu[i].index = Module1.POP[n].Index ???????? nbrMail += 1 ????? Next ????? MailRecu[i].theLast = Module1.POP[Emails - 1].UniqueID ????? grvw[i].Tooltip = ("Double-Cliquer sur un message pour le visionner") ?? Else ????? tbstp[i + 1].Text = Accounts[i].Nom ????? With grvw[i] ???????? .Clear ???????? .Refresh ???????? .Rows.Count = 0 ???????? .Columns.Count = 0 ???????? .Tooltip = "" ????? End With ?? Endif ?? Try Module1.POP.Close ?? Try Module1.POP = Null ?? Return monText Catch ?? TimeRemain = TimeInterval ?? Tray.icon = Picture["./ic?nes/mail.png"] ?? Message.Title = ("Horreur!") ?? Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & gb.CrLf & "Code : " & Error.Code) End Public Sub tbstp_MouseDown() ?? Module1.son(Module1.shade) End Cette fontion provoque une erreur de segmentation, si je commente les cinq lignes avec grvw[i] ?a ne plante pas? -- Philippe Valarcher -------------- next part -------------- An HTML attachment was scrubbed... URL: From Karl.Reinl at Fen-Net.de Sat Mar 11 20:06:55 2023 From: Karl.Reinl at Fen-Net.de (Charlie Reinl) Date: Sat, 11 Mar 2023 20:06:55 +0100 Subject: [Gambas-user] any Ideas? Message-ID: <5e52ef4c11fa9d6a84a8cf805d1d09c0cdf55565.camel@Fen-Net.de> Salut, after update to '829a8a16ca60f8bb1a43a0afa3576f155b1b9a01 HEAD' today on loading the first time a project I'v got this (see Attchment) After that I could load all project tested without problems.But this is not the first time this has happened to me, but I didn't pay attention at the time, but I am sure it has happened at least 2 more times. I will see what happens next time, because I need to go back to a previous commit to see why my DBReport is no longer working. -- Amicalement Charlie [System] Gambas=3.18.90 829a8a16c (master) OperatingSystem=Linux Distribution=Ubuntu 20.04.5 LTS Kernel=5.4.0-144-generic Architecture=x86_64 Cores=4 Memory=5911M Language=de_DE.UTF-8 Desktop=MATE DesktopResolution=96 DesktopScale=8 WidgetTheme=menta Font=Ubuntu,11 [Programs] gcc=gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 git=git version 2.25.1 [Libraries] Cairo=libcairo.so.2.11600.0 Curl=libcurl.so.4.6.0 DBus=libdbus-1.so.3.19.11 GDK2=libgdk-x11-2.0.so.0.2400.32 GDK3=libgdk-3.so.0.2404.16 GStreamer=libgstreamer-1.0.so.0.1603.0 GTK+2=libgtk-x11-2.0.so.0.2400.32 GTK+3=libgtk-3.so.0.2404.16 OpenGL=libGL.so.1.7.0 Poppler=libpoppler.so.73.0.0 Poppler=libpoppler.so.97.0.0 QT5=libQt5Core.so.5.12.8 RSvg=librsvg-2.so.2.47.0 SDL=libSDL-1.2.so.0.11.4 SQLite=libsqlite3.so.0.8.6 [Environment] CLUTTER_IM_MODULE=ibus COMPIZ_CONFIG_PROFILE=mate DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DESKTOP_SESSION=mate DISPLAY=:0 GB_GUI=gb.gtk3 GDMSESSION=mate GDM_LANG=de_DE GIO_LAUNCHED_DESKTOP_FILE=/Schreibtisch/gambas3.desktop GIO_LAUNCHED_DESKTOP_FILE_PID=163308 GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1 GTK_IM_MODULE=ibus GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:canberra-gtk-module GTK_OVERLAY_SCROLLING=0 HOME= INSIDE_CAJA_PYTHON= LANG=de_DE.UTF-8 LANGUAGE=de_DE.UTF-8 LC_ALL=de_DE.UTF-8 LOGNAME= MATE_DESKTOP_SESSION_ID=this-is-deprecated PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin PWD= QT4_IM_MODULE=ibus QT_ACCESSIBILITY=1 QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_IM_MODULE=ibus QT_LOGGING_RULES=*.debug=false QT_QPA_PLATFORMTHEME=gtk2 QT_SCALE_FACTOR=1 SESSION_MANAGER=local/:@/tmp/.ICE-unix/1904,unix/:/tmp/.ICE-unix/1904 SHELL=/bin/bash SHLVL=0 SSH_AGENT_PID=2198 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh TZ=:/etc/localtime UBUNTU_MENUPROXY=1 USER= XAUTHORITY=/.Xauthority XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg XDG_CURRENT_DESKTOP=MATE XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/ XDG_RUNTIME_DIR=/run/user/1000 XDG_SEAT=seat0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 XDG_SESSION_CLASS=user XDG_SESSION_DESKTOP=mate XDG_SESSION_ID=c2 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 XDG_SESSION_TYPE=x11 XDG_VTNR=7 XMODIFIERS=@im=ibus -------------- next part -------------- A non-text attachment was scrubbed... Name: Bildschirmfoto zu 2023-03-11 17-45-55.png Type: image/png Size: 33748 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Sat Mar 11 22:51:57 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 11 Mar 2023 22:51:57 +0100 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: <504d93bb-faa7-e902-e5a8-53d67792e2b3@gambas-basic.org> Le 11/03/2023 ? 20:10, Philippe Valarcher a ?crit?: > Hello, > > Damned, my program crashed Gambas that way : > > Public Function RunPOP(i As Integer) As > String????????????????????????????????? 'alimentation des comptes en mails > > ?? Dim Ligne As Integer, n As Integer, Emails As Integer > ?? Dim newLast As String, phrase1 As String, phrase2 As String, monText > As String > > [...] Please send a full project that reproduces the crash, not just the code. Thanks in advance. -- Beno?t Minisini. From t.lee.davidson at gmail.com Sun Mar 12 04:35:19 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sat, 11 Mar 2023 22:35:19 -0500 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: <33431a3b-3d59-caad-4a1a-e82919788e97@gmail.com> On 3/11/23 14:10, Philippe Valarcher wrote: > ?? Dim Ligne As Integer, n As Integer, Emails As Integer > ?? Dim newLast As String, phrase1 As String, phrase2 As String, monText As String Just FYI, you don't need all those "As" statements in the variable declarations. You can simply do: Dim Ligne, n, Emails As Integer Dim newLast, phrase1, phrase2, monText As String You can even assign an initial value to all those on the same line, eg." Dim Ligne, n, Emails As Integer = 1 Dim newLast, phrase1, phrase2, monText As String = "hello" -- Lee From karl.reinl at fen-net.de Sun Mar 12 23:40:25 2023 From: karl.reinl at fen-net.de (Karl Reinl) Date: Sun, 12 Mar 2023 23:40:25 +0100 Subject: [Gambas-user] any Ideas? In-Reply-To: <5e52ef4c11fa9d6a84a8cf805d1d09c0cdf55565.camel@Fen-Net.de> References: <5e52ef4c11fa9d6a84a8cf805d1d09c0cdf55565.camel@Fen-Net.de> Message-ID: Am Samstag, dem 11.03.2023 um 20:06 +0100 schrieb Charlie Reinl: > Salut, > > after update to '829a8a16ca60f8bb1a43a0afa3576f155b1b9a01 HEAD' > today > on loading the first time a project I'v got this (see Attchment) > After that I could load all project tested without problems.But this > is not the first time this has happened to me, but I didn't pay > attention at the time, but I am sure it has happened at least 2 more > times. > I will see what happens next time, because I need to go back to a > previous commit to see why my DBReport is no longer working. > Salut, found it, it was a very bad network connection which reduced the response times quite a lot (2 connection settings both set to DHCP). So it was a timing problem. -- Amicalement Charlie From sharon at 455.co.il Mon Mar 13 08:43:58 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Mon, 13 Mar 2023 09:43:58 +0200 Subject: [Gambas-user] watch expression on object super In-Reply-To: <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> Message-ID: <20230313074346.M88861@455.co.il> ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Sat, 11 Mar 2023 13:55:48 -0500 Subject: Re: [Gambas-user] watch expression on object super > On 3/11/23 13:36, Mayost Sharon wrote: > > Hello > > > > When I try to check a certain value in the SUPER object, it returns me an error: > > "UNEXPECTED SUPER" > > > > Thank you > > You really don't give enough information about exactly what you are doing that > cause that for us to provide much help. Are you trying to access the value in > your code or as a 'watch' expression in the debugger? > > If in the debugger, don't use SUPER - use the object directly to get its property. > If in your code and you have not overridden the property, use ME. > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- Hello Thanks I am trying to access a value in code But I ran over the property For example I made a new TAG property If I check what is in ME.TAG it is not what is in SUPER.TAG And how can I access the value in the code by clicking the right mouse button and then: "Watch expression" Thank you From rwe-sse at osnanet.de Mon Mar 13 09:30:24 2023 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 13 Mar 2023 09:30:24 +0100 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: Am 11.03.23 um 20:10 schrieb Philippe Valarcher: > Hello, > > Damned, my program crashed Gambas that way : > > Public Function RunPOP(i As Integer) As > String????????????????????????????????? 'alimentation des comptes en mails > > ?? Dim Ligne As Integer, n As Integer, Emails As Integer > ?? Dim newLast As String, phrase1 As String, phrase2 As String, monText > As String > > ?? Module1.serveurPop(i) > ?? Try > Module1.POP.Open > 'ouverture de la connexion pop > > ?? Emails = Module1.POP.count > > ?? If Emails > 0 Then > ????? newLast = Module1.POP[Module1.POP.count - 1].UniqueID > ????? If newLast > MailRecu[i].theLast Then > ???????? If chkBeep.value Then PlayBeep() > ????? Endif > ????? monText = > txtRun.Text??????????????????????????????????????????????? ' texte des > notifications > ????? phrase1 = ("Serveur : ") > ????? phrase2 = ("Nombre de Courriel(s) : ") > ????? monText = Replace(monText, "%p1", phrase1) > ????? monText = Replace(monText, "%p2", phrase2) > ????? monText = Replace(monText, "%u", Module1.pop.user) > ????? monText = Replace(monText, "%s", Module1.pop.host) > ????? monText = Replace(monText, "%m", CStr(emails)) > ????? AddLog(("Nombre de courriels sur le serveur") & " : " & " [ " & > Module1.pop.host & " ] " & " : " & Emails) > > ????? grvw[i].Rows.Count = Module1.POP.Count > > ????? For n = 0 To Emails - 1 > ???????? newLast = Module1.POP[n].UniqueID > ???????? tbstp[i + 1].Text = Accounts[i].Nom & " + " & Module1.POP.Count > ???????? ' grvw[i].Columns.Count = 5 > > ???????? grvw[i][Ligne, 0].Text = CStr(Module1.POP[n].Message.Sender) > ???????? grvw[i][Ligne, 1].Text = CStr(Module1.POP[n].Message.Subject) > ???????? grvw[i][Ligne, 2].Text = CStr(Module1.POP[n].Message.To) > ???????? grvw[i][Ligne, 3].Text = > CStr(Module1.POP[n].Message.Headers["Date"]) > ???????? grvw[i][Ligne, 4].Text = CStr(Module1.POP[n].Size) > > ???????? Ligne += 1 > ???????? MailRecu[i].index = Module1.POP[n].Index > ???????? nbrMail += 1 > ????? Next > > ????? MailRecu[i].theLast = Module1.POP[Emails - 1].UniqueID > ????? grvw[i].Tooltip = ("Double-Cliquer sur un message pour le visionner") > > ?? Else > ????? tbstp[i + 1].Text = Accounts[i].Nom > ????? With grvw[i] > ???????? .Clear > ???????? .Refresh > ???????? .Rows.Count = 0 > ???????? .Columns.Count = 0 > ???????? .Tooltip = "" > ????? End With > ?? Endif > > ?? Try Module1.POP.Close > ?? Try Module1.POP = Null > > ?? Return monText > > Catch > ?? TimeRemain = TimeInterval > ?? Tray.icon = Picture["./ic?nes/mail.png"] > ?? Message.Title = ("Horreur!") > ?? Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & > gb.CrLf & "Code : " & Error.Code) > > End > > Public Sub tbstp_MouseDown() > > ?? Module1.son(Module1.shade) > > End > Cette fontion provoque une erreur de segmentation, si je commente les > cinq lignes avec grvw[i] ?a ne plante pas? I tried to answer in French, but my English is better :) What springs into my eye is this: grvw[i].Tooltip = ("Double-Cliquer sur un message pour le visionner") and this: Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & > gb.CrLf & "Code : " & Error.Code) What do you use brackets for in connection with strings? I have never seen that before. Second of all, is grvw a tableview? You spend a lot of effort in calling a bunch of its functions to clear, refresh, then set again and so on. Why not using the tableview's Data event and leave the whole work to the tableview? I might be wrong here, but it looks as if the tableview expects to be "not empty/void", such things are easily overseen and have driven me nuts in the past. This is one point I would start looking for the error. Regards Rolf From adamnt42 at gmail.com Mon Mar 13 09:39:28 2023 From: adamnt42 at gmail.com (BB) Date: Mon, 13 Mar 2023 19:09:28 +1030 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: @Rolf The brackets around literal strings indicates that they are translatable. b On 13/3/23 7:00 pm, Rolf-Werner Eilert wrote: > Am 11.03.23 um 20:10 schrieb Philippe Valarcher: >> Hello, >> >> Damned, my program crashed Gambas that way : >> >> Public Function RunPOP(i As Integer) As >> String????????????????????????????????? 'alimentation des comptes en >> mails >> >> ??? Dim Ligne As Integer, n As Integer, Emails As Integer >> ??? Dim newLast As String, phrase1 As String, phrase2 As String, >> monText As String >> >> ??? Module1.serveurPop(i) >> ??? Try Module1.POP.Open 'ouverture de la connexion pop >> >> ??? Emails = Module1.POP.count >> >> ??? If Emails > 0 Then >> ?????? newLast = Module1.POP[Module1.POP.count - 1].UniqueID >> ?????? If newLast > MailRecu[i].theLast Then >> ????????? If chkBeep.value Then PlayBeep() >> ?????? Endif >> ?????? monText = >> txtRun.Text??????????????????????????????????????????????? ' texte >> des notifications >> ?????? phrase1 = ("Serveur : ") >> ?????? phrase2 = ("Nombre de Courriel(s) : ") >> ?????? monText = Replace(monText, "%p1", phrase1) >> ?????? monText = Replace(monText, "%p2", phrase2) >> ?????? monText = Replace(monText, "%u", Module1.pop.user) >> ?????? monText = Replace(monText, "%s", Module1.pop.host) >> ?????? monText = Replace(monText, "%m", CStr(emails)) >> ?????? AddLog(("Nombre de courriels sur le serveur") & " : " & " [ " >> & Module1.pop.host & " ] " & " : " & Emails) >> >> ?????? grvw[i].Rows.Count = Module1.POP.Count >> >> ?????? For n = 0 To Emails - 1 >> ????????? newLast = Module1.POP[n].UniqueID >> ????????? tbstp[i + 1].Text = Accounts[i].Nom & " + " & >> Module1.POP.Count >> ????????? ' grvw[i].Columns.Count = 5 >> >> ????????? grvw[i][Ligne, 0].Text = CStr(Module1.POP[n].Message.Sender) >> ????????? grvw[i][Ligne, 1].Text = CStr(Module1.POP[n].Message.Subject) >> ????????? grvw[i][Ligne, 2].Text = CStr(Module1.POP[n].Message.To) >> ????????? grvw[i][Ligne, 3].Text = >> CStr(Module1.POP[n].Message.Headers["Date"]) >> ????????? grvw[i][Ligne, 4].Text = CStr(Module1.POP[n].Size) >> >> ????????? Ligne += 1 >> ????????? MailRecu[i].index = Module1.POP[n].Index >> ????????? nbrMail += 1 >> ?????? Next >> >> ?????? MailRecu[i].theLast = Module1.POP[Emails - 1].UniqueID >> ?????? grvw[i].Tooltip = ("Double-Cliquer sur un message pour le >> visionner") >> >> ??? Else >> ?????? tbstp[i + 1].Text = Accounts[i].Nom >> ?????? With grvw[i] >> ????????? .Clear >> ????????? .Refresh >> ????????? .Rows.Count = 0 >> ????????? .Columns.Count = 0 >> ????????? .Tooltip = "" >> ?????? End With >> ??? Endif >> >> ??? Try Module1.POP.Close >> ??? Try Module1.POP = Null >> >> ??? Return monText >> >> Catch >> ??? TimeRemain = TimeInterval >> ??? Tray.icon = Picture["./ic?nes/mail.png"] >> ??? Message.Title = ("Horreur!") >> ??? Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & >> gb.CrLf & "Code : " & Error.Code) >> >> End >> >> Public Sub tbstp_MouseDown() >> >> ??? Module1.son(Module1.shade) >> >> End >> Cette fontion provoque une erreur de segmentation, si je commente les >> cinq lignes avec grvw[i] ?a ne plante pas? > > > I tried to answer in French, but my English is better :) > > What springs into my eye is this: > > grvw[i].Tooltip = ("Double-Cliquer sur un message pour le visionner") > > and this: > > Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & > > gb.CrLf & "Code : " & Error.Code) > > What do you use brackets for in connection with strings? I have never > seen that before. > > Second of all, is grvw a tableview? You spend a lot of effort in > calling a bunch of its functions to clear, refresh, then set again and > so on. Why not using the tableview's Data event and leave the whole > work to the tableview? > > I might be wrong here, but it looks as if the tableview expects to be > "not empty/void", such things are easily overseen and have driven me > nuts in the past. This is one point I would start looking for the error. > > Regards > Rolf > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From rwe-sse at osnanet.de Mon Mar 13 11:21:38 2023 From: rwe-sse at osnanet.de (Rolf-Werner Eilert) Date: Mon, 13 Mar 2023 11:21:38 +0100 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: Am 13.03.23 um 09:39 schrieb BB: > @Rolf > > The brackets around literal strings indicates that they are translatable. Ah ok, I never had a translatable project, just projects for myself, so I've never got in touch with this. Interesting! Thanks for the hint! Rolf > > b > > On 13/3/23 7:00 pm, Rolf-Werner Eilert wrote: >> Am 11.03.23 um 20:10 schrieb Philippe Valarcher: >>> Hello, >>> >>> Damned, my program crashed Gambas that way : >>> >>> Public Function RunPOP(i As Integer) As >>> String????????????????????????????????? 'alimentation des comptes en >>> mails >>> >>> ??? Dim Ligne As Integer, n As Integer, Emails As Integer >>> ??? Dim newLast As String, phrase1 As String, phrase2 As String, >>> monText As String >>> >>> ??? Module1.serveurPop(i) >>> ??? Try Module1.POP.Open 'ouverture de la connexion pop >>> >>> ??? Emails = Module1.POP.count >>> >>> ??? If Emails > 0 Then >>> ?????? newLast = Module1.POP[Module1.POP.count - 1].UniqueID >>> ?????? If newLast > MailRecu[i].theLast Then >>> ????????? If chkBeep.value Then PlayBeep() >>> ?????? Endif >>> ?????? monText = >>> txtRun.Text??????????????????????????????????????????????? ' texte >>> des notifications >>> ?????? phrase1 = ("Serveur : ") >>> ?????? phrase2 = ("Nombre de Courriel(s) : ") >>> ?????? monText = Replace(monText, "%p1", phrase1) >>> ?????? monText = Replace(monText, "%p2", phrase2) >>> ?????? monText = Replace(monText, "%u", Module1.pop.user) >>> ?????? monText = Replace(monText, "%s", Module1.pop.host) >>> ?????? monText = Replace(monText, "%m", CStr(emails)) >>> ?????? AddLog(("Nombre de courriels sur le serveur") & " : " & " [ " >>> & Module1.pop.host & " ] " & " : " & Emails) >>> >>> ?????? grvw[i].Rows.Count = Module1.POP.Count >>> >>> ?????? For n = 0 To Emails - 1 >>> ????????? newLast = Module1.POP[n].UniqueID >>> ????????? tbstp[i + 1].Text = Accounts[i].Nom & " + " & >>> Module1.POP.Count >>> ????????? ' grvw[i].Columns.Count = 5 >>> >>> ????????? grvw[i][Ligne, 0].Text = CStr(Module1.POP[n].Message.Sender) >>> ????????? grvw[i][Ligne, 1].Text = CStr(Module1.POP[n].Message.Subject) >>> ????????? grvw[i][Ligne, 2].Text = CStr(Module1.POP[n].Message.To) >>> ????????? grvw[i][Ligne, 3].Text = >>> CStr(Module1.POP[n].Message.Headers["Date"]) >>> ????????? grvw[i][Ligne, 4].Text = CStr(Module1.POP[n].Size) >>> >>> ????????? Ligne += 1 >>> ????????? MailRecu[i].index = Module1.POP[n].Index >>> ????????? nbrMail += 1 >>> ?????? Next >>> >>> ?????? MailRecu[i].theLast = Module1.POP[Emails - 1].UniqueID >>> ?????? grvw[i].Tooltip = ("Double-Cliquer sur un message pour le >>> visionner") >>> >>> ??? Else >>> ?????? tbstp[i + 1].Text = Accounts[i].Nom >>> ?????? With grvw[i] >>> ????????? .Clear >>> ????????? .Refresh >>> ????????? .Rows.Count = 0 >>> ????????? .Columns.Count = 0 >>> ????????? .Tooltip = "" >>> ?????? End With >>> ??? Endif >>> >>> ??? Try Module1.POP.Close >>> ??? Try Module1.POP = Null >>> >>> ??? Return monText >>> >>> Catch >>> ??? TimeRemain = TimeInterval >>> ??? Tray.icon = Picture["./ic?nes/mail.png"] >>> ??? Message.Title = ("Horreur!") >>> ??? Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & >>> gb.CrLf & "Code : " & Error.Code) >>> >>> End >>> >>> Public Sub tbstp_MouseDown() >>> >>> ??? Module1.son(Module1.shade) >>> >>> End >>> Cette fontion provoque une erreur de segmentation, si je commente les >>> cinq lignes avec grvw[i] ?a ne plante pas? >> >> >> I tried to answer in French, but my English is better :) >> >> What springs into my eye is this: >> >> grvw[i].Tooltip = ("Double-Cliquer sur un message pour le visionner") >> >> and this: >> >> Message(gb.CrLf & ("Une erreur : ") & " RunPOP " & Error.Text & >> > gb.CrLf & "Code : " & Error.Code) >> >> What do you use brackets for in connection with strings? I have never >> seen that before. >> >> Second of all, is grvw a tableview? You spend a lot of effort in >> calling a bunch of its functions to clear, refresh, then set again and >> so on. Why not using the tableview's Data event and leave the whole >> work to the tableview? >> >> I might be wrong here, but it looks as if the tableview expects to be >> "not empty/void", such things are easily overseen and have driven me >> nuts in the past. This is one point I would start looking for the error. >> >> Regards >> Rolf >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > From t.lee.davidson at gmail.com Mon Mar 13 20:55:25 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 13 Mar 2023 15:55:25 -0400 Subject: [Gambas-user] watch expression on object super In-Reply-To: <20230313074346.M88861@455.co.il> References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> <20230313074346.M88861@455.co.il> Message-ID: <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> On 3/13/23 03:43, Mayost Sharon wrote: > Hello > > Thanks > > I am trying to access a value in code > But I ran over the property > > For example I made a new TAG property > If I check what is in ME.TAG it is not what is in SUPER.TAG > And how can I access the value in the code by clicking the right mouse button and then: "Watch expression" > > Thank you Okay, just to be clear, you are talking about accessing a value using the debugger (not in your code). To do what you're asking, first highlight the variable, or object and property, then right-click and select "Watch expression". -- Lee From sharon at 455.co.il Tue Mar 14 05:19:58 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Tue, 14 Mar 2023 06:19:58 +0200 Subject: [Gambas-user] watch expression on object super In-Reply-To: <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> <20230313074346.M88861@455.co.il> <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> Message-ID: <20230314041406.M38005@455.co.il> > Okay, just to be clear, you are talking about accessing a value using the > debugger (not in your code). > > To do what you're asking, first highlight the variable, or object and property, > then right-click and select "Watch expression". > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- Hello If I highlight the variable, or object (Super.Tag) and property, then right-click and select "Watch expression" It returns an error: "UNEXPECTED SUPER" Many thanks From t.lee.davidson at gmail.com Tue Mar 14 15:08:20 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 14 Mar 2023 10:08:20 -0400 Subject: [Gambas-user] watch expression on object super In-Reply-To: <20230314041406.M38005@455.co.il> References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> <20230313074346.M88861@455.co.il> <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> <20230314041406.M38005@455.co.il> Message-ID: On 3/14/23 00:19, Mayost Sharon wrote: [snip] > > Hello > > If I highlight the variable, or object (Super.Tag) and property, then right-click and select "Watch expression" > It returns an error: > "UNEXPECTED SUPER" > > Many thanks I am going to have to point you back to what I said three days ago: https://lists.gambas-basic.org/pipermail/user/2023-March/078799.html Have you overridden the Tag property? If you are unable to answer that question, then you will need to provide a project that demonstrates the issue. -- Lee From benoit.minisini at gambas-basic.org Tue Mar 14 15:46:48 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 14 Mar 2023 15:46:48 +0100 Subject: [Gambas-user] [CRASH REPORT] CherchMail In-Reply-To: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> References: <777226aa16bf239a21674675b3b3e9e99cc7367a.camel@free.fr> Message-ID: <24417892-39a5-1db3-b877-2dc6a7d41628@gambas-basic.org> Le 11/03/2023 ? 20:10, Philippe Valarcher a ?crit?: > Hello, > > Damned, my program crashed Gambas that way : > > Public Function RunPOP(i As Integer) As > String????????????????????????????????? 'alimentation des comptes en mails > > ?? Dim Ligne As Integer, n As Integer, Emails As Integer > ?? Dim newLast As String, phrase1 As String, phrase2 As String, monText > As String > > ?? Module1.serveurPop(i) > ?? Try > Module1.POP.Open > 'ouverture de la connexion pop > > [...] It's fixed in the last commit: https://gitlab.com/gambas/gambas/-/commit/a3f1cccf0b996b2d37afc431a35f8cb1585d5c38 But in my test, for any reason, the underlying 'gmime' library seems to be unable to retrieve the sender of my mails correctly. It often returns a void string, which was leading to a crash before I made that fix. Regards, -- Beno?t Minisini. From sharon at 455.co.il Tue Mar 14 23:16:45 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Wed, 15 Mar 2023 00:16:45 +0200 Subject: [Gambas-user] watch expression on object super In-Reply-To: References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> <20230313074346.M88861@455.co.il> <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> <20230314041406.M38005@455.co.il> Message-ID: <20230314221623.M76283@455.co.il> ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Tue, 14 Mar 2023 10:08:20 -0400 Subject: Re: [Gambas-user] watch expression on object super > On 3/14/23 00:19, Mayost Sharon wrote: > [snip] > > > > Hello > > > > If I highlight the variable, or object (Super.Tag) and property, then right-click and select "Watch expression" > > It returns an error: > > "UNEXPECTED SUPER" > > > > Many thanks > > I am going to have to point you back to what I said three days ago: > https://lists.gambas-basic.org/pipermail/user/2023-March/078799.html > > Have you overridden the Tag property? > > If you are unable to answer that question, then you will need to provide a > project that demonstrates the issue. > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- Hello I answered you in the previous message I override the TAG property I am attaching an example: Click the CLEAR button See the comment I wrote there Many thanks -------------- next part -------------- A non-text attachment was scrubbed... Name: super4.zip Type: application/zip Size: 18003 bytes Desc: not available URL: From adamnt42 at gmail.com Wed Mar 15 00:55:22 2023 From: adamnt42 at gmail.com (BB) Date: Wed, 15 Mar 2023 10:25:22 +1030 Subject: [Gambas-user] watch expression on object super In-Reply-To: <20230314221623.M76283@455.co.il> References: <20230311183012.M6362@455.co.il> <826e757b-a918-cd2a-00b7-41843b4d960a@gmail.com> <20230313074346.M88861@455.co.il> <3f28283e-c0dc-bf5c-ca10-d9c7b851dc1e@gmail.com> <20230314041406.M38005@455.co.il> <20230314221623.M76283@455.co.il> Message-ID: On 15/3/23 8:46 am, Mayost Sharon wrote: 8< stuff OK. Looks like Super and the debugger aren't on speaking terms. ? You might get around this, when you need it, by setting a local variable to the Super value, e.g. Dim sTest as string sTest=Super.Tag_or_someotherstringproperty Print sTest I had a quick go with something similar here and both highlighting and watching sTest work. b From chrisml at deganius.de Wed Mar 15 17:33:59 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 15 Mar 2023 17:33:59 +0100 Subject: [Gambas-user] Bug #2706: Gambas packs the content of .public into executable even if .public is a symlink In-Reply-To: References: Message-ID: <918494f4-2cd0-acee-eee9-afede4ce6544@deganius.de> Hi Beno?t, Am 11.03.23 um 10:37 schrieb bugtracker at gambaswiki.org: > http://gambaswiki.org/bugtracker/edit?object=BUG.2706&from=L21haW4- > > Comment #5 by Beno?t MINISINI: > > Done in https://gitlab.com/gambas/gambas/-/commit/5c5885bac87ca7938097f5df67b59ae40a316c1a. > > Beno?t MINISINI changed the state of the bug to: Fixed. That's very cool. Thank you very much! :-) Alles Gute Christof Thalhofer -- [x] nail here for new monitor From gradobag at gradobag.it Wed Mar 15 17:57:39 2023 From: gradobag at gradobag.it (Gianluigi) Date: Wed, 15 Mar 2023 17:57:39 +0100 Subject: [Gambas-user] ciarea Message-ID: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> A non-text attachment was scrubbed... Name: ProvaTetto-0.0.1.tar.gz Type: application/gzip Size: 44345 bytes Desc: not available URL: From gradobag at gradobag.it Wed Mar 15 18:16:14 2023 From: gradobag at gradobag.it (Gianluigi) Date: Wed, 15 Mar 2023 18:16:14 +0100 Subject: [Gambas-user] ciarea (Question for Christof) In-Reply-To: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> References: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> Message-ID: Hi Christof, I don't understand why, if I send a file to myself, it ends up in the user list. What am I doing wrong? Regards Gianluigi From chrisml at deganius.de Wed Mar 15 22:24:05 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 15 Mar 2023 22:24:05 +0100 Subject: [Gambas-user] ciarea (Question for Christof) In-Reply-To: References: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> Message-ID: <9de31ece-2fbb-4a8b-f675-c7af92a6e820@deganius.de> Hi Gianluigi, Am 15.03.23 um 18:16 schrieb Gianluigi: > Hi Christof, Thanks for my name in the topic. I wouldn't have seen it without it. > I don't understand why, if I send a file to myself, it ends up in the > user list. > What am I doing wrong? Your mail was sent: 'To: gian via User ' The crucial factor is the mail address ''. Please have a look at the headers of the mail you sent. In Thunderbird press when the mail is selected. How did you send this mail "to myself"? 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 gradobag at gradobag.it Wed Mar 15 22:42:33 2023 From: gradobag at gradobag.it (Gianluigi) Date: Wed, 15 Mar 2023 22:42:33 +0100 Subject: [Gambas-user] ciarea (Question for Christof) In-Reply-To: <9de31ece-2fbb-4a8b-f675-c7af92a6e820@deganius.de> References: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> <9de31ece-2fbb-4a8b-f675-c7af92a6e820@deganius.de> Message-ID: <6a831163-6f26-def2-9667-b3d02b82122d@gradobag.it> Il 15/03/23 22:24, Christof Thalhofer ha scritto: > Hi Gianluigi, > > Am 15.03.23 um 18:16 schrieb Gianluigi: > >> Hi Christof, > > Thanks for my name in the topic. I wouldn't have seen it without it. > >> I don't understand why, if I send a file to myself, it ends up in the >> user list. >> What am I doing wrong? > > Your mail was sent: > > 'To: gian via User ' > > The crucial factor is the mail address ''. > > Please have a look at the headers of the mail you sent. In Thunderbird > press when the mail is selected. > > How did you send this mail "to myself"? > > Alles Gute > > Christof Thalhofer Hi Christof, sorry, I took the wrong pill today and am more distracted than usual. The first address that appears when I start typing my name in the recipient now (unlike before with the old provider) is the one of the Gambas milinglist, I have to be careful. Sorry for the trouble, regards Gianluigi From chrisml at deganius.de Thu Mar 16 08:16:07 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 16 Mar 2023 08:16:07 +0100 Subject: [Gambas-user] ciarea (Question for Christof) In-Reply-To: <6a831163-6f26-def2-9667-b3d02b82122d@gradobag.it> References: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> <9de31ece-2fbb-4a8b-f675-c7af92a6e820@deganius.de> <6a831163-6f26-def2-9667-b3d02b82122d@gradobag.it> Message-ID: <265423c1-9b95-4af6-11d8-838edbe8e4d1@deganius.de> Am 15.03.23 um 22:42 schrieb Gianluigi: > sorry, I took the wrong pill today and am more distracted than usual. > The first address that appears when I start typing my name in the > recipient now (unlike before with the old provider) is the one of the > Gambas milinglist, I have to be careful. > > Sorry for the trouble, regards This is no trouble, don't worry. I think we will get more confusions of this kind in future because we will be forced to use SPF and DKIM to get the mails through some strictly configured mailservers. And then we will have to rewrite the "From:" header so that it looks like: "Prename Name via " Currently it is not the case, therefore I wondered how your Thunderbird came to the conclusion to present you this address 'To: gian via User ' as you entered "gian" to write to yourself. 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 Thu Mar 16 08:38:20 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 16 Mar 2023 08:38:20 +0100 Subject: [Gambas-user] Checksum for array and collection Message-ID: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> Hi everybody, I'm in search for a function that returns a checksum for an array or a collection so that I have the possibility to check if the size or content has changed. Any ideas? To create a checksum for a string is easy, for that I use 'Digest["sha1"](sCheckstring)' with 'Digest' from gb.openssl. But how create 'sCheckstring' which represents the content of the array? A simple approach would be to use JSON.Encode($TheArray), but I wonder if there are faster solutions? 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 Mar 16 09:07:04 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Thu, 16 Mar 2023 09:07:04 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> Message-ID: Le jeu. 16 mars 2023 ? 08:39, Christof Thalhofer a ?crit : > > Hi everybody, > > I'm in search for a function that returns a checksum for an array or a > collection so that I have the possibility to check if the size or > content has changed. > > Any ideas? > > To create a checksum for a string is easy, for that I use > > 'Digest["sha1"](sCheckstring)' > > with 'Digest' from gb.openssl. > > But how create 'sCheckstring' which represents the content of the array? > > A simple approach would be to use JSON.Encode($TheArray), but I wonder > if there are faster solutions? I think it's the the faster, For string array you have '.join()' But for Collection you have to deal with gambas tools to put the datas inline and compare them in one shot. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -- Fabien Bodard From gradobag at gradobag.it Thu Mar 16 10:39:36 2023 From: gradobag at gradobag.it (Gianluigi) Date: Thu, 16 Mar 2023 10:39:36 +0100 Subject: [Gambas-user] ciarea (Question for Christof) In-Reply-To: <265423c1-9b95-4af6-11d8-838edbe8e4d1@deganius.de> References: <630392cb-17ec-2bfc-236c-65b3c88b11ec@gradobag.it> <9de31ece-2fbb-4a8b-f675-c7af92a6e820@deganius.de> <6a831163-6f26-def2-9667-b3d02b82122d@gradobag.it> <265423c1-9b95-4af6-11d8-838edbe8e4d1@deganius.de> Message-ID: <4306a623-20e5-7419-ee34-b78cc128a129@gradobag.it> Il 16/03/23 08:16, Christof Thalhofer ha scritto: > Currently it is not the case, therefore I wondered how your > Thunderbird came to the conclusion to present you this address > > 'To: gian via User ' > > as you entered "gian" to write to yourself. Hi Christof, I have no idea why Thunderbird wrote this address in the address book (collected addresses), maybe when I was testing to hang up a deleted thread, anyway I have now deleted it and, as said, I will be more careful in the future. Thank you and regards Gianluigi From mbelmonte at belmotek.net Thu Mar 16 10:37:30 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Thu, 16 Mar 2023 10:37:30 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> Message-ID: El 16/3/23 a las 8:38, Christof Thalhofer escribi?: > Hi everybody, > > I'm in search for a function that returns a checksum for an array or a > collection so that I have the possibility to check if the size or > content has changed. > > Any ideas? Hi, To compare Collections is not simple, but you can use some function like IsDirty() please see the attached project. Regards. Martin. -------------- next part -------------- A non-text attachment was scrubbed... Name: sample-collection-compare-0.0.1.tar.gz Type: application/gzip Size: 12816 bytes Desc: not available URL: From benoit.minisini at gambas-basic.org Thu Mar 16 10:55:32 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 16 Mar 2023 10:55:32 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> Message-ID: <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> Le 16/03/2023 ? 08:38, Christof Thalhofer a ?crit?: > Hi everybody, > > I'm in search for a function that returns a checksum for an array or a > collection so that I have the possibility to check if the size or > content has changed. > > Any ideas? > > To create a checksum for a string is easy, for that I use > > 'Digest["sha1"](sCheckstring)' > > with 'Digest' from gb.openssl. > > But how create 'sCheckstring' which represents the content of the array? > > A simple approach would be to use JSON.Encode($TheArray), but I wonder > if there are faster solutions? > > Alles Gute > > Christof Thalhofer > You can serialize your data in a string, and then get the checksum. Note that you have now a 'gb.hash' component that implements the main checksum routines. hString = Open String For Write Write #hString, MyCollection As Collection ' Or whatever your data is sString = Close #hString Print Hash.SHA256(sString) ' From 'gb.hash' Regards, -- Beno?t Minisini. From mbelmonte at belmotek.net Thu Mar 16 11:42:07 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Thu, 16 Mar 2023 11:42:07 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> Message-ID: El 16/3/23 a las 10:55, Benoit Minisini escribi?: > You can serialize your data in a string if serialize don't use a charter for separate each item there are the possibility of error. oData_state1 = ["key1":"a","key2":"b","key3":"c"] oData_state2 = ["key1":"a","key2":"bc"] Then oData_state1 cold be the same that oData_state2 for the "serialization" method. Regards. From benoit.minisini at gambas-basic.org Thu Mar 16 12:35:35 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 16 Mar 2023 12:35:35 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> Message-ID: <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> Le 16/03/2023 ? 11:42, Mart?n a ?crit?: > El 16/3/23 a las 10:55, Benoit Minisini escribi?: >> You can serialize your data in a string > > if serialize don't use a charter for separate each item there are the > possibility of error. Serialized data is not a string, it's a binary format stored in a string. Look at the documentation of the READ and WRITE functions. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Thu Mar 16 12:36:47 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 16 Mar 2023 12:36:47 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> Message-ID: Le 16/03/2023 ? 12:35, Benoit Minisini a ?crit?: > Le 16/03/2023 ? 11:42, Mart?n a ?crit?: >> El 16/3/23 a las 10:55, Benoit Minisini escribi?: >>> You can serialize your data in a string >> >> if serialize don't use a charter for separate each item there are the >> possibility of error. > > Serialized data is not a string, it's a binary format stored in a > string. Look at the documentation of the READ and WRITE functions. > It's very useful to communicate Gambas data between a process and a background task (see the 'Task' class), or between different processes, or through the network between Gambas programs. Regard, -- Beno?t Minisini. From mbelmonte at belmotek.net Thu Mar 16 13:53:17 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Thu, 16 Mar 2023 13:53:17 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> Message-ID: <58179467-2494-8a3a-75ea-7700c3df450e@belmotek.net> El 16/3/23 a las 12:35, Benoit Minisini escribi?: > Serialized data is not a string, it's a binary format stored in a string ok, You right, it works for general cases. I don't read the documentation but I made some test. serial made this: https://imgur.com/8YyzTI2 It create the string like: C??? ITEMKEY1??? ?ITEM1VALUE C start the collection ? start the item value Then, each item start after some non printable characters. https://imgur.com/8YyzTI2https://imgur.com/8YyzTI2 https://imgur.com/8YyzTI2 From mbelmonte at belmotek.net Thu Mar 16 15:29:57 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Thu, 16 Mar 2023 15:29:57 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> Message-ID: El 16/3/23 a las 12:35, Benoit Minisini escribi?: > Le 16/03/2023 ? 11:42, Mart?n a ?crit?: >> El 16/3/23 a las 10:55, Benoit Minisini escribi?: >>> You can serialize your data in a string >> >> if serialize don't use a charter for separate each item there are the >> possibility of error. > > Serialized data is not a string, it's a binary format stored in a > string. Look at the documentation of the READ and WRITE functions. > > Regards, > I has made the check, serialized method is faster that check recursively the content of the Collection but only in the case that the collection has not changed the number of items, in that case it is faster the other method that takes into account if .Count is different from the initial state, if so it does not make sense to make more checks that involve computation, because the collection is already different from the initial state. So the conclusion is that the most efficient is to use serialisation but only if the collection does not change the number of items. -------------- next part -------------- A non-text attachment was scrubbed... Name: sample-collection-compare-0.0.2.tar.gz Type: application/gzip Size: 13452 bytes Desc: not available URL: From chrisml at deganius.de Thu Mar 16 17:30:29 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Thu, 16 Mar 2023 17:30:29 +0100 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> Message-ID: <8995d4c8-290c-a30b-0482-38520124e2f2@deganius.de> Am 16.03.23 um 15:29 schrieb Mart?n: > I has made the check, serialized method is faster that check recursively > the content of the Collection but only in the case that the collection > has not changed the number of items, in that case it is faster the other > method that takes into account if .Count is different from the initial > state, if so it does not make sense to make more checks that involve > computation, because the collection is already different from the > initial state. > So the conclusion is that the most efficient is to use serialisation but > only if the collection does not change the number of items. Checksum must work with the data being checked alone. Comparing the output of '.Count' would assume that it has previously stored the counted number. This would be another beast. Thanks everybody and thank you for the test! Thank you Beno?t for this nice and fast algorithm. :-) 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 simonlebon54 at yahoo.com Thu Mar 16 19:52:21 2023 From: simonlebon54 at yahoo.com (Steve) Date: Thu, 16 Mar 2023 10:52:21 -0800 Subject: [Gambas-user] Still no drag and drop In-Reply-To: References: Message-ID: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> I am running on fedora. The 3.18.1 update finally came through. It corrected my major problems. However the drag and drop is still non-functional for me. It does not even trigger the event. I am using it on a list box and the dragon drop still does not trigger at all. Get TypeApp for Android -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Thu Mar 16 21:32:03 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Thu, 16 Mar 2023 22:32:03 +0200 Subject: [Gambas-user] Checksum for array and collection In-Reply-To: <8995d4c8-290c-a30b-0482-38520124e2f2@deganius.de> References: <93515cba-f5a0-7281-9a6e-e8adff5952ed@deganius.de> <36654e6a-9d72-9dcc-4a65-a83994f8acb6@gambas-basic.org> <6eb2a229-1c3d-aaef-2df3-de978c186dd9@gambas-basic.org> <8995d4c8-290c-a30b-0482-38520124e2f2@deganius.de> Message-ID: For arrays you can use memcmp from libc. Pointer to the array is in the .data property. That is the fastest, but it doesn't work for collections. Jussi On Thu, Mar 16, 2023 at 6:31?PM Christof Thalhofer wrote: > Am 16.03.23 um 15:29 schrieb Mart?n: > > > I has made the check, serialized method is faster that check recursively > > the content of the Collection but only in the case that the collection > > has not changed the number of items, in that case it is faster the other > > method that takes into account if .Count is different from the initial > > state, if so it does not make sense to make more checks that involve > > computation, because the collection is already different from the > > initial state. > > So the conclusion is that the most efficient is to use serialisation but > > only if the collection does not change the number of items. > > Checksum must work with the data being checked alone. > > Comparing the output of '.Count' would assume that it has previously > stored the counted number. This would be another beast. > > Thanks everybody and thank you for the test! > > Thank you Beno?t for this nice and fast algorithm. > > :-) > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Thu Mar 16 21:32:34 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Thu, 16 Mar 2023 16:32:34 -0400 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> Message-ID: <4d19ea20-ed84-0ace-3672-df58f0a10c30@gmail.com> On 3/16/23 14:52, Steve via User wrote: > I am running on fedora. The 3.18.1 update finally came through. It corrected my major problems. However the drag and drop is > still non-functional for me. It does not even trigger the event. I am using it on a list box and the dragon drop still does not > trigger at all. It works fine here. With just a ListBox, a TextBox, and the following code, I can drag the textbox text to the listbox and add it to the list: [code] ' Gambas class file Public Sub ListBox1_Drop() ListBox1.Add(Drag.Data) End Public Sub TextBox1_MouseDrag() TextBox1.Drag(TextBox1.Text) End [/code] Be sure you have set ListBox.Drop = True. -- Lee From bsteers4 at gmail.com Fri Mar 17 00:19:01 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 16 Mar 2023 23:19:01 +0000 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> Message-ID: On Thu, 16 Mar 2023 at 18:53, Steve via User wrote: > I am running on fedora. The 3.18.1 update finally came through. It > corrected my major problems. However the drag and drop is still > non-functional for me. It does not even trigger the event. I am using it on > a list box and the dragon drop still does not trigger at all. > Please post an example application that does not work. afaik only gtk2 has issues it's possible you are not doing it right. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 17 00:30:16 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 16 Mar 2023 23:30:16 +0000 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> Message-ID: Is your system only using gtk2 and not gtk3 or have you just found it does not work for the old gtk2 toolkit? because gtk2 is pretty obsolete now and a gtk2 only system will be pretty rare, gtk4 is on it's way now, and qt6..... there is a known issue with gtk2 d-n-d , gtk3 and qt4/5 work okay. If you have no specific need for d-n-d on gtk2 then i shouldn't worry about it. most system are going to have gtk3 or above. https://gambaswiki.org/bugtracker/edit?object=BUG.2618&from=L21haW4- BruceS On Thu, 16 Mar 2023 at 18:53, Steve via User wrote: > I am running on fedora. The 3.18.1 update finally came through. It > corrected my major problems. However the drag and drop is still > non-functional for me. It does not even trigger the event. I am using it on > a list box and the dragon drop still does not trigger at all. > > > > Get TypeApp for Android > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonlebon54 at yahoo.com Fri Mar 17 08:18:33 2023 From: simonlebon54 at yahoo.com (Steve) Date: Thu, 16 Mar 2023 23:18:33 -0800 Subject: [Gambas-user] Re drag drop not working In-Reply-To: References: Message-ID: <57d23d1d-7d5b-4cae-b6f9-5210d0f280bd@yahoo.com> I am trying to drag and drop from other applications not from within the same one that might be making a difference. It's still an active problem on bug tracker. And it is gtk2. This project was working fine until the update. And drop a set to true. As I said this is been working perfect for the longest time until this update of the interpreter. running on fedora. The 3.18.1 update finally came through. It corrected my major problems. However the drag and drop is still non-functional for me. It does not even trigger the event. I am using it on a list box and the dragon drop still does not trigger at all. Please post an example application that does not work. afaik only gtk2 has issues it's possible you are not doing it right. Get TypeApp for Android -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Fri Mar 17 08:58:39 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Fri, 17 Mar 2023 09:58:39 +0200 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <4d19ea20-ed84-0ace-3672-df58f0a10c30@gmail.com> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> <4d19ea20-ed84-0ace-3672-df58f0a10c30@gmail.com> Message-ID: <20230317075237.M12732@455.co.il> ---------- Original Message ----------- From: T Lee Davidson To: user at lists.gambas-basic.org Sent: Thu, 16 Mar 2023 16:32:34 -0400 Subject: Re: [Gambas-user] Still no drag and drop > On 3/16/23 14:52, Steve via User wrote: > > I am running on fedora. The 3.18.1 update finally came through. It corrected my major problems. However the drag and drop is > > still non-functional for me. It does not even trigger the event. I am using it on a list box and the dragon drop still does not > > trigger at all. > > It works fine here. With just a ListBox, a TextBox, and the following code, I > can drag the textbox text to the listbox and add it to the list: > > [code] > ' Gambas class file > > Public Sub ListBox1_Drop() > > ListBox1.Add(Drag.Data) > > End > > Public Sub TextBox1_MouseDrag() > > TextBox1.Drag(TextBox1.Text) > > End > [/code] > > Be sure you have set ListBox.Drop = True. > > -- > Lee > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- Hello I'm on Fedora 36 and Gamba 3.18.1 In ListBox when ListBox1.Drop=True it works fine but In TextBox even if TextBox1.Drop=False it also works Is this how it should be? Thank you From sharon at 455.co.il Fri Mar 17 09:15:05 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Fri, 17 Mar 2023 10:15:05 +0200 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <20230317075237.M12732@455.co.il> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> <4d19ea20-ed84-0ace-3672-df58f0a10c30@gmail.com> <20230317075237.M12732@455.co.il> Message-ID: <20230317081358.M804@455.co.il> ---------- Original Message ----------- From: "Mayost Sharon" To: Gambas Mailing List Sent: Fri, 17 Mar 2023 09:58:39 +0200 Subject: Re: [Gambas-user] Still no drag and drop > ---------- Original Message ----------- > From: T Lee Davidson > To: user at lists.gambas-basic.org > Sent: Thu, 16 Mar 2023 16:32:34 -0400 > Subject: Re: [Gambas-user] Still no drag and drop > > > On 3/16/23 14:52, Steve via User wrote: > > > I am running on fedora. The 3.18.1 update finally came through. It corrected my major problems. However the drag and drop is > > > still non-functional for me. It does not even trigger the event. I am using it on a list box and the dragon drop still does not > > > trigger at all. > > > > It works fine here. With just a ListBox, a TextBox, and the following code, I > > can drag the textbox text to the listbox and add it to the list: > > > > [code] > > ' Gambas class file > > > > Public Sub ListBox1_Drop() > > > > ListBox1.Add(Drag.Data) > > > > End > > > > Public Sub TextBox1_MouseDrag() > > > > TextBox1.Drag(TextBox1.Text) > > > > End > > [/code] > > > > Be sure you have set ListBox.Drop = True. > > > > -- > > Lee > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > ------- End of Original Message ------- > > Hello > > I'm on Fedora 36 and Gamba 3.18.1 > In ListBox when ListBox1.Drop=True it works fine > but > In TextBox even if TextBox1.Drop=False it also works > > Is this how it should be? > > Thank you > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- Hello Sorry I notice that if I write in the code TextBox1.Drop=False it really cancels the drop event But if I take a new textbox the default property TextBox1.Drop is false This allows an drop event Thanks From t.lee.davidson at gmail.com Fri Mar 17 14:31:37 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 17 Mar 2023 09:31:37 -0400 Subject: [Gambas-user] Still no drag and drop In-Reply-To: <20230317075237.M12732@455.co.il> References: <2b90f5f8-188f-4b51-8786-9ac9b1b539d6@yahoo.com> <4d19ea20-ed84-0ace-3672-df58f0a10c30@gmail.com> <20230317075237.M12732@455.co.il> Message-ID: On 3/17/23 03:58, Mayost Sharon wrote: > Hello > > I'm on Fedora 36 and Gamba 3.18.1 > In ListBox when ListBox1.Drop=True it works fine > but > In TextBox even if TextBox1.Drop=False it also works > > Is this how it should be? > > Thank you The Drop property returns or sets if a control *accepts* drops. So, to drag from a TextBox to a ListBox, only the ListBox needs to be set with Drop = True. The setting of TextBox.Drop would be irrelevant. -- Lee From t.lee.davidson at gmail.com Fri Mar 17 14:51:24 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 17 Mar 2023 09:51:24 -0400 Subject: [Gambas-user] Re drag drop not working In-Reply-To: <57d23d1d-7d5b-4cae-b6f9-5210d0f280bd@yahoo.com> References: <57d23d1d-7d5b-4cae-b6f9-5210d0f280bd@yahoo.com> Message-ID: On 3/17/23 03:18, Steve via User wrote: > I am trying to drag and drop from other applications not from within the same one that might be making a difference. It's still > an active problem on bug tracker. And it is gtk2. This project was working fine until the update. And drop a set to true. As I > said this is been working perfect for the longest time until this update of the interpreter. Okay, it must be an issue with GTK2. I tried it with both GTK3 and Qt5, and it works as expected dragging from one application to another. -- Lee From benoit.minisini at gambas-basic.org Fri Mar 17 16:04:31 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 17 Mar 2023 16:04:31 +0100 Subject: [Gambas-user] Drag and drop on GTK+2 Message-ID: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> Hi, Drag and drop on GTK+2 should have been fixed by the last commit. Please report if you still have problems. Anyway, you should not use GTK+2 anymore. ..........perhaps we should not use GTK+ at all! :-) -> [] -- Beno?t Minisini. From gambas.fr at gmail.com Fri Mar 17 16:26:48 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 17 Mar 2023 16:26:48 +0100 Subject: [Gambas-user] Gambas web form Message-ID: Hi, How to make WebTable react on a click ?.. or dblClick ? -- Fabien Bodard From t.lee.davidson at gmail.com Fri Mar 17 16:58:06 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 17 Mar 2023 11:58:06 -0400 Subject: [Gambas-user] Gambas web form In-Reply-To: References: Message-ID: On 3/17/23 11:26, Fabien Bodard wrote: > Hi, > > How to make WebTable react on a click ?.. or dblClick ? There was a related discussion about this a couple of weeks ago: https://lists.gambas-basic.org/pipermail/user/2023-March/078696.html WebTable does not raise its own Click event. The Click event is raised when a control in a cell raises its Click event. As for dblClick, catch that with the Activate event. -- Lee From bsteers4 at gmail.com Sat Mar 18 23:11:08 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 18 Mar 2023 22:11:08 +0000 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> Message-ID: On Fri, 17 Mar 2023 at 15:05, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Hi, > > Drag and drop on GTK+2 should have been fixed by the last commit. > > Please report if you still have problems. > > Anyway, you should not use GTK+2 anymore. > > ..........perhaps we should not use GTK+ at all! :-) > it seems more of an option than a need today. and a rubbish option too compared to gtk3 Maybe keep it going until gb.gtk4 then retire it? Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Sun Mar 19 12:19:29 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Sun, 19 Mar 2023 13:19:29 +0200 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> Message-ID: <20230319111623.M97365@455.co.il> ---------- Original Message ----------- From: Bruce Steers To: Gambas Mailing List Sent: Sat, 18 Mar 2023 22:11:08 +0000 Subject: Re: [Gambas-user] Drag and drop on GTK+2 > On Fri, 17 Mar 2023 at 15:05, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > > > Hi, > > > > Drag and drop on GTK+2 should have been fixed by the last commit. > > > > Please report if you still have problems. > > > > Anyway, you should not use GTK+2 anymore. > > > > ..........perhaps we should not use GTK+ at all! :-) > > > > it seems more of an option than a need today. and a rubbish option too > compared to gtk3 > > Maybe keep it going until gb.gtk4 then retire it? > > Respects > BruceS ------- End of Original Message ------- I'm on Fedora 36 Gambas 3.18.1 And I only have GTK3 installed In a text box it responds to the DROP event even if the value is: TextBox1.Drop = False If I define both TextBox1.Drop = True TextBox1.Drop = False This cancels the DROP event I am attaching an example I made a note by pressing the buttons It doesn't seem right Many thanks -------------- next part -------------- A non-text attachment was scrubbed... Name: drag.zip Type: application/zip Size: 16236 bytes Desc: not available URL: From t.lee.davidson at gmail.com Sun Mar 19 20:13:00 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Sun, 19 Mar 2023 15:13:00 -0400 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: <20230319111623.M97365@455.co.il> References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> Message-ID: On 3/19/23 07:19, Mayost Sharon wrote: > I'm on Fedora 36 > Gambas 3.18.1 > And I only have GTK3 installed > > In a text box it responds to the DROP event even if the value is: > TextBox1.Drop = False > > If I define both > TextBox1.Drop = True > TextBox1.Drop = False > > This cancels the DROP event > > I am attaching an example > I made a note by pressing the buttons > > It doesn't seem right > > Many thanks This is actually a different issue than the topic of this thread. But, I confirm that on v3.18.1, the interpreter does not respect the default value of TextBox.Drop until it is programmatically changed. -- Lee KDE Plasma (Qt5) From benoit.minisini at gambas-basic.org Sun Mar 19 20:36:20 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 19 Mar 2023 20:36:20 +0100 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> Message-ID: <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> Le 19/03/2023 ? 20:13, T Lee Davidson a ?crit?: > On 3/19/23 07:19, Mayost Sharon wrote: >> I'm on Fedora 36 >> Gambas 3.18.1 >> And I only have GTK3 installed >> >> In a text box it responds to the DROP event even if the value is: >> TextBox1.Drop = False >> >> If I define both >> TextBox1.Drop = True >> TextBox1.Drop = False >> >> This cancels the DROP event >> >> I am attaching an example >> I made a note by pressing the buttons >> >> It doesn't seem right >> >> Many thanks > > This is actually a different issue than the topic of this thread. > > But, I confirm that on v3.18.1, the interpreter does not respect the > default value of TextBox.Drop until it is programmatically changed. > Mmm... All controls ignore drops by default, except editing controls like TextBox and TextArea, both in Qt and GTK+ by the way. And I ignored that fact, hence the incoherent behaviour you noticed. I will make the Drop property True by default for TextBox and TextArea and see if it raises some other problems. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Sun Mar 19 20:43:54 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 19 Mar 2023 20:43:54 +0100 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> Message-ID: <2a76655f-9391-bd09-acf6-00b37d62e4bb@gambas-basic.org> Le 19/03/2023 ? 20:36, Benoit Minisini a ?crit?: > > Mmm... All controls ignore drops by default, except editing controls > like TextBox and TextArea, both in Qt and GTK+ by the way. And I ignored > that fact, hence the incoherent behaviour you noticed. > > I will make the Drop property True by default for TextBox and TextArea > and see if it raises some other problems. > > Regards, > Done in last commit. Let's see now what happens, if some things break... -- Beno?t Minisini. From bsteers4 at gmail.com Mon Mar 20 12:55:47 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 20 Mar 2023 11:55:47 +0000 Subject: [Gambas-user] Finding the TextEditor search string for FindNextString() Message-ID: If i use TextEditor1.ShowFindPanel() to do a search how can i get the entered search string to use on TextEditor1.FindNextString(SearchString) ? Thanks BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Mar 20 15:47:37 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 20 Mar 2023 14:47:37 +0000 Subject: [Gambas-user] Finding the TextEditor search string for FindNextString() In-Reply-To: References: Message-ID: On Mon, 20 Mar 2023 at 11:55, Bruce Steers wrote: > If i use TextEditor1.ShowFindPanel() to do a search how can i get the > entered search string to use on TextEditor1.FindNextString(SearchString) ? > Never mind. I checked out the source and found it's not designed that way. But here is a way if you need it... I used what i learned from the source to do the following to make a moveNext/Prev command .... Public Sub mnuFindNext_Click() Dim hObject As Object = ActiveEd().TEdit1.Children[0] ' editor view If hObject.Children.Count = 1 Then Return ' FFind is null so return hObject = hObject.Children[1] ' the FFind form hObject.btnNext_Click End Public Sub mnuFindPrev_Click() Dim hObject As Object = ActiveEd().TEdit1.Children[0] If hObject.Children.Count = 1 Then Return hObject = hObject.Children[1] hObject.btnPrevious_Click End Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Mon Mar 20 15:51:22 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 20 Mar 2023 14:51:22 +0000 Subject: [Gambas-user] Finding the TextEditor search string for FindNextString() In-Reply-To: References: Message-ID: On Mon, 20 Mar 2023 at 14:47, Bruce Steers wrote: > > > Never mind. > > But here is a way if you need it... > I used what i learned from the source to do the following to make a > moveNext/Prev command .... > > Public Sub mnuFindNext_Click() > > Dim hObject As Object = ActiveEd().TEdit1.Children[0] ' editor view > If hObject.Children.Count = 1 Then Return ' FFind is null so return > hObject = hObject.Children[1] ' the FFind form > hObject.btnNext_Click > > End > > Public Sub mnuFindPrev_Click() > > Dim hObject As Object = ActiveEd().TEdit1.Children[0] > If hObject.Children.Count = 1 Then Return > hObject = hObject.Children[1] > hObject.btnPrevious_Click > > End > Sorry i meant to edit that so it had TextEditor1 not my pointer to it .... Public Sub mnuFindNext_Click() Dim hObject As Object = TextEditor1.Children[0] ' editor view If hObject.Children.Count = 1 Then Return ' FFind is null so return hObject = hObject.Children[1] ' the FFind form hObject.btnNext_Click End Public Sub mnuFindPrev_Click() Dim hObject As Object = TextEditor1.Children[0] If hObject.Children.Count = 1 Then Return hObject = hObject.Children[1] hObject.btnPrevious_Click End -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Mon Mar 20 17:37:14 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 20 Mar 2023 09:37:14 -0700 (PDT) Subject: [Gambas-user] Adding unsigned byte value to Pointer Message-ID: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> Should adding an unsigned byte value to a pointer work correctly. It generates and error, not pointer All other integer types may be added to a pointer, and work correctly. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Mon Mar 20 19:10:15 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Mon, 20 Mar 2023 14:10:15 -0400 Subject: [Gambas-user] Adding unsigned byte value to Pointer In-Reply-To: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> References: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> On 3/20/23 12:37, Brian G wrote: > Should adding an unsigned byte value to a pointer work correctly. > > It generates and error, not pointer > All other integer types may be added to a pointer, and work correctly. It seems logical that attempting to add an unsigned value to a Pointer would produce an error. However, Shorts are signed and also cannot be added to a Pointer. Keep in mind that Pointers, in Gambas, are unique data types. [code] ' Gambas module file Public Sub Main() Dim pPointer As Pointer Dim bByte As Byte = 255 Dim iShort As Short = bByte Dim iInt As Integer = bByte Dim iLong As Long = bByte ' Print CPointer(bByte) 'Type mismatch: wanted Pointer, got Byte instead ' Print CPointer(iShort) 'Type mismatch: wanted Pointer, got Short instead Print CPointer(iInt) Print CPointer(iLong) Print ' Print pPointer + bByte 'Type mismatch: wanted Pointer, got Byte instead ' Print pPointer + iShort 'Type mismatch: wanted Pointer, got Short instead Print pPointer + iInt Print pPointer + iLong Print Print pPointer + CInt(bByte) End [/code] -- Lee From bsteers4 at gmail.com Mon Mar 20 19:54:15 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 20 Mar 2023 18:54:15 +0000 Subject: [Gambas-user] where does the TextEditor turn "?" to "Print" ? Message-ID: Was going to see if i could get my gambas to replace "??" for "Debug" like it replaces "?" for "Print" cant find where it does it, looked all round gb.form.editor and gb.eval.highlight And clues anyone? Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Mon Mar 20 20:48:12 2023 From: adamnt42 at gmail.com (BB) Date: Tue, 21 Mar 2023 06:18:12 +1030 Subject: [Gambas-user] where does the TextEditor turn "?" to "Print" ? In-Reply-To: References: Message-ID: On 21/3/23 5:24 am, Bruce Steers wrote: > Was going to see if i could get my gambas to replace "??" for "Debug" > like it replaces "?" for "Print" > > cant find where it does it, looked all round gb.form.editor and > gb.eval.highlight > > And clues anyone? > > Cheers > BruceS > Not really, but you could just add a code snippet. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Mon Mar 20 22:05:41 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 20 Mar 2023 22:05:41 +0100 Subject: [Gambas-user] where does the TextEditor turn "?" to "Print" ? In-Reply-To: References: Message-ID: Le 20/03/2023 ? 19:54, Bruce Steers a ?crit?: > Was going to see if i could get my gambas to replace "??" for "Debug" > like it replaces "?" for "Print" > > cant find where it does it, looked all round gb.form.editor and > gb.eval.highlight > > And clues anyone? > > Cheers > BruceS > The TextEditor does nothing. It's the 'gb.eval.highlight' component that has support for highlighting that both highlights and rewrites the highlighted text. The Gambas highlighting is done in the 'gb.eval' component. The transformation of "?" into "PRINT" is done in 'eval_read.c' at line 400 (in 'master'). It's done after the parser has done its job, so it's just a matter of replacing the token for question mark by the token of PRINT, only if we want to rewrite the code ('EVAL->analyze' is 'TRUE' then). Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Mon Mar 20 22:03:44 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 20 Mar 2023 14:03:44 -0700 (PDT) Subject: [Gambas-user] Adding unsigned byte value to Pointer In-Reply-To: <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> References: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> Message-ID: <647783511.22659.1679346224726.JavaMail.zimbra@westwoodsvcs.com> I Hate to disagree, but an unsigned value added to a pointer is just as valid as any other type of value added to a pointer. A pointer is essentially an unsigned value in this context, if I can Add an integer, or long why not any other integer value type... It is inconsistant to fail, as I can add a byte value or short value to a long value..... so there is automatic type conversion taking place. in those cases..., Why not then for byte and short values???? Of course as you point out I can force the type conversion, but why? The byte and short just have to be added to the automatic type conversion to Pointer, as int and long already are. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 20, 2023, at 11:10 AM, T Lee Davidson t.lee.davidson at gmail.com wrote: > On 3/20/23 12:37, Brian G wrote: >> Should adding an unsigned byte value to a pointer work correctly. >> >> It generates and error, not pointer >> All other integer types may be added to a pointer, and work correctly. > > It seems logical that attempting to add an unsigned value to a Pointer would > produce an error. However, Shorts are signed and > also cannot be added to a Pointer. Keep in mind that Pointers, in Gambas, are > unique data types. > > [code] > ' Gambas module file > > Public Sub Main() > > Dim pPointer As Pointer > Dim bByte As Byte = 255 > Dim iShort As Short = bByte > Dim iInt As Integer = bByte > Dim iLong As Long = bByte > > ' Print CPointer(bByte) 'Type mismatch: wanted Pointer, got Byte instead > ' Print CPointer(iShort) 'Type mismatch: wanted Pointer, got Short instead > Print CPointer(iInt) > Print CPointer(iLong) > Print > > ' Print pPointer + bByte 'Type mismatch: wanted Pointer, got Byte instead > ' Print pPointer + iShort 'Type mismatch: wanted Pointer, got Short instead > Print pPointer + iInt > Print pPointer + iLong > Print > > Print pPointer + CInt(bByte) > > End > [/code] > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From jussi.lahtinen at gmail.com Mon Mar 20 22:32:16 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Mon, 20 Mar 2023 23:32:16 +0200 Subject: [Gambas-user] Adding unsigned byte value to Pointer In-Reply-To: <647783511.22659.1679346224726.JavaMail.zimbra@westwoodsvcs.com> References: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> <647783511.22659.1679346224726.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Brian is right, this should work. Pointer is just an unsigned integer with size of 32 or 64 bits depending on the system. Jussi On Mon, Mar 20, 2023 at 11:10?PM Brian G wrote: > I Hate to disagree, but an unsigned value added to a pointer is just as > valid as any other type of value added to a pointer. A pointer is > essentially an unsigned value in this context, if I can Add an integer, or > long why not any other integer value type... > > It is inconsistant to fail, as I can add a byte value or short value to a > long value..... so there is automatic type conversion taking place. in > those cases..., Why not then for byte and short values???? > > Of course as you point out I can force the type conversion, but why? > > The byte and short just have to be added to the automatic type conversion > to Pointer, as int and long already are. > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----- On Mar 20, 2023, at 11:10 AM, T Lee Davidson > t.lee.davidson at gmail.com wrote: > > > On 3/20/23 12:37, Brian G wrote: > >> Should adding an unsigned byte value to a pointer work correctly. > >> > >> It generates and error, not pointer > >> All other integer types may be added to a pointer, and work correctly. > > > > It seems logical that attempting to add an unsigned value to a Pointer > would > > produce an error. However, Shorts are signed and > > also cannot be added to a Pointer. Keep in mind that Pointers, in > Gambas, are > > unique data types. > > > > [code] > > ' Gambas module file > > > > Public Sub Main() > > > > Dim pPointer As Pointer > > Dim bByte As Byte = 255 > > Dim iShort As Short = bByte > > Dim iInt As Integer = bByte > > Dim iLong As Long = bByte > > > > ' Print CPointer(bByte) 'Type mismatch: wanted Pointer, got Byte > instead > > ' Print CPointer(iShort) 'Type mismatch: wanted Pointer, got Short > instead > > Print CPointer(iInt) > > Print CPointer(iLong) > > Print > > > > ' Print pPointer + bByte 'Type mismatch: wanted Pointer, got Byte > instead > > ' Print pPointer + iShort 'Type mismatch: wanted Pointer, got Short > instead > > Print pPointer + iInt > > Print pPointer + iLong > > Print > > > > Print pPointer + CInt(bByte) > > > > End > > [/code] > > > > > > -- > > Lee > > > > > > ----[ 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 Mon Mar 20 23:33:20 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 20 Mar 2023 23:33:20 +0100 Subject: [Gambas-user] Adding unsigned byte value to Pointer In-Reply-To: References: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> <647783511.22659.1679346224726.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <5ae674b3-971f-514e-980f-92f5dfcbadea@gambas-basic.org> Le 20/03/2023 ? 22:32, Jussi Lahtinen a ?crit?: > Brian is right, this should work. Pointer is just an unsigned integer > with size of 32 or 64 bits depending on the system. > > Jussi > In commit 30c5e0af I added implicit conversion of Boolean, Byte and Short values into Pointer. Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Mon Mar 20 23:58:18 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 20 Mar 2023 15:58:18 -0700 (PDT) Subject: [Gambas-user] Adding unsigned byte value to Pointer In-Reply-To: <5ae674b3-971f-514e-980f-92f5dfcbadea@gambas-basic.org> References: <1024945329.22409.1679330234913.JavaMail.zimbra@westwoodsvcs.com> <8cc4fd42-80bf-4e44-136e-648b13fd2956@gmail.com> <647783511.22659.1679346224726.JavaMail.zimbra@westwoodsvcs.com> <5ae674b3-971f-514e-980f-92f5dfcbadea@gambas-basic.org> Message-ID: <71982406.22700.1679353098390.JavaMail.zimbra@westwoodsvcs.com> Thank you Beno?t. Much Appreciated! "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 20, 2023, at 3:33 PM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 20/03/2023 ? 22:32, Jussi Lahtinen a ?crit?: >> Brian is right, this should work. Pointer is just an unsigned integer >> with size of 32 or 64 bits depending on the system. >> >> Jussi >> > > In commit 30c5e0af I added implicit conversion of Boolean, Byte and > Short values into Pointer. > > Regards, > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From brian at westwoodsvcs.com Tue Mar 21 19:44:25 2023 From: brian at westwoodsvcs.com (Brian G) Date: Tue, 21 Mar 2023 11:44:25 -0700 (PDT) Subject: [Gambas-user] Way to tell if an object is a struct Message-ID: <796736239.22833.1679424265345.JavaMail.zimbra@westwoodsvcs.com> Is there some way to tell if an object or object class represents a struct class? Any Ideas "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Mar 21 20:29:55 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 21 Mar 2023 19:29:55 +0000 Subject: [Gambas-user] where does the TextEditor turn "?" to "Print" ? In-Reply-To: References: Message-ID: On Mon, 20 Mar 2023 at 21:06, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 20/03/2023 ? 19:54, Bruce Steers a ?crit : > > Was going to see if i could get my gambas to replace "??" for "Debug" > > like it replaces "?" for "Print" > > > > cant find where it does it, looked all round gb.form.editor and > > gb.eval.highlight > > > > And clues anyone? > > > > Cheers > > BruceS > > > > The TextEditor does nothing. > > It's the 'gb.eval.highlight' component that has support for highlighting > that both highlights and rewrites the highlighted text. > > The Gambas highlighting is done in the 'gb.eval' component. > > The transformation of "?" into "PRINT" is done in 'eval_read.c' at line > 400 (in 'master'). > > It's done after the parser has done its job, so it's just a matter of > replacing the token for question mark by the token of PRINT, only if we > want to rewrite the code ('EVAL->analyze' is 'TRUE' then). > > Regards, > > -- > Beno?t Minisini. > aaah thank you Ben So after some investigating i added this after the existing code to replace ? for Print in eval_read.c ... if (EVAL->analyze && op == RS_AT) op = RS_DEBUG; Made sense to use AT @ as usually i want to use Debug not Print because i want to know there the message is "at". (plus I had no idea how to make it check for double Questionmarks ??) works a treat converting @ to Debug :) Thanks again :) BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Tue Mar 21 20:57:10 2023 From: brian at westwoodsvcs.com (Brian G) Date: Tue, 21 Mar 2023 12:57:10 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures Message-ID: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> When a structure containing a string is written the first byte is the length But when it is read back as the structure it does not use the length byte but does include the len byte into the string field. I am not sure if this is correct or not. p.s. is it possible to have varptr return the memory address of the structure as you can assign a pointer to a structure object. Is this correct or is it a bug, not sure? But I would like to send structured data to another client and recieve it on that side the follow script demonstrates: #!/usr/bin/env gbs3 ' Gambas Script File Created 03/21/2023 12:39:45 Public Struct elevation a As Short b As Long c As Float d As Short e As String End Struct Public Sub main() Dim a As Elevation Dim aa As Elevation Dim aaa As Elevation Dim p As Pointer = Alloc(10000) Dim pp As Pointer = Alloc(10000) Dim ppp as pointer = Alloc(10000) a = ppp a.a = 45 a.b = 98765 a.c = 67.456 a.d = 1 a.e = "hello a.........." aa = pp aa.a = 45 aa.b = 98765 aa.c = 67.465 aa.d = 1 aa.e = "hello aa........" Dim f As File f = Memory p For Write Write #f, a As Variant Close #f f = Memory p For Read aaa = Read #f As Elevation Print "Original :"; For i As Integer = 0 To 50 Print Hex(Byte@(ppp + i), 2);; Next Print print "Write :"; For i As Integer = 0 To 50 Print Hex(Byte@(p + i), 2);; Next Print Print "Check Block :"; For i As Integer = 0 To 50 Print Hex(Byte@(pp + i), 2);; Next Print Print "a :";a.a, a.b, a.c, a.d, a.e Print "aaa :";aaa.a, aaa.b, aaa.c, aaa.d, aaa.e Print "aa :";aa.a, aa.b, aa.c, aa.d, aa.e Free(p) Free(pp) Quit 0 Catch error "Script Error >";;error.text & "\n" & error.where 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 bsteers4 at gmail.com Tue Mar 21 22:00:08 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 21 Mar 2023 21:00:08 +0000 Subject: [Gambas-user] where does the TextEditor turn "?" to "Print" ? In-Reply-To: References: Message-ID: > > On Mon, 20 Mar 2023 at 21:06, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> >> The TextEditor does nothing. >> >> It's the 'gb.eval.highlight' component that has support for highlighting >> that both highlights and rewrites the highlighted text. >> >> The Gambas highlighting is done in the 'gb.eval' component. >> >> The transformation of "?" into "PRINT" is done in 'eval_read.c' at line >> 400 (in 'master'). >> >> It's done after the parser has done its job, so it's just a matter of >> replacing the token for question mark by the token of PRINT, only if we >> want to rewrite the code ('EVAL->analyze' is 'TRUE' then). >> >> Regards, >> >> -- >> Beno?t Minisini. >> > > aaah thank you Ben > > So after some investigating i added this after the existing code to > replace ? for Print in eval_read.c ... > > if (EVAL->analyze && op == RS_AT) > op = RS_DEBUG; > Made sense to use AT @ as usually i want to use Debug not Print because i > want to know there the message is "at". > (plus I had no idea how to make it check for double Questionmarks ??) > > works a treat converting @ to Debug :) > Sorry i got a couple of questions. is it safe using @ ? I know various chars like # and & couldn't be used. i have a funny feeling @ is used for something, iirc pointers so should not be used this way. what would be safe chars to use? Tilde maybe? but i could not find the RS_CODE for ~ tilde Semicolon looks unused Thanks in advance BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Tue Mar 21 23:01:33 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Tue, 21 Mar 2023 18:01:33 -0400 Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> On 3/21/23 15:57, Brian G wrote: > When a structure containing a string is written the first byte is the length > But when it is read back as the structure it does not use the length byte but does include the len byte? into the string field. > I am not sure if this is correct or not. > > p.s. is it possible to have varptr return the memory address of the structure as you can assign a pointer to a structure object. > > Is this correct or is it a bug, not sure? But I would like to send structured data to another client and recieve it on that side > the follow script demonstrates: > [code snipped] > > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G When I try to run that code in the IDE, I get a SegFault at: Write #f, a As Variant -- Lee From Karl.Reinl at Fen-Net.de Tue Mar 21 23:11:27 2023 From: Karl.Reinl at Fen-Net.de (Charlie Reinl) Date: Tue, 21 Mar 2023 23:11:27 +0100 Subject: [Gambas-user] chat.openai.com and gambas3 Message-ID: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> I asked -> Q: fill an array with the files of a directory with gambas3 This is the answer from chat.openai.com -> A: To fill an array with the files of a directory in Gambas 3, you can use the "Dir()" function. This function returns a list of all files and directories in the specified path. Here is an example code that fills an array with the files in a directory: [code] vbnet Public Sub FillArrayWithFiles(directory As String) Dim files[] As String Dim filename As String files = Dir(directory & "/*") For Each filename In files If Not Is_Directory(directory & "/" & filename) Then ' add filename to array Array.Append(files, filename) Endif Next End [/code] This code creates an empty array "files[]" and fills it with all file names in the specified directory. If the path does not exist or is not a directory, an empty array is returned. Note: Note that "Is_Directory()" is another Gambas function that checks whether the path is a directory. You can avoid using this function by using "Dir()" with the "DIRECTORY" option, which only returns directories. << ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI systems more natural and safe to interact with. Your feedback will help us improve. >> Not usable! -- Amicalement Charlie From bsteers4 at gmail.com Tue Mar 21 23:56:40 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 21 Mar 2023 22:56:40 +0000 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> Message-ID: On Tue, 21 Mar 2023, 22:12 Charlie Reinl, wrote: > I asked -> Q: > > fill an array with the files of a directory with gambas3 > > This is the answer from chat.openai.com -> A: > > To fill an array with the files of a directory in Gambas 3, you can use > the "Dir()" function. This function returns a list of all files and > directories in the specified path. > > Here is an example code that fills an array with the files in a > directory: > > [code] > vbnet > > Public Sub FillArrayWithFiles(directory As String) > Dim files[] As String > Dim filename As String > > files = Dir(directory & "/*") > > For Each filename In files > If Not Is_Directory(directory & "/" & filename) Then > ' add filename to array > Array.Append(files, filename) > Endif > Next > End > [/code] > > This code creates an empty array "files[]" and fills it with all file > names in the specified directory. If the path does not exist or is not > a directory, an empty array is returned. > > Note: Note that "Is_Directory()" is another Gambas function that checks > whether the path is a directory. You can avoid using this function by > using "Dir()" with the "DIRECTORY" option, which only returns > directories. > << > ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI > systems more natural and safe to interact with. Your feedback will help > us improve. > >> > > Not usable! > -- > Amicalement > Charlie. So teach it better. That's how it works. ? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 22 00:01:32 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 21 Mar 2023 23:01:32 +0000 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> Message-ID: On Tue, 21 Mar 2023, 22:56 Bruce Steers, wrote: > > > > On Tue, 21 Mar 2023, 22:12 Charlie Reinl, wrote: > >> I asked -> Q: >> >> fill an array with the files of a directory with gambas3 >> >> This is the answer from chat.openai.com -> A: >> >> To fill an array with the files of a directory in Gambas 3, you can use >> the "Dir()" function. This function returns a list of all files and >> directories in the specified path. >> >> Here is an example code that fills an array with the files in a >> directory: >> >> [code] >> vbnet >> >> Public Sub FillArrayWithFiles(directory As String) >> Dim files[] As String >> Dim filename As String >> >> files = Dir(directory & "/*") >> >> For Each filename In files >> If Not Is_Directory(directory & "/" & filename) Then >> ' add filename to array >> Array.Append(files, filename) >> Endif >> Next >> End >> [/code] >> >> This code creates an empty array "files[]" and fills it with all file >> names in the specified directory. If the path does not exist or is not >> a directory, an empty array is returned. >> >> Note: Note that "Is_Directory()" is another Gambas function that checks >> whether the path is a directory. You can avoid using this function by >> using "Dir()" with the "DIRECTORY" option, which only returns >> directories. >> << >> ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI >> systems more natural and safe to interact with. Your feedback will help >> us improve. >> >> >> >> Not usable! >> -- >> Amicalement >> Charlie. > > > So teach it better. > > That's how it works. > > ? > > BruceS > Actually don't. If that thing learns gambas better than me I'll have nothing to do around here or in the forum ? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 22 00:10:06 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 21 Mar 2023 23:10:06 +0000 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> Message-ID: On Tue, 21 Mar 2023, 22:12 Charlie Reinl, wrote: > I asked -> Q: > > fill an array with the files of a directory with gambas3 > > This is the answer from chat.openai.com -> A: > > To fill an array with the files of a directory in Gambas 3, you can use > the "Dir()" function. This function returns a list of all files and > directories in the specified path. > > Here is an example code that fills an array with the files in a > directory: > > [code] > vbnet > > Public Sub FillArrayWithFiles(directory As String) > Dim files[] As String > Dim filename As String > > files = Dir(directory & "/*") > > For Each filename In files > If Not Is_Directory(directory & "/" & filename) Then > ' add filename to array > Array.Append(files, filename) > Endif > Next > End > [/code] > > This code creates an empty array "files[]" and fills it with all file > names in the specified directory. If the path does not exist or is not > a directory, an empty array is returned. > > Note: Note that "Is_Directory()" is another Gambas function that checks > whether the path is a directory. You can avoid using this function by > using "Dir()" with the "DIRECTORY" option, which only returns > directories. > << > ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI > systems more natural and safe to interact with. Your feedback will help > us improve. > >> > > Not usable! > -- > Amicalement > Charlie. > It only partly right. Yes a Dir() function and the read of the array is okay but. Should be IsDir() not Is_Directory() Also Dir takes gb.directory as it's third argument. The second being pattern. I think it's confused itself with a different language. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Wed Mar 22 00:13:56 2023 From: adamnt42 at gmail.com (BB) Date: Wed, 22 Mar 2023 09:43:56 +1030 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> Message-ID: <5e00d9ee-eba4-19af-a5b7-52d4b5253ede@gmail.com> On 22/3/23 9:40 am, Bruce Steers wrote: > > > On Tue, 21 Mar 2023, 22:12 Charlie Reinl, > wrote: > > I asked -> Q: > > fill an array with the files of a directory with gambas3 > > This is the answer from chat.openai.com -> A: > > To fill an array with the files of a directory in Gambas 3, you > can use > the "Dir()" function. This function returns a list of all files and > directories in the specified path. > > Here is an example code that fills an array with the files in a > directory: > > [code] > *vbnet* > > Public Sub FillArrayWithFiles(directory As String) > ? Dim files[] As String > ? Dim filename As String > > ? files = Dir(directory & "/*") > > ? For Each filename In files > ? ? If Not Is_Directory(directory & "/" & filename) Then > ? ? ? ' add filename to array > ? ? ? Array.Append(files, filename) > ? ? Endif > ? Next > End > [/code] > > This code creates an empty array "files[]" and fills it with all file > names in the specified directory. If the path does not exist or is not > a directory, an empty array is returned. > > Note: Note that "Is_Directory()" is another Gambas function that > checks > whether the path is a directory. You can avoid using this function by > using "Dir()" with the "DIRECTORY" option, which only returns > directories. > << > ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI > systems more natural and safe to interact with. Your feedback will > help > us improve. > >> > > Not usable! > -- > Amicalement > Charlie. > > > It only partly right. > Yes a Dir() function and the read of the array is okay but. > > Should be IsDir() not Is_Directory() > Also Dir takes gb.directory as it's third argument. The second being > pattern. > > I think it's confused itself with a different language. > > Perhaps that first line in the code is a clue. ? b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jose.rodriguez at cenpalab.cu Wed Mar 22 01:18:17 2023 From: jose.rodriguez at cenpalab.cu (jose.rodriguez at cenpalab.cu) Date: Tue, 21 Mar 2023 20:18:17 -0400 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: <5e00d9ee-eba4-19af-a5b7-52d4b5253ede@gmail.com> References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> <5e00d9ee-eba4-19af-a5b7-52d4b5253ede@gmail.com> Message-ID: <07a13e016362b3c294c701c4a058f654@cenpalab.cu> On 2023-03-21 19:13, BB wrote: > On 22/3/23 9:40 am, Bruce Steers wrote: >> >> >> I think it's confused itself with a different language. >> >> > Perhaps that first line in the code is a clue. ? > Was going to say the same thing, heh... Regards, Joe1962 From bsteers4 at gmail.com Wed Mar 22 03:01:42 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 22 Mar 2023 02:01:42 +0000 Subject: [Gambas-user] chat.openai.com and gambas3 In-Reply-To: <5e00d9ee-eba4-19af-a5b7-52d4b5253ede@gmail.com> References: <088d947e69155bd249f1ee00a946e4305427e452.camel@Fen-Net.de> <5e00d9ee-eba4-19af-a5b7-52d4b5253ede@gmail.com> Message-ID: On Tue, 21 Mar 2023 at 23:15, BB wrote: > > On 22/3/23 9:40 am, Bruce Steers wrote: > > > > On Tue, 21 Mar 2023, 22:12 Charlie Reinl, wrote: > >> I asked -> Q: >> >> fill an array with the files of a directory with gambas3 >> >> This is the answer from chat.openai.com -> A: >> >> To fill an array with the files of a directory in Gambas 3, you can use >> the "Dir()" function. This function returns a list of all files and >> directories in the specified path. >> >> Here is an example code that fills an array with the files in a >> directory: >> >> [code] >> *vbnet* >> >> Public Sub FillArrayWithFiles(directory As String) >> Dim files[] As String >> Dim filename As String >> >> files = Dir(directory & "/*") >> >> For Each filename In files >> If Not Is_Directory(directory & "/" & filename) Then >> ' add filename to array >> Array.Append(files, filename) >> Endif >> Next >> End >> [/code] >> >> This code creates an empty array "files[]" and fills it with all file >> names in the specified directory. If the path does not exist or is not >> a directory, an empty array is returned. >> >> Note: Note that "Is_Directory()" is another Gambas function that checks >> whether the path is a directory. You can avoid using this function by >> using "Dir()" with the "DIRECTORY" option, which only returns >> directories. >> << >> ChatGPT Mar 14 Version. Free Research Preview. Our goal is to make AI >> systems more natural and safe to interact with. Your feedback will help >> us improve. >> >> >> >> Not usable! >> -- >> Amicalement >> Charlie. >> > > It only partly right. > Yes a Dir() function and the read of the array is okay but. > > Should be IsDir() not Is_Directory() > Also Dir takes gb.directory as it's third argument. The second being > pattern. > > I think it's confused itself with a different language. > >> > Perhaps that first line in the code is a clue. ? > > b > haha , aah I didn't see that. well that explains it then i guess. vb ,,, eeew, Now i feel i need to shower or something :-\ ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Mar 22 05:35:47 2023 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Wed, 22 Mar 2023 07:35:47 +0300 Subject: [Gambas-user] =?utf-8?q?Issues_when_writing_and_reading_structur?= =?utf-8?q?es?= In-Reply-To: <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> Message-ID: <1679459746.985562664@f8.my.com> Are you using 3.18.1 -- Thanks Brian G Tuesday, 21 March 2023, 03:02PM -07:00 from T Lee Davidson t.lee.davidson at gmail.com : >On 3/21/23 15:57, Brian G wrote: > When a structure containing a string is written the first byte is the length > But when it is read back as the structure it does not use the length byte but does include the len byte? into the string field. > I am not sure if this is correct or not. > > p.s. is it possible to have varptr return the memory address of the structure as you can assign a pointer to a structure object. > > Is this correct or is it a bug, not sure? But I would like to send structured data to another client and recieve it on that side > the follow script demonstrates: > >[code snipped] > > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > >When I try to run that code in the IDE, I get a SegFault at: >???Write #f, a As Variant > > >-- >Lee > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From Karl.Reinl at Fen-Net.de Wed Mar 22 08:20:39 2023 From: Karl.Reinl at Fen-Net.de (Charlie Reinl) Date: Wed, 22 Mar 2023 08:20:39 +0100 Subject: [Gambas-user] chat.openai.com and vbNet Message-ID: I asked -> Q: fill an array with the files of a directory with vbNet This is the answer from chat.openai.com -> A: To fill an array with the files of a directory using VB.NET, you can use the Directory.GetFiles method, which returns an array of strings that contain the file names in the specified directory. Here's an example code snippet: [code] vbnet Dim directoryPath As String = "C:\Users\Username\Documents" Dim filesArray As String() = Directory.GetFiles(directoryPath) [/code] In this example, the directoryPath variable contains the path of the directory you want to get the files from. The GetFiles method is called with the directoryPath parameter and returns an array of strings that contains the file names. You can loop through the filesArray to perform operations on each file: [code] vbnet For Each file As String In filesArray ' do something with the file Next [/code] Note that Directory.GetFiles only returns the names of files in the specified directory, not subdirectories. If you want to get files from subdirectories as well, you can use the Directory.GetFiles method overload that takes a search pattern and a SearchOption parameter. For example: [code] vbnet Dim filesArray As String() = Directory.GetFiles(directoryPath, "*.*", SearchOption.AllDirectories) [/code] This code will return an array of strings that contains the names of all files in the specified directory and its subdirectories. ChatGPT Mar 14 Version To see the difference Iasked to do the same but in vbNet As I do not know vbNet syntax (hope that is not rubbish too) -- Amicalement Charlie From bsteers4 at gmail.com Wed Mar 22 15:17:08 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 22 Mar 2023 14:17:08 +0000 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: <2a76655f-9391-bd09-acf6-00b37d62e4bb@gambas-basic.org> References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> <2a76655f-9391-bd09-acf6-00b37d62e4bb@gambas-basic.org> Message-ID: On Sun, 19 Mar 2023 at 19:45, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 19/03/2023 ? 20:36, Benoit Minisini a ?crit : > > > > Mmm... All controls ignore drops by default, except editing controls > > like TextBox and TextArea, both in Qt and GTK+ by the way. And I ignored > > that fact, hence the incoherent behaviour you noticed. > > > > I will make the Drop property True by default for TextBox and TextArea > > and see if it raises some other problems. > > > > Regards, > > > > Done in last commit. Let's see now what happens, if some things break... > I wouldn't say broken but i am now getting this warning if I have set Drop to False on a TextArea.. (_aa:947938): Gtk-WARNING **: 14:10:53.667: Can't set a target list on a widget until you've called gtk_drag_dest_set() to make the widget into a drag destination Only with TextArea , TextBox does not give the warning. Happens if Drop is set to false via code or by the IDE designer. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 22 15:22:56 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 22 Mar 2023 14:22:56 +0000 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> <2a76655f-9391-bd09-acf6-00b37d62e4bb@gambas-basic.org> Message-ID: On Wed, 22 Mar 2023 at 14:17, Bruce Steers wrote: > > > On Sun, 19 Mar 2023 at 19:45, Benoit Minisini < > benoit.minisini at gambas-basic.org> wrote: > >> Le 19/03/2023 ? 20:36, Benoit Minisini a ?crit : >> > >> > Mmm... All controls ignore drops by default, except editing controls >> > like TextBox and TextArea, both in Qt and GTK+ by the way. And I >> ignored >> > that fact, hence the incoherent behaviour you noticed. >> > >> > I will make the Drop property True by default for TextBox and TextArea >> > and see if it raises some other problems. >> > >> > Regards, >> > >> >> Done in last commit. Let's see now what happens, if some things break... >> > > I wouldn't say broken but i am now getting this warning if I have set Drop > to False on a TextArea.. > > (_aa:947938): Gtk-WARNING **: 14:10:53.667: Can't set a target list on a > widget until you've called gtk_drag_dest_set() to make the widget into a > drag destination > > Only with TextArea , TextBox does not give the warning. > Happens if Drop is set to false via code or by the IDE designer. > ps, it is otherwise working as expected , drop is not working if set to false. pps, I get the warning message when closing the application not when it runs or during use. just when exiting. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 22 15:31:40 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 22 Mar 2023 14:31:40 +0000 Subject: [Gambas-user] Drag and drop on GTK+2 In-Reply-To: References: <46f9e1d4-7594-8957-8de1-ce34be20b5eb@gambas-basic.org> <20230319111623.M97365@455.co.il> <8f117217-961e-61e1-201b-4f86338594fc@gambas-basic.org> <2a76655f-9391-bd09-acf6-00b37d62e4bb@gambas-basic.org> Message-ID: On Wed, 22 Mar 2023 at 14:22, Bruce Steers wrote: > > > On Wed, 22 Mar 2023 at 14:17, Bruce Steers wrote: > >> >> >> On Sun, 19 Mar 2023 at 19:45, Benoit Minisini < >> benoit.minisini at gambas-basic.org> wrote: >> >>> Le 19/03/2023 ? 20:36, Benoit Minisini a ?crit : >>> > >>> > Mmm... All controls ignore drops by default, except editing controls >>> > like TextBox and TextArea, both in Qt and GTK+ by the way. And I >>> ignored >>> > that fact, hence the incoherent behaviour you noticed. >>> > >>> > I will make the Drop property True by default for TextBox and TextArea >>> > and see if it raises some other problems. >>> > >>> > Regards, >>> > >>> >>> Done in last commit. Let's see now what happens, if some things break... >>> >> >> I wouldn't say broken but i am now getting this warning if I have set >> Drop to False on a TextArea.. >> >> (_aa:947938): Gtk-WARNING **: 14:10:53.667: Can't set a target list on a >> widget until you've called gtk_drag_dest_set() to make the widget into a >> drag destination >> >> Only with TextArea , TextBox does not give the warning. >> Happens if Drop is set to false via code or by the IDE designer. >> > > ps, it is otherwise working as expected , drop is not working if set to > false. > pps, I get the warning message when closing the application not when it > runs or during use. just when exiting. > One slight bug.. Setting Drop to true of false in the IDE "DOES" toggle the ability to Drop on the object but... if you use the following code... Print TextBox1.Drop It prints False regardless of what it is set to until you explicitly set Drop = True via Code. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Wed Mar 22 16:01:38 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 08:01:38 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <1679459746.985562664@f8.my.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> Message-ID: <1083385618.23125.1679497298357.JavaMail.zimbra@westwoodsvcs.com> Attached is clip of running in ide "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 21, 2023, at 9:35 PM, Brian G wrote: > Are you using 3.18.1 > -- > Thanks > Brian G > Tuesday, 21 March 2023, 03:02PM -07:00 from T Lee Davidson [ > mailto:t.lee.davidson at gmail.com | t.lee.davidson at gmail.com ] : >> On 3/21/23 15:57, Brian G wrote: >> > When a structure containing a string is written the first byte is the length >>> But when it is read back as the structure it does not use the length byte but >> > does include the len byte into the string field. >> > I am not sure if this is correct or not. >>> p.s. is it possible to have varptr return the memory address of the structure as >> > you can assign a pointer to a structure object. >>> Is this correct or is it a bug, not sure? But I would like to send structured >> > data to another client and recieve it on that side >> > the follow script demonstrates: >> [code snipped] >> > "Failure is the key to success; >> > each mistake teaches us something" .. Morihei Ueshiba >> > Brian G >> When I try to run that code in the IDE, I get a SegFault at: >> Write #f, a As Variant >> -- >> Lee >> ----[ [ 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: structfun-2023-03-22_07.58.44.mp4 Type: video/mp4 Size: 285734 bytes Desc: not available URL: From t.lee.davidson at gmail.com Wed Mar 22 16:41:38 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 22 Mar 2023 11:41:38 -0400 Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <1679459746.985562664@f8.my.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> Message-ID: <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> On 3/22/23 00:35, Brian G wrote: > Are you using 3.18.1 > > -- > Thanks > Brian G > > Tuesday, 21 March 2023, 03:02PM -07:00 from T Lee Davidson t.lee.davidson at gmail.com : > [snip] > > When I try to run that code in the IDE, I get a SegFault at: > ???Write #f, a As Variant Yes, I am using v3.18.1. Sorry for neglecting to include that info. I also get a SegFault trying to run it as a script: "gbs3 Error : Script had Segmentation fault, Code=11" Perhaps a segment of my RAM is faulty. -- Lee From brian at westwoodsvcs.com Wed Mar 22 16:47:38 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 08:47:38 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> Message-ID: <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> Which os are you running it on? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 22, 2023, at 8:41 AM, T Lee Davidson t.lee.davidson at gmail.com wrote: > On 3/22/23 00:35, Brian G wrote: >> Are you using 3.18.1 >> >> -- >> Thanks >> Brian G >> >> Tuesday, 21 March 2023, 03:02PM -07:00 from T Lee Davidson >> t.lee.davidson at gmail.com : >> > [snip] >> >> When I try to run that code in the IDE, I get a SegFault at: >> ???Write #f, a As Variant > > Yes, I am using v3.18.1. Sorry for neglecting to include that info. I also get a > SegFault trying to run it as a script: > "gbs3 Error : Script had Segmentation fault, Code=11" > > Perhaps a segment of my RAM is faulty. > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From brian at westwoodsvcs.com Wed Mar 22 17:53:58 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 09:53:58 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1158074459.23440.1679504038587.JavaMail.zimbra@westwoodsvcs.com> I am getting the same segfault at the same place when running on debian 11 with gambas 3.18. I am rebuilding gambas on the platfrom now to see if latest has the same issue. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 22, 2023, at 8:47 AM, Brian G brian at westwoodsvcs.com wrote: > Which os are you running it on? > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----- On Mar 22, 2023, at 8:41 AM, T Lee Davidson t.lee.davidson at gmail.com > wrote: > >> On 3/22/23 00:35, Brian G wrote: >>> Are you using 3.18.1 >>> >>> -- >>> Thanks >>> Brian G >>> >>> Tuesday, 21 March 2023, 03:02PM -07:00 from T Lee Davidson >>> t.lee.davidson at gmail.com : >>> >> [snip] >>> >>> When I try to run that code in the IDE, I get a SegFault at: >>> ???Write #f, a As Variant >> >> Yes, I am using v3.18.1. Sorry for neglecting to include that info. I also get a >> SegFault trying to run it as a script: >> "gbs3 Error : Script had Segmentation fault, Code=11" >> >> Perhaps a segment of my RAM is faulty. >> >> >> -- >> Lee >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From brian at westwoodsvcs.com Wed Mar 22 18:26:17 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 10:26:17 -0700 (PDT) Subject: [Gambas-user] I think this page needs updated on wiki Message-ID: <2116133885.23450.1679505977883.JavaMail.zimbra@westwoodsvcs.com> How To Open, Debug & Compile The IDE The Gambas IDE is written in Gambas. It comes with the Gambas source .tar.bz2 file. * Download Gambas, e.g. Version from [ http://gambas.sourceforge.net/ | http://gambas.sourceforge.net/ ] * Install and compile it according to "Compiling Gambas" page on same server. * Run Gambas * Assume you have installed it in ~/gambas2-1.9.28 . Open Project ~/gambas2-1.9.28/apps/src/gambas2 . * Press the start [ https://gambaswiki.org/wiki/comp/gb.qt4/button | Button ] * You now see the Gambas IDE running in Gambas. You can open your project ... * Close it * Modify something , the background property of one of the forms. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From t.lee.davidson at gmail.com Wed Mar 22 18:52:12 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Wed, 22 Mar 2023 13:52:12 -0400 Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> Message-ID: On 3/22/23 11:47, Brian G wrote: > Which os are you running it on? > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G [System] Gambas=3.18.1 OperatingSystem=Linux Distribution=openSUSE Leap 15.4 Kernel=5.14.21-150400.24.49-default Architecture=x86_64 Cores=6 Memory=15921M Language=en_US.UTF-8 Desktop=KDE -- Lee From brian at westwoodsvcs.com Wed Mar 22 19:10:44 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 11:10:44 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <79762255.23463.1679508644275.JavaMail.zimbra@westwoodsvcs.com> I can confirm that it is issue on Debian even with latest version of gambas built on the platform Will rebuild and test with OpenSUSE now "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 22, 2023, at 10:52 AM, T Lee Davidson t.lee.davidson at gmail.com wrote: > On 3/22/23 11:47, Brian G wrote: >> Which os are you running it on? >> >> "Failure is the key to success; >> each mistake teaches us something" .. Morihei Ueshiba >> Brian G > > [System] > Gambas=3.18.1 > OperatingSystem=Linux > Distribution=openSUSE Leap 15.4 > Kernel=5.14.21-150400.24.49-default > Architecture=x86_64 > Cores=6 > Memory=15921M > Language=en_US.UTF-8 > Desktop=KDE > > > -- > Lee > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From bsteers4 at gmail.com Wed Mar 22 19:31:18 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 22 Mar 2023 18:31:18 +0000 Subject: [Gambas-user] I think this page needs updated on wiki In-Reply-To: <2116133885.23450.1679505977883.JavaMail.zimbra@westwoodsvcs.com> References: <2116133885.23450.1679505977883.JavaMail.zimbra@westwoodsvcs.com> Message-ID: You're absolutely right .. wow gambas2 , i remember those days ,, I had more hair, etc ;) I have just edited it. How To Open, Debug & Compile The IDE The Gambas IDE is written in Gambas. So the IDE source project can be loaded into the IDE for editing. - Be sure you already have Gambas IDE installed. - Download a Gambas source code version from gitlab... Stable Version https://gitlab.com/gambas/gambas/-/archive/stable/gambas-stable.zip Development Version https://gitlab.com/gambas/gambas/-/archive/master/gambas-master.zip - Run your already installed Gambas IDE. - Lets assume you have un-archived the source into a folder called ~/gambas-source. so Open Project ~/gambas-source/app/src/gambas3 - Now you have the gambas IDE project loaded in the gambas IDE. - Press the Start Button - You now see another Gambas IDE is running through the existing Gambas. You can open projects as normal ... - Close the running projects. - Modify something in the IDE source code. (Maybe add some debugging messages) - Save the project and compile the exe using the "make executable" option. *~/gambas-source/app/src/gambas3/gambas3.gambas* will have been created and you can use this instead of the installed version. Or you can copy the new executable to /usr/bin/gambas3.gambas and overwrite the installed version. [[ warning Warning The IDE is a VERY complicated system and you can break your gambas by modifying code. Be aware of this if you report bugs, make sure the bugs exist in the non modified gambas before reporting them. ]] On Wed, 22 Mar 2023 at 17:33, Brian G wrote: > How To Open, Debug & Compile The IDE > > The Gambas IDE is written in Gambas. It comes with the Gambas source > .tar.bz2 file. > > - > > Download Gambas, e.g. Version from http://gambas.sourceforge.net/ > - > > Install and compile it according to "Compiling Gambas" page on same > server. > - > > Run Gambas > - > > Assume you have installed it in ~/gambas2-1.9.28 . > > Open Project ~/gambas2-1.9.28/apps/src/gambas2 . > > - > > Press the start Button > - > > You now see the Gambas IDE running in Gambas. You can open your > project ... > - > > Close it > - > > Modify something , the background property of one of the forms. > > > > "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 brian at westwoodsvcs.com Wed Mar 22 20:01:50 2023 From: brian at westwoodsvcs.com (Brian G) Date: Wed, 22 Mar 2023 12:01:50 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <79762255.23463.1679508644275.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> <79762255.23463.1679508644275.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <216375830.23489.1679511710262.JavaMail.zimbra@westwoodsvcs.com> I can confirn that on openSUSE 15.4 it also segfaults. In more detail on the platforms where it segfaults, it only happens when writing structure and only when writing the entire structure. Any single field within the structure works fine. Reading an entire structure also works fine. And the issue seems to be on debian and openSUSE not on Ubuntu/mint systems I will investigate a little farther "Failure is the key to success; ?each mistake teaches us something" ?.. Morihei Ueshiba Brian G ----- On Mar 22, 2023, at 11:10 AM, Brian G brian at westwoodsvcs.com wrote: > I can confirm that it is issue on Debian even with latest version of gambas > built on the platform > > Will rebuild and test with OpenSUSE now > > "Failure is the key to success; > each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > ----- On Mar 22, 2023, at 10:52 AM, T Lee Davidson t.lee.davidson at gmail.com > wrote: > >> On 3/22/23 11:47, Brian G wrote: >>> Which os are you running it on? >>> >>> "Failure is the key to success; >>> ? each mistake teaches us something" ?.. Morihei Ueshiba >>> Brian G >> >> [System] >> Gambas=3.18.1 >> OperatingSystem=Linux >> Distribution=openSUSE Leap 15.4 >> Kernel=5.14.21-150400.24.49-default >> Architecture=x86_64 >> Cores=6 >> Memory=15921M >> Language=en_US.UTF-8 >> Desktop=KDE >> >> >> -- >> Lee >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From tercoide at hotmail.com Thu Mar 23 13:10:17 2023 From: tercoide at hotmail.com (martin cristia) Date: Thu, 23 Mar 2023 09:10:17 -0300 Subject: [Gambas-user] Installing from Ubuntu PPAs not working In-Reply-To: References: Message-ID: I don't know is it's just me but I'm trying to install Gb ina new system (Ubuntu 22.04) with the usual: First add the PPA to your sources.list. Open a terminal and do: |$ sudo add-apt-repository ppa:gambas-team/gambas-daily | Next update the sources and install Gambas: |$ sudo apt-get update $ sudo apt-get install gambas3 but it's not working, just keeps waiting for headers forever | -- Saludos cordiales Martin -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 23 21:00:08 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 23 Mar 2023 20:00:08 +0000 Subject: [Gambas-user] is it possible to non-virtualize Key.class Message-ID: Could it be possible to non-virtualize Key.class ? I tried to make a Key.class and added variables for the properties and a way to have it either give the usual Key data or the set data. The hope was i could set the variables then trigger a KeyPress event of an object and it could read the fake details. But it failed with "no Keyboard event data" Could it be possible to manually set Key properties then trigger an event? I am once again designing a Keystroke macro recorder for TextEditor. Only this time I am not using x11.SendKey as it fails on wayland and sucks on qt. The easiest way i can see to do it would be to fake Key.class and then run the TextEditors View_KeyPress() event. below is the code that failed, it's incomplete (only handling Ctrl,Shift,Alt modifiers) as it didn't seem to work anyway.. Respects BruceS [code] Key.class Static Property Read Control As Boolean Static Private $bControl As Boolean Static Property Read Shift As Boolean Static Private $bShift As Boolean Static Property Read Alt As Boolean Static Private $bAlt As Boolean Static Property Read Text As String Static Private $sText As String Static Property Read Code As Integer Static Private $iCode As Integer Static $bUseFake As Boolean Static Public Sub ClearFakeCode() $bUseFake = False End Static Public Sub FakeCode((code) As Integer, Optional (Text) As String, Ctrl As Boolean, Shft As Boolean, Alt As Boolean) $iCode = code $sText = Text $bControl = Ctrl $bAlt = Alt $bShift = Shft $bUseFake = True End Static Private Function Code_Read() As Integer If $bUseFake Then Return $iCode Return Super.Code End Static Private Function Control_Read() As Boolean If $bUseFake Then Return $bControl Return Super.Control End Static Private Function Shift_Read() As Boolean If $bUseFake Then Return $bShift Return Super.Shift End Static Private Function Alt_Read() As Boolean If $bUseFake Then Return $bAlt Return Super.Alt End Static Private Function Text_Read() As String If $bUseFake Then Return $sText Return Super.Text End [/code] -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Thu Mar 23 23:07:32 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Thu, 23 Mar 2023 23:07:32 +0100 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: References: Message-ID: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> Le 23/03/2023 ? 21:00, Bruce Steers a ?crit?: > Could it be possible to non-virtualize Key.class ? > > I tried to make a Key.class and added variables for the properties and a > way to have it either give the usual Key data or the set data. > > The hope was i could set the variables then trigger a KeyPress event of > an object and it could read the fake details. > > But it failed with "no Keyboard event data" > Yes, there is no way to forge fake input events in GUI components. -- Beno?t Minisini. From bsteers4 at gmail.com Thu Mar 23 23:42:30 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 23 Mar 2023 22:42:30 +0000 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> Message-ID: On Thu, 23 Mar 2023, 22:08 Benoit Minisini, < benoit.minisini at gambas-basic.org> wrote: > Le 23/03/2023 ? 21:00, Bruce Steers a ?crit : > > Could it be possible to non-virtualize Key.class ? > > > > I tried to make a Key.class and added variables for the properties and a > > way to have it either give the usual Key data or the set data. > > > > The hope was i could set the variables then trigger a KeyPress event of > > an object and it could read the fake details. > > > > But it failed with "no Keyboard event data" > > > > Yes, there is no way to forge fake input events in GUI components. > > -- > Beno?t Minisini. > That's a shame. Could there be? ? I've been doing it differently by importing the whole gb.form.edit source and I copied the View_Keypress method of TextEditor.class and converted it to a MacroKeyPress method that does not use Key properties only constants. But it got complicated as I need to follow up the super.keypress ladder for all .mode files. Having a non virtual Key.class overriding properties would be incredibly useful. Respects BruceS > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 24 02:29:10 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 24 Mar 2023 01:29:10 +0000 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> Message-ID: On Thu, 23 Mar 2023 at 22:42, Bruce Steers wrote: > > > On Thu, 23 Mar 2023, 22:08 Benoit Minisini, < > benoit.minisini at gambas-basic.org> wrote: > >> Le 23/03/2023 ? 21:00, Bruce Steers a ?crit : >> > Could it be possible to non-virtualize Key.class ? >> > >> > I tried to make a Key.class and added variables for the properties and >> a >> > way to have it either give the usual Key data or the set data. >> > >> > The hope was i could set the variables then trigger a KeyPress event of >> > an object and it could read the fake details. >> > >> > But it failed with "no Keyboard event data" >> > >> >> Yes, there is no way to forge fake input events in GUI components. >> >> -- >> Beno?t Minisini. >> > > That's a shame. > Could there be? ? > > I've been doing it differently by importing the whole gb.form.edit source > and I copied the View_Keypress method of TextEditor.class and converted it > to a MacroKeyPress method that does not use Key properties only constants. > > But it got complicated as I need to follow up the super.keypress ladder > for all .mode files. > > Having a non virtual Key.class overriding properties would be incredibly > useful. > Hold the phone... Actually Copying the KeyPress / OnKeyPress methods and changing to be MacroPress / OnMacroPress methods has worked surprisingly well.. downside is i have to have a complete copy of gb.form.editor source so i'll have to update manually if the main updates. and the KeyPress/MacroPress and OnKeyPress/OnMacroPress methods are almost identical code except less a few dots (i changed properties like Key.Text into KeyText) upside is I currently have pretty good control of manually faking TextEditor keyboard presses that I previously recorded. :D Overriding Key.class would have been the simplest way. but i guess my Key.class file does not get checked first like if I have a TextEditor.class file it is looked at before the inherited Super TextEdior.class. If my custom Key.class file did that maybe it would/could work? or is it just bad, ie for security n stuff, just a no no? I think there could be other usefulness of being able to manually set the Key.class properties before manually running a method that expects the virtual Key to exist. But hopefully what i'm doing right now will be a much better macro recorder than the x11 version i previously made. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Mar 24 02:56:49 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 24 Mar 2023 12:26:49 +1030 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> Message-ID: <31f61701-c724-22d4-c1fa-63f6f680bee7@gmail.com> On 24/3/23 11:59 am, Bruce Steers wrote: > > > On Thu, 23 Mar 2023 at 22:42, Bruce Steers > wrote: > > > > On Thu, 23 Mar 2023, 22:08 Benoit Minisini, > > wrote: > > Le 23/03/2023 ? 21:00, Bruce Steers a ?crit?: > > Could it be possible to non-virtualize Key.class ? > > > > I tried to make a Key.class and added variables for the > properties and a > > way to have it either give the usual Key data or the set data. > > > > The hope was i could set the variables then trigger a > KeyPress event of > > an object and it could read the fake details. > > > > But it failed with "no Keyboard event data" > > > > Yes, there is no way to forge fake input events in GUI components. > > -- > Beno?t Minisini. > > > That's a shame. > Could there be? ? > > I've been doing it differently by importing the whole gb.form.edit > source and I copied the View_Keypress method of TextEditor.class > and converted it to a MacroKeyPress method that does not use Key > properties only constants. > > But it got complicated as I need to follow up the super.keypress > ladder for all .mode files. > > Having a non virtual Key.class overriding properties would be > incredibly useful. > > > > Hold the phone... > Actually Copying the KeyPress / OnKeyPress methods and changing to be > MacroPress / OnMacroPress methods has worked surprisingly well.. > > downside is i have to have a complete copy of gb.form.editor source so > i'll have to update manually if the main updates. > and the KeyPress/MacroPress and OnKeyPress/OnMacroPress methods are > almost identical code except less a few dots (i changed properties > like Key.Text into KeyText) > > upside is I currently have pretty good control of manually faking > TextEditor keyboard presses that I previously recorded. > > :D > > Overriding Key.class would have been the simplest way.? but i guess my > Key.class file does not get checked first like if I have a > TextEditor.class file it is looked at before the inherited Super > TextEdior.class. > If my custom Key.class file did that maybe it would/could work? or is > it just bad, ie for security n stuff, just a no no? > > I think there could be other usefulness of being able to manually set > the Key.class properties before manually running a method that expects > the virtual Key to exist. > > But hopefully what i'm doing right now will be a much better macro > recorder than the x11 version i previously made. > > Respects > BruceS > > I haven't followed this very closely and I am a bit unsure as to what your goals are. But could you not use some individual class and set an observer on whatever input controls you are trying to trap (or have I missed the point completely)? b p.s. I have sometimes got a bit over eager myself and tried to "genericise" things too much. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 24 03:23:03 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 24 Mar 2023 02:23:03 +0000 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: <31f61701-c724-22d4-c1fa-63f6f680bee7@gmail.com> References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> <31f61701-c724-22d4-c1fa-63f6f680bee7@gmail.com> Message-ID: On Fri, 24 Mar 2023 at 01:57, BB wrote: > > On 24/3/23 11:59 am, Bruce Steers wrote: > > > > On Thu, 23 Mar 2023 at 22:42, Bruce Steers wrote: > >> >> >> On Thu, 23 Mar 2023, 22:08 Benoit Minisini, < >> benoit.minisini at gambas-basic.org> wrote: >> >>> Le 23/03/2023 ? 21:00, Bruce Steers a ?crit : >>> > Could it be possible to non-virtualize Key.class ? >>> > >>> > I tried to make a Key.class and added variables for the properties and >>> a >>> > way to have it either give the usual Key data or the set data. >>> > >>> > The hope was i could set the variables then trigger a KeyPress event >>> of >>> > an object and it could read the fake details. >>> > >>> > But it failed with "no Keyboard event data" >>> > >>> >>> Yes, there is no way to forge fake input events in GUI components. >>> >>> -- >>> Beno?t Minisini. >>> >> >> That's a shame. >> Could there be? ? >> >> I've been doing it differently by importing the whole gb.form.edit source >> and I copied the View_Keypress method of TextEditor.class and converted it >> to a MacroKeyPress method that does not use Key properties only constants. >> >> But it got complicated as I need to follow up the super.keypress ladder >> for all .mode files. >> >> Having a non virtual Key.class overriding properties would be incredibly >> useful. >> > > > Hold the phone... > Actually Copying the KeyPress / OnKeyPress methods and changing to be > MacroPress / OnMacroPress methods has worked surprisingly well.. > > downside is i have to have a complete copy of gb.form.editor source so > i'll have to update manually if the main updates. > and the KeyPress/MacroPress and OnKeyPress/OnMacroPress methods are almost > identical code except less a few dots (i changed properties like Key.Text > into KeyText) > > upside is I currently have pretty good control of manually faking > TextEditor keyboard presses that I previously recorded. > > :D > > Overriding Key.class would have been the simplest way. but i guess my > Key.class file does not get checked first like if I have a TextEditor.class > file it is looked at before the inherited Super TextEdior.class. > If my custom Key.class file did that maybe it would/could work? or is it > just bad, ie for security n stuff, just a no no? > > I think there could be other usefulness of being able to manually set the > Key.class properties before manually running a method that expects the > virtual Key to exist. > > But hopefully what i'm doing right now will be a much better macro > recorder than the x11 version i previously made. > > Respects > BruceS > > > I haven't followed this very closely and I am a bit unsure as to what your > goals are. > > But could you not use some individual class and set an observer on > whatever input controls you are trying to trap (or have I missed the point > completely)? > > b > > p.s. I have sometimes got a bit over eager myself and tried to > "genericise" things too much. > I have the "trapping" as it were , or "recording" as i call it. but then i want to play the keystrokes back in an editor, the goal is a keystroke recorder. something that records the keypresses as you type, and them plays them back in the editor.. I find it very useful to convert many bits of code, Typical scenario, there's loads of instances of code in a document that all need adjusting but in a way the Search & replace does not really help... So.... You find the code using the search tool (Ctrl-F) then start the keystroke recorder. then using backspace/delete, the arrow keys and combinations of shift/ctrl you select/jump words, edit the bit of code, enter new text, etc, make it different. then you hit F3 to search to the next bit of code. then you stop the recorder then you can play the recorded strokes and the same key events happen on the code then it jumps to the next bit if there is more. so it's not recording (trapping) then keys i need to do , it's playing them back. the TextEditor.class code is all there doing the required stuff but uses Key.class so can only be used during actual key presses, Seems a waste to have to copy all the Keypress code and adapt it to work without key.class. That Key.class i originally posted i would have thought would work but like i say the interpreter looks for a valid Virtual Key.class even though i have faked one so it's a dead end. (unless there's something simple Ben can do so my custom Key.class gets seen and accepted before the virtual one) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Fri Mar 24 12:52:18 2023 From: adamnt42 at gmail.com (BB) Date: Fri, 24 Mar 2023 22:22:18 +1030 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> <31f61701-c724-22d4-c1fa-63f6f680bee7@gmail.com> Message-ID: <1e913f23-5c88-a6b1-e02e-873155fb0ac8@gmail.com> On 24/3/23 12:53 pm, Bruce Steers wrote: > > > On Fri, 24 Mar 2023 at 01:57, BB > wrote: > > > On 24/3/23 11:59 am, Bruce Steers wrote: >> >> >> On Thu, 23 Mar 2023 at 22:42, Bruce Steers > > wrote: >> >> >> >> On Thu, 23 Mar 2023, 22:08 Benoit Minisini, >> > > wrote: >> >> Le 23/03/2023 ? 21:00, Bruce Steers a ?crit?: >> > Could it be possible to non-virtualize Key.class ? >> > >> > I tried to make a Key.class and added variables for the >> properties and a >> > way to have it either give the usual Key data or the >> set data. >> > >> > The hope was i could set the variables then trigger a >> KeyPress event of >> > an object and it could read the fake details. >> > >> > But it failed with "no Keyboard event data" >> > >> >> Yes, there is no way to forge fake input events in GUI >> components. >> >> -- >> Beno?t Minisini. >> >> >> That's a shame. >> Could there be? ? >> >> I've been doing it differently by importing the whole >> gb.form.edit source and I copied the View_Keypress method of >> TextEditor.class and converted it to a MacroKeyPress method >> that does not use Key properties only constants. >> >> But it got complicated as I need to follow up the >> super.keypress ladder for all .mode files. >> >> Having a non virtual Key.class overriding properties would be >> incredibly useful. >> >> >> >> Hold the phone... >> Actually Copying the KeyPress / OnKeyPress methods and changing >> to be MacroPress / OnMacroPress methods has worked surprisingly >> well.. >> >> downside is i have to have a complete copy of gb.form.editor >> source so i'll have to update manually if the main updates. >> and the KeyPress/MacroPress and OnKeyPress/OnMacroPress methods >> are almost identical code except less a few dots (i changed >> properties like Key.Text into KeyText) >> >> upside is I currently have pretty good control of manually faking >> TextEditor keyboard presses that I previously recorded. >> >> :D >> >> Overriding Key.class would have been the simplest way.? but i >> guess my Key.class file does not get checked first like if I have >> a TextEditor.class file it is looked at before the inherited >> Super TextEdior.class. >> If my custom Key.class file did that maybe it would/could work?? >> or is it just bad, ie for security n stuff, just a no no? >> >> I think there could be other usefulness of being able to manually >> set the Key.class properties before manually running a method >> that expects the virtual Key to exist. >> >> But hopefully what i'm doing right now will be a much better >> macro recorder than the x11 version i previously made. >> >> Respects >> BruceS >> >> > I haven't followed this very closely and I am a bit unsure as to > what your goals are. > > But could you not use some individual class and set an observer on > whatever input controls you are trying to trap (or have I missed > the point completely)? > > b > > p.s. I have sometimes got a bit over eager myself and tried to > "genericise" things too much. > > > I have the "trapping" as it were , or "recording" as i call it. but > then i want to play the keystrokes back in an editor, > > the goal is a keystroke recorder. > something that records the keypresses as you type, and them plays them > back in the editor.. > I find it very useful to convert many bits of code, > > Typical scenario, there's loads of instances of code in a document > that all need adjusting but in a way the Search & replace does not > really help... > So.... > You find the code using the search tool (Ctrl-F) > then start the keystroke recorder. > then using backspace/delete, the arrow keys and combinations of > shift/ctrl you select/jump words,? edit the bit of code, enter new > text, etc,? make it different. > then you hit F3 to search to the next bit of code. > then you stop the recorder > > then you can play the recorded strokes and the same key events happen > on the code then it jumps to the next bit if there is more. > > so it's not recording (trapping) then keys i need to do , it's playing > them back. > > the TextEditor.class code is all there doing the required stuff but > uses Key.class so can only be used during actual key presses, > Seems a waste to have to copy all the Keypress code and adapt it to > work without key.class. > > That Key.class i originally posted i would have thought would work but > like i say the interpreter looks for a valid Virtual Key.class even > though i have faked one so it's a dead end. (unless there's something > simple Ben can do so my custom Key.class gets seen and accepted before > the virtual one) > > Respects > BruceS > > Well then! This is starting to sound very interesting. I can see a few uses here. Firstly, every day "someone" has to go through several text and converted pdf to to text files and generally clean them up so we can then parse them and update the system database. Secondly and even more interesting to me is that many years ago I had an MSAccess(*) system that was used to script "acceptance testing", in other words testing that involved the user view of the target system not the developers view. It did something similar but the intent was to get the control focus and user input (keyboard or mouse) and then produce a text script that was sort of a symbolized version of that interaction. IIRC the scripts looked something like: [Login] @UserID ! @Password ! ? Which meant "On the login screen, in the UserID field enter your name then in the Password field enter some garbage. What happens? It amazed me that genuine user performing these tests could become pretty adept at doing these scripts after on a few hours of trying, especially when some of them were quite long and intricate. I tried a long time ago to redo that recorder in Gambas, didn't succeed. (it may have been version 1.10 or so) Also, of course, the gold medal would have been to automate each test case, emulating the user interaction and thus save a boatload of time at regression testing time. I got some way through that but from memory ran into similar-ish problems like how to send a mouse click on a logical field, etc. So I am now looking forward to seeing your success in this endeavour! b * Don't react. It was the early versions of MS-Access, "acquired" but not totally screwed by MS. When "Access-Basic" was a good thing, almost OO! -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Fri Mar 24 13:24:10 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 24 Mar 2023 13:24:10 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? Message-ID: Hi I am currently developing a button user control in Gambas language. So it inherits UserControl, is based on a PictureBox and the button class is part of a "Normal" project type (not "Component"). My problem: During runtime the self-made button control doesn't receive the focus when I hit the Tab-key. My Question: How can I fix this? Best regards Claus -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Fri Mar 24 14:08:55 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Fri, 24 Mar 2023 14:08:55 +0100 Subject: [Gambas-user] Parsing a class or module Message-ID: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> Hi, Given a class, for example myform.class, is there any algorithm that reads it and then: List all the global variables List all variables and methods of the class. List all public variables of other classes that myform.class accesses. List all public methods of other classes that myform.class accesses. The idea behind all this is to be able to copy a form from a project and everything it needs to work and nothing else. That is to say, if there is an auxiliary class clac.class and in that class there are two methods but myform.class uses only one of them, that is the one that is copied. For example Gamabs IDE can order the classes in the treeview according to their location in the filesystem or according to their inheritance. To do this kind of thing there must be some algorithm that parses each code file. Best regards. Martin. From benoit.minisini at gambas-basic.org Fri Mar 24 14:18:29 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 24 Mar 2023 14:18:29 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: References: Message-ID: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> Le 24/03/2023 ? 13:24, Claus Dietrich a ?crit?: > Hi > > I am currently developing a button user control in Gambas language. > > So it inherits UserControl, is based on a PictureBox and the button class > > is part of a "Normal" project type (not "Component"). > > My problem: During runtime the self-made button control doesn't receive > > the focus when I hit the Tab-key. > > My Question: How can I fix this? > > Best regards > > Claus > You must have at least something that can takes the focus inside your UserControl, and make this control the proxy of the UserControl by assigning the Proxy property. Regards, -- Beno?t Minisini. From gradobag at gradobag.it Fri Mar 24 14:19:41 2023 From: gradobag at gradobag.it (Gianluigi) Date: Fri, 24 Mar 2023 14:19:41 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: References: Message-ID: <08fa525e-0c7f-368e-c7e0-ed719274bab5@gradobag.it> Il 24/03/23 13:24, Claus Dietrich ha scritto: > > Hi > > I am currently developing a button user control in Gambas language. > > So it inherits UserControl, is based on a PictureBox and the button class > > is part of a "Normal" project type (not "Component"). > > My problem: During runtime the self-made button control doesn't receive > > the focus when I hit the Tab-key. > > My Question: How can I fix this? > > Best regards > > Claus > Hi Claus, you should give a refresh on the Enter and Leav methods, but I gave it a try and it doesn't seem to work. Maybe something has changed or it is a bug :-\ Regards Gianluigi From benoit.minisini at gambas-basic.org Fri Mar 24 14:29:34 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 24 Mar 2023 14:29:34 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> Message-ID: <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> Le 24/03/2023 ? 14:18, Benoit Minisini a ?crit?: > Le 24/03/2023 ? 13:24, Claus Dietrich a ?crit?: >> Hi >> >> I am currently developing a button user control in Gambas language. >> >> So it inherits UserControl, is based on a PictureBox and the button class >> >> is part of a "Normal" project type (not "Component"). >> >> My problem: During runtime the self-made button control doesn't receive >> >> the focus when I hit the Tab-key. >> >> My Question: How can I fix this? >> >> Best regards >> >> Claus >> > > You must have at least something that can takes the focus inside your > UserControl, and make this control the proxy of the UserControl by > assigning the Proxy property. > Mmm... Sorry, I didn't answer your question actually, I have read it too fast. But you should anyway always give your code inside a project so that anyone can see what you do exactly. REgards, -- Beno?t Minisini. From adamnt42 at gmail.com Fri Mar 24 14:35:57 2023 From: adamnt42 at gmail.com (BB) Date: Sat, 25 Mar 2023 00:05:57 +1030 Subject: [Gambas-user] Parsing a class or module In-Reply-To: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> Message-ID: On 24/3/23 11:38 pm, Mart?n wrote: > Hi, > > Given a class, for example myform.class, is there any algorithm that > reads it and then: > List all the global variables > List all variables and methods of the class. > List all public variables of other classes that myform.class accesses. > List all public methods of other classes that myform.class accesses. > The idea behind all this is to be able to copy a form from a project > and everything it needs to work and nothing else. > > That is to say, if there is an auxiliary class clac.class and in that > class there are two methods but myform.class uses only one of them, > that is the one that is copied. > > For example Gamabs IDE can order the classes in the treeview according > to their location in the filesystem or according to their inheritance. > To do this kind of thing there must be some algorithm that parses each > code file. > > Best regards. > > Martin. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- The *Class* class is what you are after (BION)! e.g. Class.Symbols :Returns an array of all the symbol names of a class. ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From gradobag at gradobag.it Fri Mar 24 14:41:32 2023 From: gradobag at gradobag.it (Gianluigi) Date: Fri, 24 Mar 2023 14:41:32 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> Message-ID: <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> Il 24/03/23 14:29, Benoit Minisini ha scritto: > Le 24/03/2023 ? 14:18, Benoit Minisini a ?crit?: >> Le 24/03/2023 ? 13:24, Claus Dietrich a ?crit?: >>> Hi >>> >>> I am currently developing a button user control in Gambas language. >>> >>> So it inherits UserControl, is based on a PictureBox and the button >>> class >>> >>> is part of a "Normal" project type (not "Component"). >>> >>> My problem: During runtime the self-made button control doesn't receive >>> >>> the focus when I hit the Tab-key. >>> >>> My Question: How can I fix this? >>> >>> Best regards >>> >>> Claus >>> >> >> You must have at least something that can takes the focus inside your >> UserControl, and make this control the proxy of the UserControl by >> assigning the Proxy property. >> > > Mmm... Sorry, I didn't answer your question actually, I have read it > too fast. > > But you should anyway always give your code inside a project so that > anyone can see what you do exactly. > > REgards, > sorry I forgot the GotFocus and LostFocus methods Hi Benoit, if I remember correctly this once worked, see attached Regards Gianluigi -------------- next part -------------- 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 ASZw0QEAyAAA From mbelmonte at belmotek.net Fri Mar 24 14:46:58 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Fri, 24 Mar 2023 14:46:58 +0100 Subject: [Gambas-user] Parsing a class or module In-Reply-To: References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> Message-ID: <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> El 24/3/23 a las 14:35, BB escribi?: > The *Class* class is what you are after (BION)! e.g. Class.Symbols > :Returns an array of all the symbol names of a class. ? Thanks for the answer but that's not what I'm looking for. The algorithm has to be able to operate with the files of another project, completely separate, at text-level, parse the text and act accordingly. From claus.dietrich at freenet.de Fri Mar 24 16:22:01 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 24 Mar 2023 16:22:01 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> Message-ID: The size of the project is too big for the ML, so I loaded it up to the cloud: https://magentacloud.de/s/icm7CiGCPBKMRRS I use a picture class to draw the button with Cairo and load it into a PictureBox.Picture - property to display it. That's all. Here a brief overview of the user control class: Export Inherits UserControl Public Const _IsControl As Boolean = True Public Const _DefaultEvent As String = "Click" 'Declaration of properties 'Declaration of variables 'Declaration of events ...... Public Sub _new() ? hPictureBox = New PictureBox(Me) As "Pic" ? DrawButton(hPictureBox) 'Display Control ? 'Me.Proxy = hPictureBox End Private Sub DrawButton(DrawControl As PictureBox) ? .. ? With DrawControl ??? hPicture = New Picture(.Width, .Height, True) ? End With ? Paint.Begin(hPicture) ? ?? .... paint the button ? Paint.End ? DrawControl.Picture = hPicture End If this doesn't fit to a user control which shall receive the focus, what would be the right way? Best regards Claus Am 24.03.23 um 14:29 schrieb Benoit Minisini: > Le 24/03/2023 ? 14:18, Benoit Minisini a ?crit?: >> Le 24/03/2023 ? 13:24, Claus Dietrich a ?crit?: >>> Hi >>> >>> I am currently developing a button user control in Gambas language. >>> >>> So it inherits UserControl, is based on a PictureBox and the button >>> class >>> >>> is part of a "Normal" project type (not "Component"). >>> >>> My problem: During runtime the self-made button control doesn't receive >>> >>> the focus when I hit the Tab-key. >>> >>> My Question: How can I fix this? >>> >>> Best regards >>> >>> Claus >>> >> >> You must have at least something that can takes the focus inside your >> UserControl, and make this control the proxy of the UserControl by >> assigning the Proxy property. >> > > Mmm... Sorry, I didn't answer your question actually, I have read it > too fast. > > But you should anyway always give your code inside a project so that > anyone can see what you do exactly. > > REgards, > > -- > Beno?t Minisini. -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Mar 24 16:30:00 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 24 Mar 2023 16:30:00 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> Message-ID: Le 24/03/2023 ? 16:22, Claus Dietrich a ?crit?: > > If this doesn't fit to a user control which shall receive the focus, > > what would be the right way? > > Best regards > > Claus > A PictureBox is a display-only control, it can't have the focus. You should use instead a DrawingArea, which has a Focus property to tell if your control can get focus or not. The drawing is then done through the the DrawingArea Draw event handler. The Style.StateOf() method will tell you the state of your UserControl. Look at the documentation and at the source code of the SwitchButton control (for example) in the 'gb.form' component for more details. Regards, -- Beno?t Minisini. From gambas.fr at gmail.com Fri Mar 24 18:56:54 2023 From: gambas.fr at gmail.com (Fabien Bodard) Date: Fri, 24 Mar 2023 18:56:54 +0100 Subject: [Gambas-user] Parsing a class or module In-Reply-To: <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> Message-ID: In fact it's not quite so simple... how to know if a symbol comes from another module or form??... Well it's possible but it's almost a compilation in itself. For the project tree it's simpler... only the first lines of the class code inform about the inheritance. Le ven. 24 mars 2023 ? 14:47, Mart?n a ?crit : > > El 24/3/23 a las 14:35, BB escribi?: > > The *Class* class is what you are after (BION)! e.g. Class.Symbols > > :Returns an array of all the symbol names of a class. ? > > Thanks for the answer but that's not what I'm looking for. > The algorithm has to be able to operate with the files of another > project, completely separate, at text-level, parse the text and act > accordingly. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -- Fabien Bodard From t.lee.davidson at gmail.com Fri Mar 24 20:21:13 2023 From: t.lee.davidson at gmail.com (T Lee Davidson) Date: Fri, 24 Mar 2023 15:21:13 -0400 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> Message-ID: <6df7fd6c-3c6d-8efd-1732-c04ebf826944@gmail.com> On 3/24/23 09:41, Gianluigi wrote: > sorry?I?forgot?the?GotFocus?and?LostFocus?methods > > Hi?Benoit, > > if?I?remember?correctly?this?once?worked,?see?attached > > Regards > > Gianluigi I can't get that project to load up in the IDE properly. The first time opening the project and then FMain, the IDE says that come controls could not be loaded due to missing component. The controls it offers to delete are all the SquareButton controls. If I Compile All and then re-open the project, I don't get that message but the controls don't behave properly. They display neither Picture nor Text as shown in the attached pic. Is there something else I need to do? Or, do differently? -- Lee -------------- next part -------------- A non-text attachment was scrubbed... Name: SquareButton.png Type: image/png Size: 42934 bytes Desc: not available URL: From bsteers4 at gmail.com Fri Mar 24 22:08:36 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 24 Mar 2023 21:08:36 +0000 Subject: [Gambas-user] Parsing a class or module In-Reply-To: <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> Message-ID: https://gambaswiki.org/wiki/comp/gb.eval/highlight probably has what you want. On Fri, 24 Mar 2023, 13:47 Mart?n, wrote: > El 24/3/23 a las 14:35, BB escribi?: > > The *Class* class is what you are after (BION)! e.g. Class.Symbols > > :Returns an array of all the symbol names of a class. ? > > Thanks for the answer but that's not what I'm looking for. > The algorithm has to be able to operate with the files of another > project, completely separate, at text-level, parse the text and act > accordingly. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Fri Mar 24 22:20:01 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Fri, 24 Mar 2023 22:20:01 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> Message-ID: <64003552-ec04-2782-d90f-fcbbe1c5b766@freenet.de> Dear Gianluigi Many thanks for the project. These square buttons also don't receive the focus but this can be resolved by setting the focus-property to True. However, the square buttons are not prepared to display a focus. Dear Lee I had no issue at all to load the program and it behaves as expected. Dear Beno?t Thanks for the valuable hints. The focus-reception works already. I still need to learn, what the Style-Class can provide and I have to read the recommended switch button documentation because there are still some open questions about self made user controls. Best regards Claus Am 24.03.23 um 14:41 schrieb Gianluigi: > sorry I forgot the GotFocus and LostFocus methods > > Hi Benoit, > > if I remember correctly this once worked, see attached > > Regards > > Gianluigi Am 24.03.23 um 20:21 schrieb T Lee Davidson: > I can't get that project to load up in the IDE properly. Am 24.03.23 um 16:30 schrieb Benoit Minisini: > > A PictureBox is a display-only control, it can't have the focus. > > You should use instead a DrawingArea, which has a Focus property to > tell if your control can get focus or not. > > The drawing is then done through the the DrawingArea Draw event handler. > > The Style.StateOf() method will tell you the state of your UserControl. > > Look at the documentation and at the source code of the SwitchButton > control (for example) in the 'gb.form' component for more details. > > Regards, From gradobag at gradobag.it Fri Mar 24 23:34:33 2023 From: gradobag at gradobag.it (Gianluigi) Date: Fri, 24 Mar 2023 23:34:33 +0100 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <64003552-ec04-2782-d90f-fcbbe1c5b766@freenet.de> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> <64003552-ec04-2782-d90f-fcbbe1c5b766@freenet.de> Message-ID: Il 24/03/23 22:20, Claus Dietrich ha scritto: > Dear Gianluigi > > Many thanks for the project. These square buttons also don't receive > the focus > > but this can be resolved by setting the focus-property to True. > However, the > > square buttons are not prepared to display a focus. > > > Dear Lee > > I had no issue at all to load the program and it behaves as expected. > > > Dear Beno?t > > Thanks for the valuable hints. The focus-reception works already. I still > > need to learn, what the Style-Class can provide and I have to read the > > recommended switch button documentation because there are still > > some open questions about self made user controls. > > Best regards > > Claus Hello everyone, As Claus also says, here it works on all the virtuals I currently have installed. I recommend trying this one from Bodard (focus works for him :-) ) : https://lists.gambas-basic.org/pipermail/user/2016-August/058085.html With Best Regards Gianluigi From bsteers4 at gmail.com Fri Mar 24 23:56:23 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Fri, 24 Mar 2023 22:56:23 +0000 Subject: [Gambas-user] How can a self made Button UserControl receive the Focus? In-Reply-To: <64003552-ec04-2782-d90f-fcbbe1c5b766@freenet.de> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <0124a839-786c-cd9b-4554-94626719d620@gradobag.it> <64003552-ec04-2782-d90f-fcbbe1c5b766@freenet.de> Message-ID: On Fri, 24 Mar 2023 at 21:21, Claus Dietrich wrote: > Dear Gianluigi > > Many thanks for the project. These square buttons also don't receive the > focus > > but this can be resolved by setting the focus-property to True. However, > the > > square buttons are not prepared to display a focus. > > > Dear Lee > > I had no issue at all to load the program and it behaves as expected. > > > Dear Beno?t > > Thanks for the valuable hints. The focus-reception works already. I still > > need to learn, what the Style-Class can provide and I have to read the > > recommended switch button documentation because there are still > > some open questions about self made user controls. > > Best regards > > Claus > Also check out gb.form and gb.gui.base source, there are many custom UserControls in there you can use as examples. "some open questions" lol , probably a million questions, I know I did. Mostly the answers you need can be found by examining similar ready made controls. Hmmm, As for PictureBox cannot have focus the wiki says otherwise. (not that i dissagree with Ben) https://gambaswiki.org/wiki/comp/gb.qt4/picturebox shows it has .HasFocus .SetFocus _GotFocus() , _LostFocus() okay i did some tests.. pressing tab in gui does not give it focus. Using PictureBox1.SetFocus() "does" give it focus. (not visibly but the GotFocus event triggers. It seems a picturebox cannot get focus but it should as all the focus related properties and events of UserControl are there. Seems a bit misleading. Is there a way to hide the focus related parts of picturebox on the wiki? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From mbelmonte at belmotek.net Sat Mar 25 00:16:39 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Sat, 25 Mar 2023 00:16:39 +0100 Subject: [Gambas-user] Parsing a class or module In-Reply-To: References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> Message-ID: El 24/3/23 a las 22:08, Bruce Steers escribi?: > https://gambaswiki.org/wiki/comp/gb.eval/highlight probably has what > you want. Yes, it simplifies the code quite a lot. Thanks. From mbelmonte at belmotek.net Sat Mar 25 00:26:03 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Sat, 25 Mar 2023 00:26:03 +0100 Subject: [Gambas-user] Parsing a class or module In-Reply-To: References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> <5a5ee6ba-c31b-6e86-c76e-64ccf051c64c@belmotek.net> Message-ID: El 24/3/23 a las 18:56, Fabien Bodard escribi?: > In fact it's not quite so simple... how to know if a symbol comes from > another module or form??... Well it's possible but it's almost a > compilation in itself. Currently what I do is to create a collection with all the classes (and modules) of the project, then ready all the symbols for each one. Then when I find a text string in the code that has the operator "." and what is before it is in the index of the collection and what is after it is in the list of symbols I found it. > For the project tree it's simpler... only the first lines of the class > code inform about the inheritance. Ok. From brian at westwoodsvcs.com Sat Mar 25 06:17:56 2023 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sat, 25 Mar 2023 08:17:56 +0300 Subject: [Gambas-user] =?utf-8?q?Parsing_a_class_or_module?= In-Reply-To: References: <3659f598-eca0-be3c-18a3-14c6c87ae88c@belmotek.net> Message-ID: <1679721476.337651582@f38.my.com> If you look at the scripter code it builds a dependency For script, This may help you -- Thanks Brian G Friday, 24 March 2023, 04:26PM -07:00 from Mart?n mbelmonte at belmotek.net : >El 24/3/23 a las 18:56, Fabien Bodard escribi?: > In fact it's not quite so simple... how to know if a symbol comes from > another module or form??... Well it's possible but it's almost a > compilation in itself. > >Currently what I do is to create a collection with all the classes (and >modules) of the project, then ready all the symbols for each one. >Then when I find a text string in the code that has the operator "." and >what is before it is in the index of the collection and what is after it >is in the list of symbols I found it. > > For the project tree it's simpler... only the first lines of the class > code inform about the inheritance. > >Ok. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From roberto.premoli at tiscali.it Sat Mar 25 10:59:12 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Sat, 25 Mar 2023 10:59:12 +0100 Subject: [Gambas-user] =?utf-8?q?How_to_protect_gambas_code_from_reverse_?= =?utf-8?q?engeeniering=3F?= Message-ID: Hello. I am developing software and create the .deb package for installation. What I wish is that noone can easely reverse the code I am doing. Yes I know that at least, it is possible to read the final assembly and reverse it, but i just want to to make that job more difficult to attackers. In other words, is possible to have a compiled version of my gambas software at the same way i get executable code form my C source with "gcc code.c"? Thanks Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Mar 25 14:14:38 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 25 Mar 2023 13:14:38 +0000 Subject: [Gambas-user] How to protect gambas code from reverse engeeniering? In-Reply-To: References: Message-ID: Well personally I wouldn't touch your software if I couldn't see the source. Mostly everything in my system is open source. But best of luck with it. Sorry I don't know an answer to your question. Or if it's possible. Maybe you could create a library. And the sensitive code be in the library that your open source gambas app uses? On Sat, 25 Mar 2023, 10:21 , wrote: > Hello. > I am developing software and create the .deb package for installation. > What I wish is that noone can easely reverse the code I am doing. > Yes I know that at least, it is possible to read the final assembly and > reverse it, > but i just want to to make that job more difficult to attackers. > In other words, is possible to have a compiled version of my gambas > software > at the same way i get executable code form my C source with "gcc code.c"? > > Thanks > Roberto > > > > VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. > ATTIVA ORA > > https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/ > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Mar 25 16:59:22 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 25 Mar 2023 15:59:22 +0000 Subject: [Gambas-user] IDE properties and auto-inheritance Message-ID: Is there a reason i cannot set properties in the IDE with auto-inherited TextLabel? Consider the following code named TextLabel.class.. ' Gambas class file Export Public Const _Properties As String = "*,IsHeader" Property IsHeader As Boolean Private $IsHeader As Boolean Private Function IsHeader_Read() As Boolean Return $IsHeader End Private Sub IsHeader_Write(Value As Boolean) $IsHeader = Value End after "compile all" i can see the IsHeader value in the IDE properties and I have the option to set it true or false but if i change it it just remains False. If I rename the class to TextLabel2.class and use "Inherits TextLabel" then it looks the same in the IDE and i can change the property okay. Is it a bug or is it wrong to expect the IDE to use properties from auto-inherited classes? Cheers BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Mar 25 17:09:20 2023 From: adamnt42 at gmail.com (BB) Date: Sun, 26 Mar 2023 02:39:20 +1030 Subject: [Gambas-user] IDE properties and auto-inheritance In-Reply-To: References: Message-ID: On 26/3/23 2:29 am, Bruce Steers wrote: > Is there a reason i cannot set properties in the IDE with > auto-inherited TextLabel? > > Consider the following code named TextLabel.class.. > | > | > |' Gambas class file| > | > |Export| > |Public| |Const| |_Properties ||As| |String| |= ||"*,IsHeader"| > |Property| |IsHeader ||As| |Boolean| > |Private| |$IsHeader ||As| |Boolean| > |Private| |Function| |IsHeader_Read() ||As| |Boolean| > |||Return| |$IsHeader| > |End| > |Private| |Sub| |IsHeader_Write(Value ||As| |Boolean||)| > |||$IsHeader = Value| > |End| > | > | > after "compile all" i can see the IsHeader value in the IDE properties > and I have the option to set it true or false but if i change it it > just remains False. > > If I rename the class to TextLabel2.class and use "Inherits TextLabel" > then it looks the same in the IDE and i can change the property okay. > > Is it a bug or is it wrong to expect the IDE to use properties from > auto-inherited classes? > > Cheers > BruceS > | > You know, I have never thought of trying it that way. I think it's because you are not really inheriting but actually overriding the TextLabel class and imagine that the form designer is only saving the properties of the native class? Have a look at the .form file. Is the new property there? As there is no default value for the property it should be, no matter what you set it to in the form designer. ... Then again, maybe if you did give it a default value the goblins might behave differently. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sat Mar 25 17:18:09 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sat, 25 Mar 2023 16:18:09 +0000 Subject: [Gambas-user] IDE properties and auto-inheritance In-Reply-To: References: Message-ID: On Sat, 25 Mar 2023 at 16:10, BB wrote: > > On 26/3/23 2:29 am, Bruce Steers wrote: > > Is there a reason i cannot set properties in the IDE with auto-inherited > TextLabel? > > Consider the following code named TextLabel.class.. > > ' Gambas class file > > Export > > Public Const _Properties As String = "*,IsHeader" > > snip > Is it a bug or is it wrong to expect the IDE to use properties from > auto-inherited classes? > > Cheers > BruceS > > > You know, I have never thought of trying it that way. I think it's because > you are not really inheriting but actually overriding the TextLabel class > and imagine that the form designer is only saving the properties of the > native class? > > Have a look at the .form file. Is the new property there? As there is no > default value for the property it should be, no matter what you set it to > in the form designer. ... Then again, maybe if you did give it a default > value the goblins might behave differently. > > b > It does not seem to matter how i configure it the property does not change from it's preset and it does not show in the .form file. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Mar 25 17:40:38 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 25 Mar 2023 18:40:38 +0200 Subject: [Gambas-user] How to protect gambas code from reverse engeeniering? In-Reply-To: References: Message-ID: > > I am developing software and create the .deb package for installation. > What I wish is that noone can easely reverse the code I am doing. > Yes I know that at least, it is possible to read the final assembly and > reverse it, > but i just want to to make that job more difficult to attackers. > In other words, is possible to have a compiled version of my gambas > software > at the same way i get executable code form my C source with "gcc code.c"? > I don't quite understand your question. You can compile Gambas into bytecode executable and leave the source code to yourself. You need something more than that? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Mar 25 17:46:15 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 25 Mar 2023 18:46:15 +0200 Subject: [Gambas-user] How to protect gambas code from reverse engeeniering? In-Reply-To: References: Message-ID: > I am developing software and create the .deb package for installation. >> What I wish is that noone can easely reverse the code I am doing. >> Yes I know that at least, it is possible to read the final assembly and >> reverse it, >> but i just want to to make that job more difficult to attackers. >> In other words, is possible to have a compiled version of my gambas >> software >> at the same way i get executable code form my C source with "gcc code.c"? >> > > I don't quite understand your question. You can compile Gambas into > bytecode executable and leave the source code to yourself. > You need something more than that? > I'll just add that it is very easy to disassemble compiled C code (IE executable) back into C code, because of the available tools. However, converting Gambas bytecode into Gambas source is tedious, because AFAIK there aren't ready tools for it. If you need something more, you need to do source level obfuscation. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Sat Mar 25 18:12:21 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sat, 25 Mar 2023 19:12:21 +0200 Subject: [Gambas-user] How to protect gambas code from reverse engeeniering? In-Reply-To: References: Message-ID: ... also all that is probably a bad idea. Why do you need this? For DRM (there are better options)? To protect game story? Jussi On Sat, Mar 25, 2023 at 6:46?PM Jussi Lahtinen wrote: > I am developing software and create the .deb package for installation. >>> What I wish is that noone can easely reverse the code I am doing. >>> Yes I know that at least, it is possible to read the final assembly and >>> reverse it, >>> but i just want to to make that job more difficult to attackers. >>> In other words, is possible to have a compiled version of my gambas >>> software >>> at the same way i get executable code form my C source with "gcc code.c"? >>> >> >> I don't quite understand your question. You can compile Gambas into >> bytecode executable and leave the source code to yourself. >> You need something more than that? >> > > I'll just add that it is very easy to disassemble compiled C code (IE > executable) back into C code, because of the available tools. > However, converting Gambas bytecode into Gambas source is tedious, because > AFAIK there aren't ready tools for it. > If you need something more, you need to do source level obfuscation. > > Jussi > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sat Mar 25 19:07:25 2023 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 25 Mar 2023 11:07:25 -0700 (PDT) Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <216375830.23489.1679511710262.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> <79762255.23463.1679508644275.JavaMail.zimbra@westwoodsvcs.com> <216375830.23489.1679511710262.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1855226942.24247.1679767645797.JavaMail.zimbra@westwoodsvcs.com> Thank you Ben, for the all the work you have done for Structure support, they all work great! I have been trying to encapsulate the structures within a gambas class. I have run into an issue with the serialization using the _read/_write interface. When doing a "write myclass as TestElevationClass" and the class itself just does a "write value as elevation" <-- the actual structure then the serialization process always adds a 4F as the leading byte of any output stream. While this works well when reading and writing using the gambas serialization. The recieving app not being gambas based goes all crazy. Is this needed or is there a work around? See the following script: ------------------------------------------------------------------------------------- #!/usr/bin/env gbs3 ' Gambas Script File Created 03/25/2023 10:38:24 class TestElevationClass Public Struct elevation a As Short b As Long c As Float d As Short e As String End Struct Public Value As Elevation Property Read text As String Public Sub _new() value = New Elevation value.a = 45 value.b = 98765 value.c = 67.465 value.d = 1 value.e = "hello Value ............................." End Public Sub _write(outfile As File) Write #outfile, value As Elevation End Public Sub _read(infile As File) value = Read #infile As Elevation End Private Function text_Read() As String Return Subst("&1\t&2\t&3\t&4\t&5", Value.a, Value.b, Value.c, Value.d, Value.e) End end class ' Gambas module file Public Struct elevation a As Short b As Long c As Float d As Short e As String End Struct Public Sub main() Dim ee As New TestElevationClass Dim b, d As Object Dim a As New Elevation Dim aa As Elevation Dim aaa As Elevation Dim p As Pointer = Alloc(20000, 1) Dim pp As Pointer = Alloc(10000, 1) Dim ptr As Pointer = 0 b = Object.Class(a) a.a = 45 a.b = 98765 a.c = 67.456 a.d = 1 a.e = "hello a.........." aa = pp aa.a = 45 aa.b = 98765 aa.c = 67.465 aa.d = 1 aa.e = "hello aa........" Dim f As File f = Memory p For Write Write #f, a As Elevation Close #f f = Memory p For Read aaa = Read #f As Elevation For i As Integer = 0 To 50 Print Hex(Byte@(p + i), 2);; Next Print For i As Integer = 0 To 50 Print Hex(Byte@(pp + i), 2);; Next Print Print a.a, a.b, a.c, a.d, a.e Print aaa.a, aaa.b, aaa.c, aaa.d, aaa.e f = Memory p For Write Write #f, ee As TestElevationClass Close #f For i As Integer = 0 To 50 Print Hex(Byte@(p + i), 2);; Next Print f = Memory p For Read ee = Read #f As TestElevationClass Print ee.Text Free(p) Free(pp) End --------------------------------------------------------------- "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 22, 2023, at 7:01 PM, Brian G brian at westwoodsvcs.com wrote: > I can confirn that on openSUSE 15.4 it also segfaults. > > In more detail on the platforms where it segfaults, it only happens when writing > structure and only when writing the entire structure. Any single field within > the structure works fine. > Reading an entire structure also works fine. > > And the issue seems to be on debian and openSUSE not on Ubuntu/mint systems > > I will investigate a little farther > > "Failure is the key to success; >?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > ----- On Mar 22, 2023, at 11:10 AM, Brian G brian at westwoodsvcs.com wrote: > >> I can confirm that it is issue on Debian even with latest version of gambas >> built on the platform >> >> Will rebuild and test with OpenSUSE now >> >> "Failure is the key to success; >> each mistake teaches us something" ?.. Morihei Ueshiba >> Brian G >> >> ----- On Mar 22, 2023, at 10:52 AM, T Lee Davidson t.lee.davidson at gmail.com >> wrote: >> >>> On 3/22/23 11:47, Brian G wrote: >>>> Which os are you running it on? >>>> >>>> "Failure is the key to success; >>>> ? each mistake teaches us something" ?.. Morihei Ueshiba >>>> Brian G >>> >>> [System] >>> Gambas=3.18.1 >>> OperatingSystem=Linux >>> Distribution=openSUSE Leap 15.4 >>> Kernel=5.14.21-150400.24.49-default >>> Architecture=x86_64 >>> Cores=6 >>> Memory=15921M >>> Language=en_US.UTF-8 >>> Desktop=KDE >>> >>> >>> -- >>> Lee >>> >>> >>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From benoit.minisini at gambas-basic.org Sat Mar 25 19:27:15 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sat, 25 Mar 2023 19:27:15 +0100 Subject: [Gambas-user] Issues when writing and reading structures In-Reply-To: <1855226942.24247.1679767645797.JavaMail.zimbra@westwoodsvcs.com> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <46eb443a-95ba-12ac-0528-202e44c7ccc5@gmail.com> <1679459746.985562664@f8.my.com> <3a60c44c-6cd2-6ddb-be09-c6cb4dd949d0@gmail.com> <1336142295.23260.1679500058844.JavaMail.zimbra@westwoodsvcs.com> <79762255.23463.1679508644275.JavaMail.zimbra@westwoodsvcs.com> <216375830.23489.1679511710262.JavaMail.zimbra@westwoodsvcs.com> <1855226942.24247.1679767645797.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <2195d9e2-3af3-a15c-75ca-4770723aef1a@gambas-basic.org> Le 25/03/2023 ? 19:07, Brian G a ?crit?: > Thank you Ben, for the all the work you have done for Structure support, they all work great! > > I have been trying to encapsulate the structures within a gambas class. > I have run into an issue with the serialization using the _read/_write interface. > > When doing a "write myclass as TestElevationClass" > and the class itself just does a "write value as elevation" <-- the actual structure > > then the serialization process always adds a 4F as the leading byte of any output stream. > While this works well when reading and writing using the gambas serialization. > The recieving app not being gambas based goes all crazy. It's normal. The Gambas serialization format is an internal undocumented format that is intended to ease communication between Gambas processes. You can't use it to communicate with a non-Gambas process that does not how to handle this format. Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Sat Mar 25 22:17:36 2023 From: brian at westwoodsvcs.com (=?UTF-8?B?QnJpYW4gRw==?=) Date: Sun, 26 Mar 2023 00:17:36 +0300 Subject: [Gambas-user] =?utf-8?q?Issues_when_writing_and_reading_structur?= =?utf-8?q?es?= In-Reply-To: <2195d9e2-3af3-a15c-75ca-4770723aef1a@gambas-basic.org> References: <115997257.22899.1679428630780.JavaMail.zimbra@westwoodsvcs.com> <1855226942.24247.1679767645797.JavaMail.zimbra@westwoodsvcs.com> <2195d9e2-3af3-a15c-75ca-4770723aef1a@gambas-basic.org> Message-ID: <1679779056.535816342@f28.my.com> I am following your suggestion that structures should be encapsulated in a gambas class! What is the work around then -- Thanks Brian G Saturday, 25 March 2023, 11:28AM -07:00 from Benoit Minisini benoit.minisini at gambas-basic.org : >Le 25/03/2023 ? 19:07, Brian G a ?crit?: > Thank you Ben, for the all the work you have done for Structure support, they all work great! > > I have been trying to encapsulate the structures within a gambas class. > I have run into an issue with the serialization using the _read/_write interface. > > When doing a "write myclass as TestElevationClass" > and the class itself just does a "write value as elevation" < -- the actual structure > > then the serialization process always adds a 4F as the leading byte of any output stream. > While this works well when reading and writing using the gambas serialization. > The recieving app not being gambas based goes all crazy. > >It's normal. The Gambas serialization format is an internal undocumented >format that is intended to ease communication between Gambas processes. > >You can't use it to communicate with a non-Gambas process that does not >how to handle this format. > >Regards, > >-- >Beno?t Minisini. > > >----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sat Mar 25 23:38:34 2023 From: adamnt42 at gmail.com (BB) Date: Sun, 26 Mar 2023 09:08:34 +1030 Subject: [Gambas-user] Convert a "currency" string to a number Message-ID: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> What's the best way to convert a string that looks like "$98,765" or "$98,765.43" to an integer / float? Or putting this another way, I want to test if the value is > something (like "sTotal > 50000"), what is the most efficient way to do this check. tia bruce From jussi.lahtinen at gmail.com Sun Mar 26 00:03:26 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Sun, 26 Mar 2023 01:03:26 +0200 Subject: [Gambas-user] Convert a "currency" string to a number In-Reply-To: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> References: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> Message-ID: I would do something like this: cfloat(replace(right(sTotal, -1), ",", "")) However, I do not know how much there is variation in the string format. You may need to use Trim() and take localization into account. Jussi On Sun, Mar 26, 2023 at 12:39?AM BB wrote: > What's the best way to convert a string that looks like "$98,765" or > "$98,765.43" to an integer / float? > > Or putting this another way, I want to test if the value is > something > (like "sTotal > 50000"), what is the most efficient way to do this check. > > tia > > bruce > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From adamnt42 at gmail.com Sun Mar 26 00:10:22 2023 From: adamnt42 at gmail.com (BB) Date: Sun, 26 Mar 2023 09:40:22 +1030 Subject: [Gambas-user] Convert a "currency" string to a number In-Reply-To: References: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> Message-ID: On 26/3/23 9:33 am, Jussi Lahtinen wrote: > I would do something like this: > cfloat(replace(right(sTotal, -1), ",", "")) > > However, I do not know how much there is variation in the string > format. You may need to use Trim() and take localization into account. > > > Jussi > > On Sun, Mar 26, 2023 at 12:39?AM BB > wrote: > > What's the best way to convert a string that looks like "$98,765" or > "$98,765.43" to an integer / float? > > Or putting this another way, I want to test if the value is > > something > (like "sTotal > 50000"), what is the most efficient way to do this > check. > > tia > > bruce > Thanks Jussi, I was was checking that I hadn't missed something introduced in the last years for such a conversion. b -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Mar 26 03:04:26 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 26 Mar 2023 01:04:26 +0000 Subject: [Gambas-user] is it possible to non-virtualize Key.class In-Reply-To: <1e913f23-5c88-a6b1-e02e-873155fb0ac8@gmail.com> References: <2182c3f8-14fd-f458-5955-2b38864a4fe1@gambas-basic.org> <31f61701-c724-22d4-c1fa-63f6f680bee7@gmail.com> <1e913f23-5c88-a6b1-e02e-873155fb0ac8@gmail.com> Message-ID: On Fri, 24 Mar 2023 at 11:53, BB wrote: > > On 24/3/23 12:53 pm, Bruce Steers wrote: > > > On Fri, 24 Mar 2023 at 01:57, BB wrote: > >> >> I haven't followed this very closely and I am a bit unsure as to what >> your goals are. >> >> But could you not use some individual class and set an observer on >> whatever input controls you are trying to trap (or have I missed the point >> completely)? >> >> b >> >> p.s. I have sometimes got a bit over eager myself and tried to >> "genericise" things too much. >> > > I have the "trapping" as it were , or "recording" as i call it. but then i > want to play the keystrokes back in an editor, > > the goal is a keystroke recorder. > something that records the keypresses as you type, and them plays them > back in the editor.. > I find it very useful to convert many bits of code, > > Typical scenario, there's loads of instances of code in a document that > all need adjusting but in a way the Search & replace does not really help... > So.... > You find the code using the search tool (Ctrl-F) > then start the keystroke recorder. > then using backspace/delete, the arrow keys and combinations of shift/ctrl > you select/jump words, edit the bit of code, enter new text, etc, make it > different. > then you hit F3 to search to the next bit of code. > then you stop the recorder > > then you can play the recorded strokes and the same key events happen on > the code then it jumps to the next bit if there is more. > > so it's not recording (trapping) then keys i need to do , it's playing > them back. > > the TextEditor.class code is all there doing the required stuff but uses > Key.class so can only be used during actual key presses, > Seems a waste to have to copy all the Keypress code and adapt it to work > without key.class. > > That Key.class i originally posted i would have thought would work but > like i say the interpreter looks for a valid Virtual Key.class even though > i have faked one so it's a dead end. (unless there's something simple Ben > can do so my custom Key.class gets seen and accepted before the virtual one) > > Respects > BruceS > > > Well then! This is starting to sound very interesting. I can see a few > uses here. > -------- > > I tried a long time ago to redo that recorder in Gambas, didn't succeed. > (it may have been version 1.10 or so) > > > Also, of course, the gold medal would have been to automate each test > case, emulating the user interaction and thus save a boatload of time at > regression testing time. I got some way through that but from memory ran > into similar-ish problems like how to send a mouse click on a logical > field, etc. So I am now looking forward to seeing your success in this > endeavour! > > b > > * Don't react. It was the early versions of MS-Access, "acquired" but not > totally screwed by MS. When "Access-Basic" was a good thing, almost OO! > I'm not sure how the goals compare but i've basically copied and adapted the text editor functions to use MacroKey.class not Key.class. MacroKey contains the same properties as Key and one is added to a MacroKey[] array on each keypress that is not just a modifier key. then playback just iterates the array to the editors MacroPress() method. Gotta run it through a lot of tests and make a qt-gtk code value converter (easy) I uploaded a vid to youtube where I quickly make a collection out of all the Key constants using the macro recorder to demonstrate it's usefulness.. https://youtu.be/oK44huauPzc I'll also attach the code if anyone is interested (very WIP) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- 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 AGAEAA== From brian at westwoodsvcs.com Sun Mar 26 05:09:46 2023 From: brian at westwoodsvcs.com (Brian G) Date: Sat, 25 Mar 2023 20:09:46 -0700 (PDT) Subject: [Gambas-user] Object.address() returns wrong address for a structure Message-ID: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> When getting the address for a structure object the wrong address is returned. It looks like the address returned is a control block of some sort. object.sizeof() does return the correct length for the structure. I thought it would return the same address as was assigned to it. dim a as pointer = alloc(1000,1) dim b as MyStruct b = a then object.address(b) should equal a But instead it seems to return some sort of control block, but I expected for a structure to just recieve the same address as was assigned. If this is correct, then is there a way to get the assigned address for a structure object? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Sun Mar 26 08:57:25 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 26 Mar 2023 08:57:25 +0200 Subject: [Gambas-user] Object.address() returns wrong address for a structure In-Reply-To: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> References: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 26/03/2023 ? 05:09, Brian G a ?crit?: > When getting the address for a structure object the wrong address is > returned. It looks like the address returned is a control block of some > sort. > object.sizeof() does return the correct length for the structure. > > I thought it would return the same address as was assigned to it. > > dim a as pointer = alloc(1000,1) > dim b as MyStruct > b = a > then > object.address(b) should equal a > > But instead it seems to return some sort of control block, but I > expected for a structure to just recieve the same address as was assigned. > > If this is correct, then is there a way to get the assigned address for > a structure object? > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Object.Address() returns the address of a Gambas in memory, not the address of the data it references. There is no function at the moment that does what you want. Regards, -- Beno?t Minisini. From charlie at cogier.com Sun Mar 26 17:00:49 2023 From: charlie at cogier.com (Charlie Ogier) Date: Sun, 26 Mar 2023 16:00:49 +0100 Subject: [Gambas-user] Convert a "currency" string to a number In-Reply-To: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> References: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> Message-ID: On 25/03/2023 22:38, BB wrote: > What's the best way to convert a string that looks like "$98,765" or > "$98,765.43" to an integer / float? > > Or putting this another way, I want to test if the value is > > something (like "sTotal > 50000"), what is the most efficient way to > do this check. > > tia > > bruce > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- Here's my solution, the routine returns the float value of the string: - Public Sub Form_Open() ? Print CleanValue("$98,765.43") ? Print CleanValue("$98,765") End Public Sub CleanValue(Value As String) As Float ? Dim NewString As String ? Dim iLoop As Integer ? For iLoop = 0 To Len(Value) ??? If IsNumber(Value[iLoop]) Then NewString &= Value[iLoop] ? Next ? Return Val(NewString) End Charlie From bsteers4 at gmail.com Sun Mar 26 18:00:39 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 26 Mar 2023 17:00:39 +0100 Subject: [Gambas-user] Convert a "currency" string to a number In-Reply-To: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> References: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> Message-ID: On Sat, 25 Mar 2023 at 22:39, BB wrote: > What's the best way to convert a string that looks like "$98,765" or > "$98,765.43" to an integer / float? > > Or putting this another way, I want to test if the value is > something > (like "sTotal > 50000"), what is the most efficient way to do this check. > > tia > > bruce > What about Print GetFloat("$98,765.43") Public Sub GetFloat(sVal As String) As Float Return CFloat(Split(st, "?$,").Join("")) End Respects -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Sun Mar 26 18:03:25 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Sun, 26 Mar 2023 17:03:25 +0100 Subject: [Gambas-user] Convert a "currency" string to a number In-Reply-To: References: <46f8ca86-f28d-7fff-20fb-4c899102a2b3@gmail.com> Message-ID: On Sun, 26 Mar 2023 at 17:00, Bruce Steers wrote: > > > On Sat, 25 Mar 2023 at 22:39, BB wrote: > >> What's the best way to convert a string that looks like "$98,765" or >> "$98,765.43" to an integer / float? >> >> Or putting this another way, I want to test if the value is > something >> (like "sTotal > 50000"), what is the most efficient way to do this check. >> >> tia >> >> bruce >> > > > What about > oops , had a wrong var name in there Print GetFloat("$98,765.43") Public Sub GetFloat(sVal As String) As Float Return CFloat(Split(sVal, "?$,").Join("")) End -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Sun Mar 26 18:07:04 2023 From: brian at westwoodsvcs.com (Brian G) Date: Sun, 26 Mar 2023 09:07:04 -0700 (PDT) Subject: [Gambas-user] Object.address() returns wrong address for a structure In-Reply-To: References: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <40452516.24474.1679846824172.JavaMail.zimbra@westwoodsvcs.com> But when working with structures, Returning a Gambas is really not of any use to anyone. Would it not be more consitant to return the actual address of the structure as it was assigned? Would this be difficult to acheive? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 26, 2023, at 6:57 AM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 26/03/2023 ? 05:09, Brian G a ?crit?: >> When getting the address for a structure object the wrong address is >> returned. It looks like the address returned is a control block of some >> sort. >> object.sizeof() does return the correct length for the structure. >> >> I thought it would return the same address as was assigned to it. >> >> dim a as pointer = alloc(1000,1) >> dim b as MyStruct >> b = a >> then >> object.address(b) should equal a >> >> But instead it seems to return some sort of control block, but I >> expected for a structure to just recieve the same address as was assigned. >> >> If this is correct, then is there a way to get the assigned address for >> a structure object? >> >> "Failure is the key to success; >> ?each mistake teaches us something" ?.. Morihei Ueshiba >> Brian G >> >> >> ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > Object.Address() returns the address of a Gambas in memory, not the > address of the data it references. > > There is no function at the moment that does what you want. > > Regards, > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From benoit.minisini at gambas-basic.org Sun Mar 26 20:27:43 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Sun, 26 Mar 2023 20:27:43 +0200 Subject: [Gambas-user] Object.address() returns wrong address for a structure In-Reply-To: <40452516.24474.1679846824172.JavaMail.zimbra@westwoodsvcs.com> References: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> <40452516.24474.1679846824172.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 26/03/2023 ? 18:07, Brian G a ?crit : > But when working with structures, Returning a Gambas is really not of > any use to anyone. Would it not be more consitant to return the > actual address of the structure as it was assigned? No, because this is not the goal of Object.Address(). You need a new API, something like Object.Data(), that will return a pointer to the date pointed by the object. Regards, -- Beno?t Minisini. From benoit.minisini at gambas-basic.org Mon Mar 27 00:53:20 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 27 Mar 2023 00:53:20 +0200 Subject: [Gambas-user] Object.address() returns wrong address for a structure In-Reply-To: References: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> <40452516.24474.1679846824172.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 26/03/2023 ? 20:27, Benoit Minisini a ?crit?: > Le 26/03/2023 ? 18:07, Brian G a ?crit : >> But when working with structures, Returning a Gambas is really not of >> any use to anyone. Would it not be more consitant to return the >> actual address of the structure as it was assigned? > > No, because this is not the goal of Object.Address(). > > You need a new API, something like Object.Data(), that will return a > pointer to the date pointed by the object. > > Regards, > Done in commit https://gitlab.com/gambas/gambas/-/commit/d42aad3a6561ab6efbc282275aab9a4c3c389fd8. Regards, -- Beno?t Minisini. From brian at westwoodsvcs.com Mon Mar 27 01:40:35 2023 From: brian at westwoodsvcs.com (Brian G) Date: Sun, 26 Mar 2023 16:40:35 -0700 (PDT) Subject: [Gambas-user] Object.address() returns wrong address for a structure In-Reply-To: References: <1846633238.24415.1679800186140.JavaMail.zimbra@westwoodsvcs.com> <40452516.24474.1679846824172.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1153924467.24537.1679874035732.JavaMail.zimbra@westwoodsvcs.com> That is amazing, Thank you Beno?t! "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 26, 2023, at 3:53 PM, Benoit Minisini benoit.minisini at gambas-basic.org wrote: > Le 26/03/2023 ? 20:27, Benoit Minisini a ?crit?: >> Le 26/03/2023 ? 18:07, Brian G a ?crit : >>> But when working with structures, Returning a Gambas is really not of >>> any use to anyone. Would it not be more consitant to return the >>> actual address of the structure as it was assigned? >> >> No, because this is not the goal of Object.Address(). >> >> You need a new API, something like Object.Data(), that will return a >> pointer to the date pointed by the object. >> >> Regards, >> > > Done in commit > https://gitlab.com/gambas/gambas/-/commit/d42aad3a6561ab6efbc282275aab9a4c3c389fd8. > > Regards, > > -- > Beno?t Minisini. > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From benoit.minisini at gambas-basic.org Mon Mar 27 02:37:09 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Mon, 27 Mar 2023 02:37:09 +0200 Subject: [Gambas-user] IDE properties and auto-inheritance In-Reply-To: References: Message-ID: <878b9602-cce4-90ac-63ad-a050e2de0296@gambas-basic.org> Le 25/03/2023 ? 16:59, Bruce Steers a ?crit?: > Is there a reason i cannot set properties in the IDE with auto-inherited > TextLabel? > > Consider the following code named TextLabel.class.. > | > | > |' Gambas class file| > | > |Export| > |Public| |Const| |_Properties ||As| |String| |= ||"*,IsHeader"| > |Property| |IsHeader ||As| |Boolean| > |Private| |$IsHeader ||As| |Boolean| > |Private| |Function| |IsHeader_Read() ||As| |Boolean| > |||Return| |$IsHeader| > |End| > |Private| |Sub| |IsHeader_Write(Value ||As| |Boolean||)| > |||$IsHeader = Value| > |End| > | > | > after "compile all" i can see the IsHeader value in the IDE properties > and I have the option to set it true or false but if i change it it just > remains False. > > If I rename the class to TextLabel2.class and use "Inherits TextLabel" > then it looks the same in the IDE and i can change the property okay. > > Is it a bug or is it wrong to expect the IDE to use properties from > auto-inherited classes? > > Cheers > BruceS > | > It should be fixed by commit https://gitlab.com/gambas/gambas/-/commit/76772369beaca4d56ad9d3f5027b1080548c70ab. Regards, -- Beno?t Minisini. From bsteers4 at gmail.com Mon Mar 27 03:53:05 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Mon, 27 Mar 2023 02:53:05 +0100 Subject: [Gambas-user] IDE properties and auto-inheritance In-Reply-To: <878b9602-cce4-90ac-63ad-a050e2de0296@gambas-basic.org> References: <878b9602-cce4-90ac-63ad-a050e2de0296@gambas-basic.org> Message-ID: On Mon, 27 Mar 2023 at 01:38, Benoit Minisini < benoit.minisini at gambas-basic.org> wrote: > Le 25/03/2023 ? 16:59, Bruce Steers a ?crit : > > Is there a reason i cannot set properties in the IDE with auto-inherited > > TextLabel? > > > > Consider the following code named TextLabel.class.. > > | > > | > > |' Gambas class file| > > | > > |Export| > > |Public| |Const| |_Properties ||As| |String| |= ||"*,IsHeader"| > > |Property| |IsHeader ||As| |Boolean| > > |Private| |$IsHeader ||As| |Boolean| > > |Private| |Function| |IsHeader_Read() ||As| |Boolean| > > |||Return| |$IsHeader| > > |End| > > |Private| |Sub| |IsHeader_Write(Value ||As| |Boolean||)| > > |||$IsHeader = Value| > > |End| > > | > > | > > after "compile all" i can see the IsHeader value in the IDE properties > > and I have the option to set it true or false but if i change it it just > > remains False. > > > > If I rename the class to TextLabel2.class and use "Inherits TextLabel" > > then it looks the same in the IDE and i can change the property okay. > > > > Is it a bug or is it wrong to expect the IDE to use properties from > > auto-inherited classes? > > > > Cheers > > BruceS > > | > > > > It should be fixed by commit > > https://gitlab.com/gambas/gambas/-/commit/76772369beaca4d56ad9d3f5027b1080548c70ab > . > > Regards, > > -- > Beno?t Minisini. > Thanks Ben, yep working okay now :) Much respect -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharon at 455.co.il Tue Mar 28 00:24:58 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Tue, 28 Mar 2023 01:24:58 +0300 Subject: [Gambas-user] ListView right to left direction Message-ID: <20230327222100.M74392@455.co.il> Hello In the ListView control If it is in the right to left direction When I add a picture in an item The picture is not visible It is hidden on the right side If it's left to right When I add text, characters in Hebrew and also an image It shows the image but the text is hidden on the right side I am attaching an example Many thanks -------------- next part -------------- A non-text attachment was scrubbed... Name: ListView_RTL.zip Type: application/zip Size: 15828 bytes Desc: not available URL: From brian at westwoodsvcs.com Tue Mar 28 01:00:56 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 27 Mar 2023 16:00:56 -0700 (PDT) Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure Message-ID: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> I have a question... as usual.. When a variable is declared within a loop with an initial value, the value is reinitialized at each iteration of the loop. But when it is not provided with an initial value,it is not reset to zero at each iteration of the loop or when the loop is entered. If we view each loop structure as a closed block of code, would it not be more appropriate to initialize the variable upon entry to the block. And then have the loop structure return to just after the initialization sequence rather than the actual loop entry label. Also should not the variable declared in the block without an initial value be reinitialized to the default value as the block is entered. I do understand that the declaration of a variable within any block is for convenience, but if it is allowed should their values not follow some consistent rules? How hard is it to change the return/iteration point on a loop to just after variable initialization of contained variables? Or maybe I am just wrong about this? Following is a script which illustrates the quandry: ____________________________________________________________________ #!/usr/bin/env gbs3 ' Gambas Script File Created 03/27/2023 15:11:08 for y as integer = 0 to 2 for i as integer = 1 to 1000000 dim a as integer = 1 inc a next print "a=";a next for y = 0 to 2 for i = 1 to 1000000 dim b as integer inc b next print "b=";b next Quit 0 Catch error "Script Error >";;error.text & "\n" & error.where ________________________________________________________________________ Output Example: ____________ _____________________________________________________________ a=2 a=2 a=2 b=1000000 b=2000000 b=3000000 __________________________________________________________________________ "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 Tue Mar 28 01:15:15 2023 From: adamnt42 at gmail.com (BB) Date: Tue, 28 Mar 2023 09:45:15 +1030 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <92330330-1c84-d4cf-517c-201e1ab57cac@gmail.com> I think In the first example ?dim a as integer = 1 is shorthand for ?dim a as integer ?a = 1 in the second example, try reading it like this: for y = 0 to 2 for i = 1 to 1000000 dim b as integer <--- i.e. the "declaration" is implemented at the highest block. ? ? ?inc b next print "b=";b next You could try running it with the debug option to see this b -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Mar 28 02:42:13 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 28 Mar 2023 03:42:13 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> Message-ID: I think "Dim b As Integer" should be the same as "Dim b As Integer = 0". I consider this as a bug / unwanted feature. If "Dim b As Integer" is equal to a local variable declared at the beginning of a function/sub, then I think IDE should just move it there. In C variables "a" and "b" would be out of scope (valid only within the loop) and thus this would not compile and thus no confusion. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Tue Mar 28 02:58:12 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 27 Mar 2023 17:58:12 -0700 (PDT) Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <92330330-1c84-d4cf-517c-201e1ab57cac@gmail.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <92330330-1c84-d4cf-517c-201e1ab57cac@gmail.com> Message-ID: <1344668518.25084.1679965092909.JavaMail.zimbra@westwoodsvcs.com> Hi Bruce, Thanks for your reply. I do understand that in fact both examples are actually implements at the highest level of any given function. And I understand that the initialization value is equivalent to breaking it into two statements. I was really looking for a consistence in the behavior of values as one enters a block of code where the value is defined. Would it be better to have the dim a as integer = 1 be an initial value upon entering the block. instead of being reset on every iteration of the loop. In that notation One would then write explicitly a = 1 at the top of each loop if it should be reset. as well if a variable is declared within a block with no initial value should it be reset to the default value at that time. more like : for b as integer 0 to 100 dim c as integer = 50 ' Set upon entry dim e as integer ' e gets set to the default value forloop: inc c print c next ' goes to forloop I know this is different from the actual implementation, but the question is would this be more consistent? And yes I understand I could move both to just outside the loop to get this effect, but since we allow this type of notation.... "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 27, 2023, at 11:15 PM, Bruce wrote: > I think > In the first example > dim a as integer = 1 > is shorthand for > dim a as integer > a = 1 > in the second example, try reading it like this: > for y = 0 to 2 > for i = 1 to 1000000 > dim b as integer <--- i.e. the "declaration" is implemented at the highest > block. > inc b > next > print "b=";b > next > You could try running it with the debug option to see this > b > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Tue Mar 28 03:08:19 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 27 Mar 2023 18:08:19 -0700 (PDT) Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1910864825.25178.1679965699132.JavaMail.zimbra@westwoodsvcs.com> Hi Jussi, Surprisingly this completely invalid C code compiles and actuall works the same way as gambas. It remebers the value of p which goes out of scope between itterations.. lol But if you throw in a few other volitile declarations between it all goes to pot.... #include int main() { printf("hello world\n"); int i,j,k,l; for(l=0; l< 2; l++) { for(k=0; k < 2; k++) { for(i=0;i<1000000;i++) { int p; p++; if(p % 1000000 == 0) printf("p=%d, j=%d\n",p,j); j=p; } printf("j=%d\n",j); } } } Output : hello world p=1000000, j=999999 j=1000000 p=2000000, j=1999999 j=2000000 p=3000000, j=2999999 j=3000000 p=4000000, j=3999999 j=4000000 This is a fun fact! But don't depend upon it! "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 28, 2023, at 12:42 AM, Jussi Lahtinen wrote: > I think "Dim b As Integer" should be the same as "Dim b As Integer = 0". I > consider this as a bug / unwanted feature. > If "Dim b As Integer" is equal to a local variable declared at the beginning of > a function/sub, then I think IDE should just move it there. > In C variables "a" and "b" would be out of scope (valid only within the loop) > and thus this would not compile and thus no confusion. > Jussi > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Mar 28 05:14:51 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 28 Mar 2023 06:14:51 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <1910864825.25178.1679965699132.JavaMail.zimbra@westwoodsvcs.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <1910864825.25178.1679965699132.JavaMail.zimbra@westwoodsvcs.com> Message-ID: This is quite expected (and you got a bit lucky) as you do not initialize "p", nor you are asking the value of "p" outside of the scope, instead you print it inside the loop. Normally compilers will give you warning about this, because uninitialized values may not be zero like in Gambas. So, at some not so lucky run value of "p" may start from some seemingly random number. Jussi On Tue, Mar 28, 2023 at 4:15?AM Brian G wrote: > Hi Jussi, > > Surprisingly this completely invalid C code compiles and actuall works the > same way as > gambas. It remebers the value of p which goes out of scope between > itterations.. lol > But if you throw in a few other volitile declarations between it all goes > to pot.... > > #include > > int main() { > printf("hello world\n"); > int i,j,k,l; > for(l=0; l< 2; l++) { > for(k=0; k < 2; k++) { > for(i=0;i<1000000;i++) { > int p; > p++; > if(p % 1000000 == 0) printf("p=%d, j=%d\n",p,j); > j=p; > } > printf("j=%d\n",j); > } > } > } > Output : > > hello world > p=1000000, j=999999 > j=1000000 > p=2000000, j=1999999 > j=2000000 > p=3000000, j=2999999 > j=3000000 > p=4000000, j=3999999 > j=4000000 > > This is a fun fact! But don't depend upon it! > > "Failure is the key to success; > each mistake teaches us something" .. Morihei Ueshiba > Brian G > > ----- On Mar 28, 2023, at 12:42 AM, Jussi Lahtinen < > jussi.lahtinen at gmail.com> wrote: > > I think "Dim b As Integer" should be the same as "Dim b As Integer = 0". I > consider this as a bug / unwanted feature. > If "Dim b As Integer" is equal to a local variable declared at the > beginning of a function/sub, then I think IDE should just move it there. > > In C variables "a" and "b" would be out of scope (valid only within the > loop) and thus this would not compile and thus no confusion. > > > Jussi > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Tue Mar 28 06:22:22 2023 From: brian at westwoodsvcs.com (Brian G) Date: Mon, 27 Mar 2023 21:22:22 -0700 (PDT) Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <1910864825.25178.1679965699132.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <1790195489.25217.1679977342403.JavaMail.zimbra@westwoodsvcs.com> not actually expected as p goes out of scope yet has the last value when it reenters this block, caused by the optimization taking place in the compiler. The value is of course just lucky. it seems that on mint anyway, allocated memory is always zero, in this case it looks like the register is not reused. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 27, 2023, at 8:14 PM, Jussi Lahtinen wrote: > This is quite expected (and you got a bit lucky) as you do not initialize "p", > nor you are asking the value of "p" outside of the scope, instead you print it > inside the loop. > Normally compilers will give you warning about this, because uninitialized > values may not be zero like in Gambas. > So, at some not so lucky run value of "p" may start from some seemingly random > number. > Jussi > On Tue, Mar 28, 2023 at 4:15 AM Brian G < [ mailto:brian at westwoodsvcs.com | > brian at westwoodsvcs.com ] > wrote: >> Hi Jussi, >> Surprisingly this completely invalid C code compiles and actuall works the same >> way as >> gambas. It remebers the value of p which goes out of scope between itterations.. >> lol >> But if you throw in a few other volitile declarations between it all goes to >> pot.... >> #include >> int main() { >> printf("hello world\n"); >> int i,j,k,l; >> for(l=0; l< 2; l++) { >> for(k=0; k < 2; k++) { >> for(i=0;i<1000000;i++) { >> int p; >> p++; >> if(p % 1000000 == 0) printf("p=%d, j=%d\n",p,j); >> j=p; >> } >> printf("j=%d\n",j); >> } >> } >> } >> Output : >> hello world >> p=1000000, j=999999 >> j=1000000 >> p=2000000, j=1999999 >> j=2000000 >> p=3000000, j=2999999 >> j=3000000 >> p=4000000, j=3999999 >> j=4000000 >> This is a fun fact! But don't depend upon it! >> "Failure is the key to success; >> each mistake teaches us something" .. Morihei Ueshiba >> Brian G >> ----- On Mar 28, 2023, at 12:42 AM, Jussi Lahtinen < [ >> mailto:jussi.lahtinen at gmail.com | jussi.lahtinen at gmail.com ] > wrote: >>> I think "Dim b As Integer" should be the same as "Dim b As Integer = 0". I >>> consider this as a bug / unwanted feature. >>> If "Dim b As Integer" is equal to a local variable declared at the beginning of >>> a function/sub, then I think IDE should just move it there. >>> In C variables "a" and "b" would be out of scope (valid only within the loop) >>> and thus this would not compile and thus no confusion. >>> Jussi >>> ----[ [ http://gambaswiki.org/wiki/doc/netiquette | >>> http://gambaswiki.org/wiki/doc/netiquette ] ]---- >> ----[ [ 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 benoit.minisini at gambas-basic.org Tue Mar 28 09:54:17 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 28 Mar 2023 09:54:17 +0200 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> Le 28/03/2023 ? 01:00, Brian G a ?crit?: > I have a question... as usual.. > > When a variable is declared within a loop with an initial value, the > value is reinitialized at each iteration?of the loop. > But when it is not provided with an initial value,it is not reset to > zero at each iteration of the loop or when the loop is entered. > > If we view each loop structure as a closed block of code, would it not > be more appropriate to initialize the variable upon entry to the block. > And then have the loop structure return to just after the initialization > sequence rather than the actual loop entry label. > > Also should not the variable declared in the block without an initial > value be reinitialized to the default value as the block is entered. > > I do understand that the declaration of a variable within any block is > for convenience, but if it is allowed should their values not follow > some consistent rules? > > How hard is it to change the return/iteration point on a loop to just > after variable initialization of contained variables? > Or maybe I am just wrong about this? > As said in the thread: Dim Var As Integer = 1 Is syntaxic sugar for: Dim Var As Integer ' A declaration... Var = 1 ' Plus a statement But: Dim Var As Integer Is not an equivalent of: Dim Var As Integer Var = 0 Because the default zero value of the variable is not initialized by the code but internally by the interpreter. And as there is only function scope for variable declaration, you get the behaviour you described. Once explained, that behaviour is logical. It's surprising only if you don't know how variable declaration is implemented. As Jussi said, we can make: Dim Var As Integer an equivalent of: Dim Var As Integer Var = 0 when Var is not declared at the top of the function. But then the declaration of a variable not on top of a function is not the same as the declaration of a variable on top. At the moment I'm not sure this cannot lead to some problems, so I will wait and think a bit before deciding implementing it or not. By the way, I almost never declare variables in the middle of a function. It's always a source of confusion, sometimes bugs, and make the code less readable. Regards, -- Beno?t Minisini. From roberto.premoli at tiscali.it Tue Mar 28 10:19:51 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Tue, 28 Mar 2023 10:19:51 +0200 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color Message-ID: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> Hi, I just moved a ooooold project to "current" gambas 3.15.2 present on Debian 11. some of my code manage the background of chekbox, but not id does not work anumore. let say: Public Sub CheckBox1_Click() CheckBox1.Text = "my text here" CheckBox1.background = 255 End does not change the backgorund but Public Sub CheckBox1_Click() CheckBox1.Text = "my text here" CheckBox1.foreground = 255 End run properly and the foreground color of text move to blue. I report this bug just in case is present also in 3.18.x and noone noticed before. It the bug is already fixed, don't care this mail VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gradobag at gradobag.it Tue Mar 28 10:41:13 2023 From: gradobag at gradobag.it (Gianluigi) Date: Tue, 28 Mar 2023 10:41:13 +0200 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> Message-ID: Il 28/03/23 10:19, roberto.premoli at tiscali.it ha scritto: > Hi, > I just moved a ooooold project to "current" gambas 3.15.2 present on > Debian 11. > some of my code manage the background of chekbox, but not id does not > work anumore. > > let say: > > Public Sub CheckBox1_Click() > CheckBox1.Text = "my text here" > CheckBox1.background = 255 > End > > does not change the backgorund > > but > > Public Sub CheckBox1_Click() > CheckBox1.Text = "my text here" > CheckBox1.foreground = 255 > End > > run properly and the foreground color of text move to blue. > > I report this bug just in case is present also in 3.18.x and noone > noticed before. > It the bug is already fixed, don't care this mail It depends on the libraries and the theme used. If you are interested in compiling Gambas to have the latest "Stable" or the latest "Master" on Debian, you can read the files attached to these posts: https://www.gambas-it.org/smf/index.php?topic=8049.0 https://www.gambas-it.org/smf/index.php?topic=6515.0 And if something is not clear, if you want, you can also ask on the forum Regards Gianluigi -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Tue Mar 28 12:10:35 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Tue, 28 Mar 2023 12:10:35 +0200 Subject: [Gambas-user] ListView right to left direction In-Reply-To: <20230327222100.M74392@455.co.il> References: <20230327222100.M74392@455.co.il> Message-ID: <7a7fd749-a7c8-24da-a256-e9338235bcc6@gambas-basic.org> Le 28/03/2023 ? 00:24, Mayost Sharon a ?crit?: > Hello > > In the ListView control > > If it is in the right to left direction > > When I add a picture in an item > The picture is not visible > It is hidden on the right side > > If it's left to right > When I add text, characters in Hebrew and also an image > It shows the image but the text is hidden on the right side > > I am attaching an example > > Many thanks > It should be fixed by commit https://gitlab.com/gambas/gambas/-/commit/3a4d25be15635e6c1e5fb47aac265539990671b9. Regards, -- Beno?t Minisini. From sharon at 455.co.il Tue Mar 28 12:59:08 2023 From: sharon at 455.co.il (Mayost Sharon) Date: Tue, 28 Mar 2023 12:59:08 +0200 Subject: [Gambas-user] ListView right to left direction In-Reply-To: <7a7fd749-a7c8-24da-a256-e9338235bcc6@gambas-basic.org> References: <20230327222100.M74392@455.co.il> <7a7fd749-a7c8-24da-a256-e9338235bcc6@gambas-basic.org> Message-ID: <20230328103226.M84997@455.co.il> Thank you very much And sorry again ---------- Original Message ----------- From: Benoit Minisini To: user at lists.gambas-basic.org Sent: Tue, 28 Mar 2023 12:10:35 +0200 Subject: Re: [Gambas-user] ListView right to left direction > Le 28/03/2023 ? 00:24, Mayost Sharon a ?crit?: > > Hello > > > > In the ListView control > > > > If it is in the right to left direction > > > > When I add a picture in an item > > The picture is not visible > > It is hidden on the right side > > > > If it's left to right > > When I add text, characters in Hebrew and also an image > > It shows the image but the text is hidden on the right side > > > > I am attaching an example > > > > Many thanks > > > > It should be fixed by commit > https://gitlab.com/gambas/gambas/-/commit/3a4d25be15635e6c1e5fb47aac265539990671b9. > > Regards, > > -- > Beno?t Minisini. > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- ------- End of Original Message ------- From bsteers4 at gmail.com Tue Mar 28 14:29:42 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 28 Mar 2023 13:29:42 +0100 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> Message-ID: On Tue, 28 Mar 2023 at 09:20, wrote: > Hi, > I just moved a ooooold project to "current" gambas 3.15.2 present on > Debian 11. > some of my code manage the background of chekbox, but not id does not work > anumore. > > let say: > > Public Sub CheckBox1_Click() > CheckBox1.Text = "my text here" > CheckBox1.background = 255 > End > > > does not change the backgorund > > but > > Public Sub CheckBox1_Click() > CheckBox1.Text = "my text here" > CheckBox1.foreground = 255 > End > > > run properly and the foreground color of text move to blue. > > I report this bug just in case is present also in 3.18.x and noone noticed > before. > It the bug is already fixed, don't care this mail > 3.15 , wow such a distant memory ;) Upgrade to stable or master versions. here's a few simple scripts/programs to help update... https://gambaswiki.org/wiki/installtools or do it manually by copy/paste the commands shown here... http://138.68.116.47/cgi-bin/WebGambasUpgrade.gambas There really is no point in reporting bugs on old versions. (even if "just to check its fixed in latest) Just update gambas then see for yourself if the bug still exists :) Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Tue Mar 28 14:34:20 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Tue, 28 Mar 2023 13:34:20 +0100 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> Message-ID: On Tue, 28 Mar 2023 at 13:29, Bruce Steers wrote: > > > > On Tue, 28 Mar 2023 at 09:20, wrote: > >> Hi, >> I just moved a ooooold project to "current" gambas 3.15.2 present on >> Debian 11. >> some of my code manage the background of chekbox, but not id does not >> work anumore. >> >> let say: >> >> Public Sub CheckBox1_Click() >> CheckBox1.Text = "my text here" >> CheckBox1.background = 255 >> End >> >> >> does not change the backgorund >> I report this bug just in case is present also in 3.18.x and noone >> noticed before. >> It the bug is already fixed, don't care this mail >> > > 3.15 , wow such a distant memory ;) > Upgrade to stable or master versions. > here's a few simple scripts/programs to help update... > https://gambaswiki.org/wiki/installtools > > or do it manually by copy/paste the commands shown here... > http://138.68.116.47/cgi-bin/WebGambasUpgrade.gambas > > There really is no point in reporting bugs on old versions. (even if "just > to check its fixed in latest) > Just update gambas then see for yourself if the bug still exists :) > By the way , i do not get the bug on 3.18 (did you try CheckBox1.Refresh after changing bg ? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Tue Mar 28 19:48:47 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Tue, 28 Mar 2023 20:48:47 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <1790195489.25217.1679977342403.JavaMail.zimbra@westwoodsvcs.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <1910864825.25178.1679965699132.JavaMail.zimbra@westwoodsvcs.com> <1790195489.25217.1679977342403.JavaMail.zimbra@westwoodsvcs.com> Message-ID: > not actually expected as p goes out of scope ... > Not true. p is never used outside of the scope. That would not compile. > ... yet has the last value when it reenters this block, > This is because "int p;" gives the same memory address every time (not guaranteed) without initializing it. So it will contain the value it used to contain. > Tit seems that on mint anyway, allocated memory is always zero, in this > case it looks like the register is not reused. > No, this is also not guaranteed. Try to declare a big array and check if it has only zeroes. One variable may hit some initialized space, but you cannot rely on it. C does only the minimal, that is also why it is so fast. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Mar 29 00:12:47 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 29 Mar 2023 00:12:47 +0200 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> Message-ID: Am 28.03.23 um 09:54 schrieb Benoit Minisini: > By the way, I almost never declare variables in the middle of a > function. It's always a source of confusion, sometimes bugs, and make > the code less readable. It was a bad idea, I was against that. But now I think, that a 'Dim' inside a function should behave like that to be logical: If the code explicitly defines it's content it is clear that the variable contains the content defined: ----------------------------------------------------------- For i = 0 to 100 Dim p as Integer = 0 Inc p Next Print p Prints 1 ----------------------------------------------------------- If the 'Dim' in the code does not explicitly define it's content, the preexisting content has to be preserved. This would be the same as if the variable were declared at the top of the method: ----------------------------------------------------------- For i = 0 to 99 Dim p as Integer Inc p Next Print p Prints 100 ----------------------------------------------------------- This is what Gambas does and IMO it should not be altered. IMO it would be a bad idea and illogical if Gambas alters the content of the variable silently to '0' if the programmer did not explicitly wanted it. Because on the other hand if the programmer wants a change of the content, it must be defined in the code. 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 brian at westwoodsvcs.com Wed Mar 29 01:17:27 2023 From: brian at westwoodsvcs.com (Brian G) Date: Tue, 28 Mar 2023 16:17:27 -0700 (PDT) Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> Message-ID: <1183816612.25646.1680045447761.JavaMail.zimbra@westwoodsvcs.com> I Think I agree with the majority! "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 28, 2023, at 3:12 PM, Christof Thalhofer chrisml at deganius.de wrote: > Am 28.03.23 um 09:54 schrieb Benoit Minisini: > >> By the way, I almost never declare variables in the middle of a >> function. It's always a source of confusion, sometimes bugs, and make >> the code less readable. > > It was a bad idea, I was against that. But now I think, that a 'Dim' > inside a function should behave like that to be logical: > > If the code explicitly defines it's content it is clear that the > variable contains the content defined: > > ----------------------------------------------------------- > > For i = 0 to 100 > Dim p as Integer = 0 > Inc p > Next > > Print p > > Prints 1 > > ----------------------------------------------------------- > > If the 'Dim' in the code does not explicitly define it's content, the > preexisting content has to be preserved. This would be the same as if > the variable were declared at the top of the method: > > ----------------------------------------------------------- > > For i = 0 to 99 > Dim p as Integer > Inc p > Next > > Print p > > Prints 100 > > ----------------------------------------------------------- > > This is what Gambas does and IMO it should not be altered. > > IMO it would be a bad idea and illogical if Gambas alters the content of > the variable silently to '0' if the programmer did not explicitly wanted > it. Because on the other hand if the programmer wants a change of the > content, it must be defined in the code. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- From jussi.lahtinen at gmail.com Wed Mar 29 01:48:36 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 29 Mar 2023 02:48:36 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> Message-ID: You made a very good point. But normally "Dim p as Integer" also initializes the variable, and within the loop this is the only thing left to do after the initial declaration (or raise error that variable is already declared). So, this is up to interpretation on what characteristics you are relying on. No logical resolution. Thus now I think this works logically only, if the variable has scope limited to the loop where it is declared like in C. I do not like this. Jussi On Wed, Mar 29, 2023 at 1:13?AM Christof Thalhofer wrote: > Am 28.03.23 um 09:54 schrieb Benoit Minisini: > > > By the way, I almost never declare variables in the middle of a > > function. It's always a source of confusion, sometimes bugs, and make > > the code less readable. > > It was a bad idea, I was against that. But now I think, that a 'Dim' > inside a function should behave like that to be logical: > > If the code explicitly defines it's content it is clear that the > variable contains the content defined: > > ----------------------------------------------------------- > > For i = 0 to 100 > Dim p as Integer = 0 > Inc p > Next > > Print p > > Prints 1 > > ----------------------------------------------------------- > > If the 'Dim' in the code does not explicitly define it's content, the > preexisting content has to be preserved. This would be the same as if > the variable were declared at the top of the method: > > ----------------------------------------------------------- > > For i = 0 to 99 > Dim p as Integer > Inc p > Next > > Print p > > Prints 100 > > ----------------------------------------------------------- > > This is what Gambas does and IMO it should not be altered. > > IMO it would be a bad idea and illogical if Gambas alters the content of > the variable silently to '0' if the programmer did not explicitly wanted > it. Because on the other hand if the programmer wants a change of the > content, it must be defined in the code. > > Alles Gute > > Christof Thalhofer > > -- > Dies ist keine Signatur > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chrisml at deganius.de Wed Mar 29 09:04:17 2023 From: chrisml at deganius.de (Christof Thalhofer) Date: Wed, 29 Mar 2023 09:04:17 +0200 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> Message-ID: <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> Am 29.03.23 um 01:48 schrieb Jussi Lahtinen: > You made a very good point. But normally "Dim p as Integer" also > initializes the variable, and within the loop this is the only thing left > to do after the initial declaration (or raise error that variable is > already declared). So, this is up to interpretation on what characteristics > you are relying on. No logical resolution. Hmm ... I understand, but I'm not really convinced. So let's see what 'Dim p as Integer' anywhere in the code but not at the top is good for: Either you (not you, I mean me as I was a bad one) are a bad programmer or you want speed and keep your program running inside a very long method without jumping out. For the sake of readability you want to declare a variable at the place where it is needed. Maybe you have 1000 lines of code above that place and 1000 lines below and you think that makes sense ? maybe because you have a lot of such variables to declare. Gambas allows you to declare the variable anywhere and your program starts a loop at line 10 and repeats it with 'Next' at line 1990. So this is the only moment where I as a programmer can imagine that I want to be able to declare a variable inside a loop with 'Dim p as Integer'. If now Gambas would reinitialize the variable silently at that point to the content '0' it would make no sense at all to declare it at line 1001. I would be forced to declare it at the top outside the loop. So the only advantage of the declaration within a loop would be lost. Does this sound logical? > Thus now I think this works logically only, if the variable has scope > limited to the loop where it is declared like in C. I do not like this. I agree. 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 Wed Mar 29 10:14:28 2023 From: adamnt42 at gmail.com (BB) Date: Wed, 29 Mar 2023 18:44:28 +1030 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> Message-ID: <989715b0-73f9-9f60-2a10-397d95b03bf2@gmail.com> Inline. On 29/3/23 5:34 pm, Christof Thalhofer wrote: > Am 29.03.23 um 01:48 schrieb Jussi Lahtinen: > >> You made a very good point. But normally "Dim p as Integer" also >> initializes the variable, No, from what Benoit said, the declaration does not initialize the variable, the runtime does.? Or in other words, a (native) variable declaration is not a code command to initialize it. >> and within the loop this is the only thing left >> to do after the initial declaration (or raise error that variable is >> already declared). I think this is confusing scope with code. As Benoit said, the scope of the variable is the method, whether it's declared "here" or at the top of the method. >> So, this is up to interpretation on what characteristics >> you are relying on. No logical resolution. > > Hmm ... I understand, but I'm not really convinced. > > So let's see what 'Dim p as Integer' anywhere in the code but not at > the top is good for: > > Either you (not you, I mean me as I was a bad one) are a bad > programmer or you want speed and keep your program r1unning inside a > very long method without jumping out. > Exactly! Being a bad programmer with a few lines of code to my name I have resorted to this means about 5 times in my Gambas history and exactly because I was too lazy to scroll back 998 lines to enter the declaration and then somehow go back to where I wanted to use it. > For the sake of readability you want to declare a variable at the > place where it is needed. Maybe you have 1000 lines of code above that > place and 1000 lines below and you think that makes sense ? maybe > because you have a lot of such variables to declare. only 998 lines, I must not be as bad as I thought! :-) > > Gambas allows you to declare the variable anywhere and your program > starts a loop at line 10 and repeats it with 'Next' at line 1990. > > So this is the only moment where I as a programmer can imagine that I > want to be able to declare a variable inside a loop with 'Dim p as > Integer'. > > If now Gambas would reinitialize the variable silently at that point > to the content '0' it would make no sense at all to declare it at line > 1001. I would be forced to declare it at the top outside the loop. > > So the only advantage of the declaration within a loop would be lost. > > Does this sound logical? Most assuredly so. This whole conversation seems to be based around different interpretations of scope, declaration and initialisation. So here's my 20c 1. The scope of a variable in a method is the method. IMMUTABLE! If you want a different variable then use one. 2. Declaration and initialization are two very different things. And even if natives are initialised by the interpreter if not done explicitly, there is no reason to expect it. (I never trust booleans to be false by default by the way!) 3. Syntactic sugar, although wonderful and demanded by us coders with almost too much Gambas experience, is a trap!? Is a newbie expected to understand that declaring an object variable with the NEW option is shorthand! i.e. ??? Dim Xyzzy as New Thingo is ??? Dim Xyzzy as Thingo ??? Xyzzy = New Thingo Source code and runtime code are very different things. I believe I learned that the hard way back in the 1970s trying to understand why the machine code did not match my assembler code. (It was in fact a weird situation where the assembler coded a specific assembler construct as a NOP. When I finally understood why, it took me several weeks to explain that to the system vendor's engineers. It wasn't a bug, it was more of a design error in the machine architecture. But it did have several highly qualified people in the day scratching their heads. The machine may or may not have been one that rhymes with, well, Rhyme.) > >> Thus now I think this works logically only, if the variable has scope >> limited to the loop where it is declared like in C. I do not like this. > > I agree. Me too, we do not want scope limited by ill expected code structures. Unless Gambas should look like Algol. Arrrrggh! Or even worse python (spew). > > Alles Gute > > Christof Thalhofer > Almost finally, I want to mention "locally defined" loop control variables, as in ? ? For X as Integer From Y to Z ...???? Here too is a trap for the unwary. When Benoit, allowed the introduction of this code construct he was very explicit in explaining that the scope of the variable was still the method, not the loop. I believe that is still said somewhere in the wiki, I just can't find it at the moment. But this is a good thing as I can rely on the value of the control variable after the loop is exited, as in when processing an unknown number of items inside the loop, ??? For idx as Integer From 0 to 1000000 ??? ??? ... ??? ??? If Then Break ??? ??? ... ??? Next ??? Print X ' or whatever depending on what X is. and now finally! This conversation initially got me a bit worried because I use the following code structure a fair bit in GridView_Click() handlers. ??? Public Sub ThisGrid_Click() ??? ??? If ThisGrid.Row < 0 Then Return ' the user has not selected one of the rows ??? ??? Dim SomeObject as New Something ??? ??? ... blah blah etc as object instantiation can sometimes be expensive and I wanted "efficient" code. Then I realised that, of course, what I was actually coding was ?? Public Sub ThisGrid_Click() ??? ??? {Dim SomeObject as Something} ??? ??? If ThisGrid.Row < 0 Then Return ' the user has not selected one of the rows ??? ??? {SomeObject = New Something} ??? ??? ... blah blah etc So even "smart alec" coders like moi can get confused by these pieces of sugar! cheers bruce From claus.dietrich at freenet.de Wed Mar 29 13:32:25 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Wed, 29 Mar 2023 13:32:25 +0200 Subject: [Gambas-user] Rendering of Custom UserControls during development time In-Reply-To: References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> Message-ID: <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> Am 24.03.23 um 16:30 schrieb Benoit Minisini: > Look at the documentation and at the source code of the SwitchButton > control (for example) in the 'gb.form' component for more details. Native Gambas UserControls like Buttons are rendered almost exactly the same during development time as during runtime. That means i.e. that a Button displays a loaded Picture already during development time. This does not apply for self-made controls implemented as class. In that case only a simple box or an icon loaded from the Project/control - directory is displayed. This also applies to native Gambas controls if implemented as class. I tested it with the source code of the Gambas SwitchButton. My question: How can a custom UserControl be rendered during development time so that it looks similar to its appearance at runtime? Best regards Claus -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 29 13:48:09 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 29 Mar 2023 12:48:09 +0100 Subject: [Gambas-user] Rendering of Custom UserControls during development time In-Reply-To: <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> Message-ID: On Wed, 29 Mar 2023 at 12:33, Claus Dietrich wrote: > Am 24.03.23 um 16:30 schrieb Benoit Minisini: > > Look at the documentation and at the source code of the SwitchButton > control (for example) in the 'gb.form' component for more details. > > Native Gambas UserControls like Buttons are rendered almost exactly the > same during development time as during runtime. That means i.e. that a > Button displays a loaded Picture already during development time. This does > not apply for self-made controls implemented as class. In that case only a > simple box or an icon loaded from the Project/control - directory is > displayed. This also applies to native Gambas controls if implemented as > class. I tested it with the source code of the Gambas SwitchButton. > > My question: How can a custom UserControl be rendered during development > time so that it looks similar to its appearance at runtime? > > Best regards > > Claus > the IDE can only show components it loads when it first runs. If that makes sense. you component is a part of your project loaded by gambas , not a part of gambas. I made a way to load my controls but it meant hacking the IDE in a way that Benoit does not like and is reluctant to implement. This is because the controls are loaded by gambas into the IDE itself and their code to render in the IDE is part of the component, a custom control that is not coded properly can break gambas. Plus it gives many other issues especially if you are working on the control. as you will make changes to it but the IDE cannot reload the already loaded control. so you get glitches that resolve when closing gambas and re-opening it. you best option is to use _DrawWith that will use an official control as your preview. eg. Public Const _DrawWith As String = "GridView" will show your control as a gridview in the IDE BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From jussi.lahtinen at gmail.com Wed Mar 29 14:54:25 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 29 Mar 2023 15:54:25 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> Message-ID: > > Does this sound logical? > Absolutely. But both options sound logical. Thus I said there is no logical resolution. I think this is a "pick your poison" situation. Unless it is done in the C way. Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 29 15:04:24 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 29 Mar 2023 14:04:24 +0100 Subject: [Gambas-user] Rendering of Custom UserControls during development time In-Reply-To: References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> Message-ID: On Wed, 29 Mar 2023 at 12:48, Bruce Steers wrote: > > > On Wed, 29 Mar 2023 at 12:33, Claus Dietrich > wrote: > >> Am 24.03.23 um 16:30 schrieb Benoit Minisini: >> >> Look at the documentation and at the source code of the SwitchButton >> control (for example) in the 'gb.form' component for more details. >> >> Native Gambas UserControls like Buttons are rendered almost exactly the >> same during development time as during runtime. That means i.e. that a >> Button displays a loaded Picture already during development time. This does >> not apply for self-made controls implemented as class. In that case only a >> simple box or an icon loaded from the Project/control - directory is >> displayed. This also applies to native Gambas controls if implemented as >> class. I tested it with the source code of the Gambas SwitchButton. >> >> My question: How can a custom UserControl be rendered during development >> time so that it looks similar to its appearance at runtime? >> >> Best regards >> >> Claus >> > > the IDE can only show components it loads when it first runs. > > If that makes sense. > you component is a part of your project loaded by gambas , not a part of > gambas. > > I made a way to load my controls but it meant hacking the IDE in a way > that Benoit does not like and is reluctant to implement. > This is because the controls are loaded by gambas into the IDE itself and > their code to render in the IDE is part of the component, a custom control > that is not coded properly can break gambas. > > Plus it gives many other issues especially if you are working on the > control. as you will make changes to it but the IDE cannot reload the > already loaded control. so you get glitches that resolve when closing > gambas and re-opening it. > > you best option is to use _DrawWith that will use an official control as > your preview. > eg. > > Public Const _DrawWith As String = "GridView" > > will show your control as a gridview in the IDE > > BruceS > Or completely customize your gambas IDE like I did mine, as it's written in gambas,,,,,, and we know gambas ;) I added a component loader in the IDE preferences. In the attached pic you can see it working for my ButtonFrame container. (and note, i give plenty of warnings about the risks, and potential bugs) gotta love Gambas :) So Benoit, you still not interested in adding anything like this to the IDE? Maybe a way the IDE can load/reload custom components (custom controls going through some extra error handling n stuff i guess. Respects BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screenshot at 2023-03-29 13-51-08.jpg Type: image/jpeg Size: 86854 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screenshot at 2023-03-29 13-50-11.jpg Type: image/jpeg Size: 101981 bytes Desc: not available URL: From jussi.lahtinen at gmail.com Wed Mar 29 15:07:25 2023 From: jussi.lahtinen at gmail.com (Jussi Lahtinen) Date: Wed, 29 Mar 2023 16:07:25 +0300 Subject: [Gambas-user] Variable reinitialized at each iteration of a loop structure In-Reply-To: <989715b0-73f9-9f60-2a10-397d95b03bf2@gmail.com> References: <1787399240.24920.1679958056887.JavaMail.zimbra@westwoodsvcs.com> <43afc5cf-55b0-a11a-ff12-fceed3ff5034@gambas-basic.org> <855ac826-9325-e89d-7ded-b5403bad7d7a@deganius.de> <989715b0-73f9-9f60-2a10-397d95b03bf2@gmail.com> Message-ID: > >>> You made a very good point. But normally "Dim p as Integer" also > >> initializes the variable, > No, from what Benoit said, the declaration does not initialize the > variable, the runtime does. Or in other words, a (native) variable > declaration is not a code command to initialize it. > I'm speaking about the behavior. Normally variables are initialized. Even in this strange case, the variable IS initialized the first time, but not when the loop continues. > I think this is confusing scope with code. I don't understand how they can be confused. > As Benoit said, the scope of > the variable is the method, whether it's declared "here" or at the top > of the method. > Yes, I know. I never claimed otherwise. I was making comparisons of the behaviors (Gambas / C / hypothetical). > 1. The scope of a variable in a method is the method. IMMUTABLE! If you > want a different variable then use one. > That is the current behavior and logically problematic. Not the same as in C. > 2. Declaration and initialization are two very different things. And > even if natives are initialised by the interpreter if not done > explicitly, there is no reason to expect it. (I never trust booleans to > be false by default by the way!) > Yes. But you don't normally write like this in Gambas: Dim i as Integer = 0 >> Thus now I think this works logically only, if the variable has scope > >> limited to the loop where it is declared like in C. I do not like this. > > > > I agree. > Me too, we do not want scope limited by ill expected code structures. > Unless Gambas should look like Algol. Arrrrggh! Or even worse python > (spew). > Re-read what you are agreeing with..? Jussi -------------- next part -------------- An HTML attachment was scrubbed... URL: From roberto.premoli at tiscali.it Wed Mar 29 15:48:23 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Wed, 29 Mar 2023 15:48:23 +0200 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> Message-ID: <18613a19fae7225be135febbc83b74ab@tiscali.it> Il 28.03.2023 14:34 Bruce Steers ha scritto: > On Tue, 28 Mar 2023 at 13:29, Bruce Steers wrote: > >> On Tue, 28 Mar 2023 at 09:20, wrote: >> >>> Hi, >>> I just moved a ooooold project to "current" gambas 3.15.2 present >>> on >>> Debian 11. >>> some of my code manage the background of chekbox, but not id does >>> not >>> work anumore. >>> >>> let say: >>> >>> Public Sub CheckBox1_Click() >>> CheckBox1.Text = "my text here" >>> CheckBox1.background = 255 >>> End >>> >>> does not change the backgorund >>> I report this bug just in case is present also in 3.18.x and noone >>> noticed before. >>> It the bug is already fixed, don't care this mail >> >> 3.15 , wow such a distant memory ;) >> Upgrade to stable or master versions. >> here's a few simple scripts/programs to help update... >> https://gambaswiki.org/wiki/installtools [2] >> or do it manually by copy/paste the commands shown here... >> http://138.68.116.47/cgi-bin/WebGambasUpgrade.gambas [3] >> There really is no point in reporting bugs on old versions. (even if >> "just to check its fixed in latest) >> Just update gambas then see for yourself if the bug still exists :) > > By the way , i do not get the bug on 3.18 > (did you try CheckBox1.Refresh after changing bg ? > BruceS Hello, Thank for your mail and time you dedicated to me. because i don't want to "break" the version of debian 11, i cannot move to newer version of gambas. I tried to do checkbox.refresh but it did not work. In my case, I use color to communicate feedback from program to user: green=good, red=bad. Not so important what I use, so I "solved" changing color changing foreground and not background. Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. From bsteers4 at gmail.com Wed Mar 29 16:19:46 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 29 Mar 2023 15:19:46 +0100 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: <18613a19fae7225be135febbc83b74ab@tiscali.it> References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> <18613a19fae7225be135febbc83b74ab@tiscali.it> Message-ID: On Wed, 29 Mar 2023 at 14:49, wrote: > Il 28.03.2023 14:34 Bruce Steers ha scritto: > > > On Tue, 28 Mar 2023 at 13:29, Bruce Steers wrote: > > > >> On Tue, 28 Mar 2023 at 09:20, wrote: > >> > >>> Hi, > >>> I just moved a ooooold project to "current" gambas 3.15.2 present > >>> on > >>> Debian 11. > >>> some of my code manage the background of chekbox, but not id does > >>> not > >>> work anumore. > >>> > >>> let say: > >>> > >>> Public Sub CheckBox1_Click() > >>> CheckBox1.Text = "my text here" > >>> CheckBox1.background = 255 > >>> End > >>> > >>> does not change the backgorund > >>> I report this bug just in case is present also in 3.18.x and noone > >>> noticed before. > >>> It the bug is already fixed, don't care this mail > >> > >> 3.15 , wow such a distant memory ;) > >> Upgrade to stable or master versions. > >> here's a few simple scripts/programs to help update... > >> https://gambaswiki.org/wiki/installtools [2] > >> or do it manually by copy/paste the commands shown here... > >> http://138.68.116.47/cgi-bin/WebGambasUpgrade.gambas [3] > >> There really is no point in reporting bugs on old versions. (even if > >> "just to check its fixed in latest) > >> Just update gambas then see for yourself if the bug still exists :) > > > > By the way , i do not get the bug on 3.18 > > (did you try CheckBox1.Refresh after changing bg ? > > BruceS > > Hello, > > Thank for your mail and time you dedicated to me. > because i don't want to "break" the version of debian 11, i cannot move > to newer version of gambas. > I tried to do checkbox.refresh but it did not work. In my case, I use > color to communicate feedback from program to user: green=good, red=bad. > Not so important what I use, so I "solved" changing color changing > foreground and not background. > You're welcome :) How about putting CheckBox in an auto-resized Panel and changing the background of the panel? that could work. Surely if you upgrade gambas and have working colours then you have not broken your deb11 you have fixed it? :) 3.15 is old, debian is slow to update it's gambas version as unlike other systems debian has a very long LTS turnover. Debian 10 only had 3.12 in it's repository while the rest of us were using 3.15. It's annoying because other software updates all the time. Firefox usually at least once a week. but Gambas , nope, the same version sits there for way too long and becomes an issue for those developing programs on newer gambas as debian users who refuse to update get a few versions behind (a few more versions than everyone else) I wouldn't restrict yourself , there has been tons of updates/fixes since 3.15 Or if i cannot convince you then know you are 3 versions behind the current development version so bug reports are pretty much a waste of everyone's time as the chances of them being fixed are pretty high. Perhaps a VM or a disk partition could have a debian11 with latest gambas on it. then you could tell if a bug in 3.15 is fixed in 3.18+ Also... have you tried changing the theme or using a different toolkiit? Sometimes the bug is in the gtk theme not in gambas. Preferences / Look and feel / Appearance for GTK or install qt5ct to configure QT. Maybe the bug is not there if your application uses QT not GTK? BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From roberto.premoli at tiscali.it Wed Mar 29 17:17:09 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Wed, 29 Mar 2023 17:17:09 +0200 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> <18613a19fae7225be135febbc83b74ab@tiscali.it> Message-ID: <75a5285be15485c77458e61a546ead5d@tiscali.it> Il 29.03.2023 16:19 Bruce Steers ha scritto: > How about putting CheckBox in an auto-resized Panel and changing the > background of the panel? that could work. > Surely if you upgrade gambas and have working colours then you have > not > broken your deb11 you have fixed it? :) nice suggestion, i tried ad this is the code: Public Sub CheckBox1_Click() CheckBox1.text = "test" Panel.Background = 255 End i set by IDE a cyan background of the panel then run the code with f5. i click check box and interpreter stop with error: "panel.background is not static in fmain" strange feedback. I report you because you was so kind to suggest this and it deserve a reply. anyway, i already solved canging foreground color of checkbox instead of background. > 3.15 is old, debian is slow to update it's gambas version as unlike > other > systems debian has a very long LTS turnover. > Debian 10 only had 3.12 in it's repository while the rest of us were > using 3.15. > It's annoying because other software updates all the time. Firefox > usually at least once a week. but Gambas , nope, the same version > sits > there for way too long and becomes an issue for those developing > programs > on newer gambas as debian users who refuse to update get a few > versions > behind (a few more versions than everyone else) > I wouldn't restrict yourself , there has been tons of updates/fixes > since > 3.15 i am a debianist since 2001, i know pro and cons of the distro: because i consider bigger the pro than the cons, i stay on it. btw, it is real that gmabas is not updated, but this beaviour is not for web browsers that are are often updated, i am writing you using chromium at Version 111.0.5563.110 (Official Build) built on Debian 11.6, running on Debian 11.6 (64-bit) firefox run version 102.9.0. > Or if i cannot convince you then know you are 3 versions behind the > current development version so bug reports are pretty much a waste of > everyone's time as the chances of them being fixed are pretty high. i reported just in case, take it as "excess of zeal". > Perhaps a VM or a disk partition could have a debian11 with latest > gambas > on it. > then you could tell if a bug in 3.15 is fixed in 3.18+ i am developing a program that will run "stand alone", not connected to internet. so to choose a "stable -almost- as a rock" debian it appear a good way, even if i have to face some minor annoing as the topic of this thread. > Also... > have you tried changing the theme or using a different toolkiit? > Sometimes the bug is in the gtk theme not in gambas. > Preferences / Look and feel / Appearance for GTK > or install qt5ct to configure QT. > Maybe the bug is not there if your application uses QT not GTK? > > BruceS for the report, project->property->components is cheched gb.wt5, no gb.gtk3 Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. From bsteers4 at gmail.com Wed Mar 29 17:17:40 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 29 Mar 2023 16:17:40 +0100 Subject: [Gambas-user] Rendering of Custom UserControls during development time In-Reply-To: References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> Message-ID: On Wed, 29 Mar 2023 at 14:04, Bruce Steers wrote: > > > On Wed, 29 Mar 2023 at 12:48, Bruce Steers wrote: > >> >> >> On Wed, 29 Mar 2023 at 12:33, Claus Dietrich >> wrote: >> >>> Am 24.03.23 um 16:30 schrieb Benoit Minisini: >>> >>> Look at the documentation and at the source code of the SwitchButton >>> control (for example) in the 'gb.form' component for more details. >>> >>> Native Gambas UserControls like Buttons are rendered almost exactly the >>> same during development time as during runtime. That means i.e. that a >>> Button displays a loaded Picture already during development time. This does >>> not apply for self-made controls implemented as class. In that case only a >>> simple box or an icon loaded from the Project/control - directory is >>> displayed. This also applies to native Gambas controls if implemented as >>> class. I tested it with the source code of the Gambas SwitchButton. >>> >>> My question: How can a custom UserControl be rendered during development >>> time so that it looks similar to its appearance at runtime? >>> >>> Best regards >>> >>> Claus >>> >> >> the IDE can only show components it loads when it first runs. >> >> If that makes sense. >> you component is a part of your project loaded by gambas , not a part of >> gambas. >> >> I made a way to load my controls but it meant hacking the IDE in a way >> that Benoit does not like and is reluctant to implement. >> This is because the controls are loaded by gambas into the IDE itself and >> their code to render in the IDE is part of the component, a custom control >> that is not coded properly can break gambas. >> >> Plus it gives many other issues especially if you are working on the >> control. as you will make changes to it but the IDE cannot reload the >> already loaded control. so you get glitches that resolve when closing >> gambas and re-opening it. >> >> you best option is to use _DrawWith that will use an official control as >> your preview. >> eg. >> >> Public Const _DrawWith As String = "GridView" >> >> will show your control as a gridview in the IDE >> >> BruceS >> > > Or completely customize your gambas IDE like I did mine, as it's written > in gambas,,,,,, and we know gambas ;) > I added a component loader in the IDE preferences. > In the attached pic you can see it working for my ButtonFrame container. > > (and note, i give plenty of warnings about the risks, and potential bugs) > > gotta love Gambas :) > > So Benoit, you still not interested in adding anything like this to the > IDE? > Maybe a way the IDE can load/reload custom components (custom controls > going through some extra error handling n stuff i guess. > Darn, It seems after the recent "do not apply properties" commits my component loader does not actually work any more :'( Well it was nice while it lasted :) Looks like I might have to start settling for _DrawWith too :-\ BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Wed Mar 29 17:36:05 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Wed, 29 Mar 2023 16:36:05 +0100 Subject: [Gambas-user] Gambas 3.15.2: checbox dos not accept background color In-Reply-To: <75a5285be15485c77458e61a546ead5d@tiscali.it> References: <8787ebe7fc816b0eda68ea8fbe29b6e7@tiscali.it> <18613a19fae7225be135febbc83b74ab@tiscali.it> <75a5285be15485c77458e61a546ead5d@tiscali.it> Message-ID: On Wed, 29 Mar 2023 at 16:18, wrote: > Il 29.03.2023 16:19 Bruce Steers ha scritto: > > > How about putting CheckBox in an auto-resized Panel and changing the > > background of the panel? that could work. > > Surely if you upgrade gambas and have working colours then you have > > not > > broken your deb11 you have fixed it? :) > > nice suggestion, i tried ad this is the code: > > Public Sub CheckBox1_Click() > CheckBox1.text = "test" > Panel.Background = 255 > End > > i set by IDE a cyan background of the panel then run the code with f5. > i click check box and interpreter stop with error: > > "panel.background is not static in fmain" > strange feedback. > > I report you because you was so kind to suggest this and it deserve a > reply. > anyway, i already solved canging foreground color of checkbox instead > of background. > Well no, Panel is the class name not the name of the object the checkbox is in , that will probably be Panel1 or Panel2 or somethijng. > 3.15 is old, debian is slow to update it's gambas version as unlike > > other > > systems debian has a very long LTS turnover. > > Debian 10 only had 3.12 in it's repository while the rest of us were > > using 3.15. > > It's annoying because other software updates all the time. Firefox > > usually at least once a week. but Gambas , nope, the same version > > sits > > there for way too long and becomes an issue for those developing > > programs > > on newer gambas as debian users who refuse to update get a few > > versions > > behind (a few more versions than everyone else) > > I wouldn't restrict yourself , there has been tons of updates/fixes > > since > > 3.15 > > i am a debianist since 2001, i know pro and cons of the distro: because > i > consider bigger the pro than the cons, i stay on it. > btw, it is real that gmabas is not updated, but this beaviour is not > for web > browsers that are are often updated, i am writing you using chromium at > Version > 111.0.5563.110 (Official Build) built on Debian 11.6, running on Debian > 11.6 (64-bit) > firefox run version 102.9.0. > Yeah , why don't they update gambas? grrr > > > Or if i cannot convince you then know you are 3 versions behind the > > current development version so bug reports are pretty much a waste of > > everyone's time as the chances of them being fixed are pretty high. > > i reported just in case, take it as "excess of zeal". > Yes of course, I just thought to mention as you could find yourself reporting many already fixed bugs. It was a noble thought for sure :) > > > Perhaps a VM or a disk partition could have a debian11 with latest > > gambas > > on it. > > then you could tell if a bug in 3.15 is fixed in 3.18+ > > i am developing a program that will run "stand alone", not connected to > internet. > so to choose a "stable -almost- as a rock" debian it appear a good way, > even if i have to face some minor annoing as the topic of this thread. > there's always a workaround :) pretty sure placing checkbox into a container and changing the container color will have the desired effect. (just be sure to use the correct name of the panel/hbox/etc ;) ) > Also... > > have you tried changing the theme or using a different toolkiit? > > Sometimes the bug is in the gtk theme not in gambas. > > Preferences / Look and feel / Appearance for GTK > > or install qt5ct to configure QT. > > Maybe the bug is not there if your application uses QT not GTK? > > > > BruceS > > for the report, project->property->components is cheched gb.wt5, no > gb.gtk3 > okay so do you get the same problem if you make it use gb.gtk3 ? Best of luck. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From claus.dietrich at freenet.de Thu Mar 30 16:36:30 2023 From: claus.dietrich at freenet.de (Claus Dietrich) Date: Thu, 30 Mar 2023 16:36:30 +0200 Subject: [Gambas-user] Rendering of Custom UserControls during development time In-Reply-To: References: <01b87591-73f4-8b76-d877-1f87dedc0f0f@gambas-basic.org> <766ad89d-97a5-b0b5-fe28-62fdb9a1d82c@gambas-basic.org> <86c6698d-2e38-6390-7fce-af5c0d92ecc7@freenet.de> Message-ID: <9d20c40b-7942-d6b4-12a2-4d0d5ccfd20f@freenet.de> Am 29.03.23 um 13:48 schrieb Bruce Steers: > On Wed, 29 Mar 2023 at 12:33, Claus Dietrich > wrote: > > My question: How can a custom UserControl be rendered during > development time so that it looks similar to its appearance at > runtime? > > the IDE can only show components it loads when it first runs. > > If that makes sense. > you component is a part of your project loaded by gambas , not a part > of gambas. > > I made a way to load my controls but it meant hacking the IDE in a way > that Benoit does not like and is reluctant to implement. > This is because the controls are loaded by gambas into the IDE itself > and their code to render in the IDE is part of the component, a custom > control that is not coded properly can break gambas. > > Plus it gives many other issues especially if you are working on the > control.? as you will make changes to it but the IDE cannot reload the > already loaded control. so you get glitches that resolve when closing > gambas and re-opening it. > > you best option is to use _DrawWith that will use an official control > as your preview. > eg. > > Public Const _DrawWith As String = "GridView" > > will show your control as a gridview in the IDE Hi Bruce, Thanks, this was really helpful. As suggested I am now using Public Const _DrawWith As String = "Button" which is an acceptable compromise for a "preview" to me. To make a component out of it and install it seems to be the ultimate solution, but for this the class must be in a final version and I would need to figure out, how such a component can be installed. Best regards Claus From brian at westwoodsvcs.com Thu Mar 30 20:06:07 2023 From: brian at westwoodsvcs.com (Brian G) Date: Thu, 30 Mar 2023 11:06:07 -0700 (PDT) Subject: [Gambas-user] How to tell if overflow detection is supported? Message-ID: <170458068.26375.1680199567646.JavaMail.zimbra@westwoodsvcs.com> It seems that overflow is not detected on the playground running this version of linux : Overflow detection is not supported on this system Arch/Host=x86_64/7134dd716f6b App Name=script 244 3.18.90 NAME="Ubuntu" VERSION="18.04.6 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.6 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic Env List ------------------------------- LANGUAGE=en_GB.UTF-8 HOSTNAME=7134dd716f6b HOME=/home/play PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 PWD=/ TZ=:/etc/localtime ----------------------------------------- What is the criteria for determining if this will be an issue on a system? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From roberto.premoli at tiscali.it Thu Mar 30 21:20:15 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Thu, 30 Mar 2023 21:20:15 +0200 Subject: [Gambas-user] =?utf-8?q?how_to_detect_resize_of_fmain=3F?= Message-ID: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> hello, I have some graphical elements (button, textarea, ecc) that are placed in some point of a main window: a button in top right corner, a text in the middle... you get the point. to place element i do as follow: button1.x= fmain.width - button.width textarea.x = fmain.width / 2 textarea.y = fmain.height / 2 the problem is that whet i maximise window or when resize the window moving the corner wth the nouse, the graphic element stay where they are:i stead i wist they get new position as far as fmain.widh amd fmain.height change. I wish to white a routine that replace all the elements, but i still not understood what is the trigger that i can notice me that fmain.height and fmain.widht are changed. Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 30 21:26:45 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 30 Mar 2023 20:26:45 +0100 Subject: [Gambas-user] how to detect resize of fmain? In-Reply-To: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> Message-ID: On Thu, 30 Mar 2023, 20:21 , wrote: > hello, > I have some graphical elements (button, textarea, ecc) that are placed in > some point of a main window: a button in top right corner, a text in the > middle... you get the point. > to place element i do as follow: > button1.x= fmain.width - button.width > textarea.x = fmain.width / 2 > textarea.y = fmain.height / 2 > > > the problem is that whet i maximise window or when resize the window > moving the corner wth the nouse, the graphic element stay where they are:i > stead i wist they get new position as far as fmain.widh amd fmain.height > change. > > I wish to white a routine that replace all the elements, but i still not > understood what is the trigger that i can notice me that fmain.height and > fmain.widht are changed. > > Roberto > Look at From events in the wiki. Did you know there is help about things like forms. You can read the help and see what's possible in the gambas wiki . Also when you type Public Sub Form_ you will see a list of all form events. Form_Resise event Form_State event. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Thu Mar 30 21:27:54 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 30 Mar 2023 20:27:54 +0100 Subject: [Gambas-user] how to detect resize of fmain? In-Reply-To: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> Message-ID: Why not just put it all in a HBox and use a spring? On Thu, 30 Mar 2023, 20:21 , wrote: > hello, > I have some graphical elements (button, textarea, ecc) that are placed in > some point of a main window: a button in top right corner, a text in the > middle... you get the point. > to place element i do as follow: > button1.x= fmain.width - button.width > textarea.x = fmain.width / 2 > textarea.y = fmain.height / 2 > > > the problem is that whet i maximise window or when resize the window > moving the corner wth the nouse, the graphic element stay where they are:i > stead i wist they get new position as far as fmain.widh amd fmain.height > change. > > I wish to white a routine that replace all the elements, but i still not > understood what is the trigger that i can notice me that fmain.height and > fmain.widht are changed. > > Roberto > > > > > > > > VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. > ATTIVA ORA > > https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/ > > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From roberto.premoli at tiscali.it Thu Mar 30 22:19:28 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Thu, 30 Mar 2023 22:19:28 +0200 Subject: [Gambas-user] =?utf-8?q?how_to_detect_resize_of_fmain=3F?= In-Reply-To: References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> Message-ID: <34da7e71e44447887c290e4a8938756b@tiscali.it> Il 30.03.2023 21:26 Bruce Steers ha scritto: > On Thu, 30 Mar 2023, 20:21 , wrote: > >> hello, >> I have some graphical elements (button, textarea, ecc) that are >> placed >> in some point of a main window: a button in top right corner, a text >> in >> the middle... you get the point. >> to place element i do as follow: >> button1.x= fmain.width - button.width >> textarea.x = fmain.width / 2 >> textarea.y = fmain.height / 2 >> >> the problem is that whet i maximise window or when resize the window >> moving the corner wth the nouse, the graphic element stay where they >> are:i stead i wist they get new position as far as fmain.widh amd >> fmain.height change. >> >> I wish to white a routine that replace all the elements, but i still >> not understood what is the trigger that i can notice me that >> fmain.height and fmain.widht are changed. >> >> Roberto > > Look at From events in the wiki. > Did you know there is help about things like forms. You can read the > help > and see what's possible in the gambas wiki . > Also when you type > Public Sub Form_ > you will see a list of all form events. > Form_Resise event > Form_State event. nice! i solved placing all the "drawing code" inside public sub form_resize() as you suggest. many thanks! VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. From roberto.premoli at tiscali.it Thu Mar 30 22:21:04 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Thu, 30 Mar 2023 22:21:04 +0200 Subject: [Gambas-user] =?utf-8?q?how_to_detect_resize_of_fmain=3F?= In-Reply-To: References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> Message-ID: <4f2ae9696a5153d0a7bda8c2990ca7df@tiscali.it> Il 30.03.2023 21:27 Bruce Steers ha scritto: > Why not just put it all in a HBox and use a spring? > as I said in other mail., i solved using form_resize() but I am curious about this "spring": can you explain what this is? Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. From bsteers4 at gmail.com Thu Mar 30 23:34:53 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 30 Mar 2023 22:34:53 +0100 Subject: [Gambas-user] how to detect resize of fmain? In-Reply-To: <4f2ae9696a5153d0a7bda8c2990ca7df@tiscali.it> References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> <4f2ae9696a5153d0a7bda8c2990ca7df@tiscali.it> Message-ID: On Thu, 30 Mar 2023 at 21:22, wrote: > Il 30.03.2023 21:27 Bruce Steers ha scritto: > > > Why not just put it all in a HBox and use a spring? > > > > as I said in other mail., i solved using form_resize() > but I am curious about this "spring": can you explain what this is? > Roberto > Nope.. https://gambaswiki.org/wiki/comp/gb.qt4/spring ;) You really should read more @ https://gambaswiki.org/wiki/ Your last 2 questions do show really how little you have browsed the wiki to be fair. BruceS -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at westwoodsvcs.com Fri Mar 31 00:25:31 2023 From: brian at westwoodsvcs.com (Brian G) Date: Thu, 30 Mar 2023 15:25:31 -0700 (PDT) Subject: [Gambas-user] Problems getting version numbers of components Message-ID: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> I am not sure when it stopped working, but with the latest version doing a : print components["mycomp"].version Always returns the gambas version. The version is set correctly in the project information. Maybe I am doing it incorrectly, I think it once worked. Has anyone else seen this issue? "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsteers4 at gmail.com Fri Mar 31 00:28:45 2023 From: bsteers4 at gmail.com (Bruce Steers) Date: Thu, 30 Mar 2023 23:28:45 +0100 Subject: [Gambas-user] Problems getting version numbers of components In-Reply-To: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> References: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Is it to do with Gambas? gambas uses the "get version from file" option to all versioning goes to ./VERSION file BruceS On Thu, 30 Mar 2023 at 23:26, Brian G wrote: > I am not sure when it stopped working, but with the latest version > > doing a : > > print components["mycomp"].version > > Always returns the gambas version. > > The version is set correctly in the project information. > > Maybe I am doing it incorrectly, I think it once worked. > Has anyone else seen this issue? > > "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 brian at westwoodsvcs.com Fri Mar 31 00:33:25 2023 From: brian at westwoodsvcs.com (Brian G) Date: Thu, 30 Mar 2023 15:33:25 -0700 (PDT) Subject: [Gambas-user] Problems getting version numbers of components In-Reply-To: References: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> Message-ID: <283922755.26617.1680215605546.JavaMail.zimbra@westwoodsvcs.com> Bruce, There is an option to use a version file, Are you says that we need to use the version file or it will not return the correct version at all. "Failure is the key to success; each mistake teaches us something" .. Morihei Ueshiba Brian G ----- On Mar 30, 2023, at 10:28 PM, Bruce Steers wrote: > Is it to do with Gambas? > gambas uses the "get version from file" option to all versioning goes to > ./VERSION file > BruceS > On Thu, 30 Mar 2023 at 23:26, Brian G < [ mailto:brian at westwoodsvcs.com | > brian at westwoodsvcs.com ] > wrote: >> I am not sure when it stopped working, but with the latest version >> doing a : >> print components["mycomp"].version >> Always returns the gambas version. >> The version is set correctly in the project information. >> Maybe I am doing it incorrectly, I think it once worked. >> Has anyone else seen this issue? >> "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 ] ]---- > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.minisini at gambas-basic.org Fri Mar 31 00:39:40 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 31 Mar 2023 00:39:40 +0200 Subject: [Gambas-user] Problems getting version numbers of components In-Reply-To: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> References: <162858287.26581.1680215131133.JavaMail.zimbra@westwoodsvcs.com> Message-ID: Le 31/03/2023 ? 00:25, Brian G a ?crit?: > I am not sure when it stopped working, but with the latest version > > doing a : > > print components["mycomp"].version > > Always returns the gambas version. > > The version is set correctly in the project information. > > Maybe I am doing it incorrectly, I think it once worked. > Has anyone else seen this issue? > > "Failure is the key to success; > ?each mistake teaches us something" ?.. Morihei Ueshiba > Brian G > > > ----[ http://gambaswiki.org/wiki/doc/netiquette ]---- The version of a *component* is always the Gambas version. Only *libraries* have their own version. Regards, -- Beno?t Minisini. From roberto.premoli at tiscali.it Fri Mar 31 10:29:31 2023 From: roberto.premoli at tiscali.it (roberto.premoli at tiscali.it) Date: Fri, 31 Mar 2023 10:29:31 +0200 Subject: [Gambas-user] =?utf-8?q?how_to_detect_resize_of_fmain=3F?= In-Reply-To: References: <033a1cd16fed7e1ec1c2a000d0897750@tiscali.it> <4f2ae9696a5153d0a7bda8c2990ca7df@tiscali.it> Message-ID: <135bf7b1ea5e8817d757716305ea63a9@tiscali.it> Il 30.03.2023 23:34 Bruce Steers ha scritto: > On Thu, 30 Mar 2023 at 21:22, wrote: > >> Il 30.03.2023 21:27 Bruce Steers ha scritto: >> >> > Why not just put it all in a HBox and use a spring? >> > >> >> as I said in other mail., i solved using form_resize() >> but I am curious about this "spring": can you explain what this is? >> Roberto > > Nope.. > https://gambaswiki.org/wiki/comp/gb.qt4/spring [2] > ;) > You really should read more @ https://gambaswiki.org/wiki/ [3] > Your last 2 questions do show really how little you have browsed the > wiki > to be fair. > BruceS the link is good too. but you are right, i must refere to wiki before came to mailing list. i will do, thanks. Roberto VOUCHER CONNETTIVIT? per P.IVA e PMI: internet a canone 0 per 48 mesi. ATTIVA ORA https://casa.tiscali.it/promo/?u=https://promozioni.tiscali.it/voucher_business/?r=TS00000A00025&dm=link&p=tiscali&utm_source=tiscali&utm_medium=link&utm_campaign=voucherbusiness&wt_np=tiscali.link.footermail.voucherbusiness.btb.. From benoit.minisini at gambas-basic.org Fri Mar 31 13:38:00 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 31 Mar 2023 13:38:00 +0200 Subject: [Gambas-user] Gambas wiki update Message-ID: <6c7c8e8f-9bd5-1775-b9e0-1036fc228a6a@gambas-basic.org> Hi, I'm currently updating the wiki with the latest changes on 'gb.markdown'. So until tomorrow, you may see badly formatted pages. After tomorrow, please report if you see a wiki page that displays incorrectly. Regards, -- Beno?t Minisini. From mbelmonte at belmotek.net Fri Mar 31 14:47:27 2023 From: mbelmonte at belmotek.net (=?UTF-8?Q?Mart=c3=adn?=) Date: Fri, 31 Mar 2023 14:47:27 +0200 Subject: [Gambas-user] Gambas wiki update In-Reply-To: <6c7c8e8f-9bd5-1775-b9e0-1036fc228a6a@gambas-basic.org> References: <6c7c8e8f-9bd5-1775-b9e0-1036fc228a6a@gambas-basic.org> Message-ID: <13bdde93-0023-6009-ea5d-61970d9ca513@belmotek.net> El 31/3/23 a las 13:38, Benoit Minisini escribi?: > After tomorrow, please report if you see a wiki page that displays > incorrectly. ok From benoit.minisini at gambas-basic.org Fri Mar 31 22:04:37 2023 From: benoit.minisini at gambas-basic.org (Benoit Minisini) Date: Fri, 31 Mar 2023 22:04:37 +0200 Subject: [Gambas-user] Gambas wiki update In-Reply-To: <6c7c8e8f-9bd5-1775-b9e0-1036fc228a6a@gambas-basic.org> References: <6c7c8e8f-9bd5-1775-b9e0-1036fc228a6a@gambas-basic.org> Message-ID: <80e83b5d-f044-ffa2-066c-2c49515715f8@gambas-basic.org> Le 31/03/2023 ? 13:38, Benoit Minisini a ?crit?: > Hi, > > I'm currently updating the wiki with the latest changes on 'gb.markdown'. > > So until tomorrow, you may see badly formatted pages. > > After tomorrow, please report if you see a wiki page that displays > incorrectly. > > Regards, > Now that there is an index on the left of the wiki, you can see there are many problems in the page hierarchy. I guess I should find a way to move a page and its children easily so that we can reorganize it... -- Beno?t Minisini.