From fpc at pascalprogramming.org Fri Apr 1 12:43:00 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 1 Apr 2022 12:43:00 +0200 Subject: [Lazarus] crash on startup Message-ID: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> I rebuilt Lazarus today (FPC trunk 2 days old -lazarus trunk today), and I suddenly got? a GPF while starting. I ran under GDB and the traceback is: Thread 1 received signal SIGILL, Illegal instruction. DOAUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, AXPROPORTION=0.80000000000000004, ??? AYPROPORTION=0.80000000000000004) at include/customlistview.inc:684 684?????????? C.MaxWidth := Round(C.MaxWidth * AXProportion); (gdb) bt #0? DOAUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, AXPROPORTION=0.80000000000000004, ??? AYPROPORTION=0.80000000000000004) at include/customlistview.inc:684 #1? 0x00579a1d in AUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/control.inc:4212 #2? 0x0056966e in AUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3880 #3? 0x00569652 in AUTOADJUSTLAYOUT (this=0x1cb260a0, AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3878 #4? 0x00569652 in AUTOADJUSTLAYOUT (this=0x1cb25b50, AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3878 #5? 0x00435dc5 in AUTOADJUSTLAYOUT (this=0x1cb25b50, AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/customdesigncontrol.inc:34 #6? 0x00436a5d in AFTERCONSTRUCTION (this=0x1cb25b50) at include/customform.inc:84 #7? 0x009e788b in CREATE (this=0x1cb25b50, vmt=0x1, THEOWNER=0x1639ac90) at editormacrolistviewer.pas:1614 #8? 0x009e25ee in MACROLISTVIEWER () at editormacrolistviewer.pas:332 #9? 0x009e2a7e in LOADGLOBALINFO () at editormacrolistviewer.pas:418 #10 0x0044f17d in CREATE (this=0x1ac3a020, vmt=0x1, THEOWNER=0x1639ac90) at main.pp:1608 #11 0x00403a51 in main () at lazarus.pp:141 (gdb) I use anchordocking procedure. Is this a known issue? From marc at dommelstein.nl Fri Apr 1 12:57:02 2022 From: marc at dommelstein.nl (Marc Weustink) Date: Fri, 1 Apr 2022 12:57:02 +0200 Subject: [Lazarus] crash on startup In-Reply-To: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> References: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> Message-ID: <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> The SIGILL here points more to the generated code I think. Marc On 1-4-2022 12:43, Marco van de Voort via lazarus wrote: > > I rebuilt Lazarus today (FPC trunk 2 days old -lazarus trunk today), and > I suddenly got? a GPF while starting. > > I ran under GDB and the traceback is: > > > Thread 1 received signal SIGILL, Illegal instruction. > DOAUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, > AXPROPORTION=0.80000000000000004, > ??? AYPROPORTION=0.80000000000000004) at include/customlistview.inc:684 > 684?????????? C.MaxWidth := Round(C.MaxWidth * AXProportion); > (gdb) bt > #0? DOAUTOADJUSTLAYOUT (this=0x1cb26440, AMODE=LAPAUTOADJUSTFORDPI, > AXPROPORTION=0.80000000000000004, > ??? AYPROPORTION=0.80000000000000004) at include/customlistview.inc:684 > #1? 0x00579a1d in AUTOADJUSTLAYOUT (this=0x1cb26440, > AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, > ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/control.inc:4212 > #2? 0x0056966e in AUTOADJUSTLAYOUT (this=0x1cb26440, > AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, > ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3880 > #3? 0x00569652 in AUTOADJUSTLAYOUT (this=0x1cb260a0, > AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, > ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3878 > #4? 0x00569652 in AUTOADJUSTLAYOUT (this=0x1cb25b50, > AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, > ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at include/wincontrol.inc:3878 > #5? 0x00435dc5 in AUTOADJUSTLAYOUT (this=0x1cb25b50, > AMODE=LAPAUTOADJUSTFORDPI, AFROMPPI=120, ATOPPI=96, > ??? AOLDFORMWIDTH=569, ANEWFORMWIDTH=455) at > include/customdesigncontrol.inc:34 > #6? 0x00436a5d in AFTERCONSTRUCTION (this=0x1cb25b50) at > include/customform.inc:84 > #7? 0x009e788b in CREATE (this=0x1cb25b50, vmt=0x1, THEOWNER=0x1639ac90) > at editormacrolistviewer.pas:1614 > #8? 0x009e25ee in MACROLISTVIEWER () at editormacrolistviewer.pas:332 > #9? 0x009e2a7e in LOADGLOBALINFO () at editormacrolistviewer.pas:418 > #10 0x0044f17d in CREATE (this=0x1ac3a020, vmt=0x1, THEOWNER=0x1639ac90) > at main.pp:1608 > #11 0x00403a51 in main () at lazarus.pp:141 > (gdb) > > I use anchordocking procedure. Is this a known issue? > From fpc at pascalprogramming.org Fri Apr 1 14:52:12 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 1 Apr 2022 14:52:12 +0200 Subject: [Lazarus] crash on startup In-Reply-To: <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> References: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> Message-ID: <2451d9f1-ed81-ed1b-b088-f8314f5c4af2@pascalprogramming.org> On 1-4-2022 12:57, Marc Weustink via lazarus wrote: > The SIGILL here points more to the generated code I think. Indeed, I see what I think are avx512 instructions ?0x005afb7a <+90>:??? call?? 0x5b1040 ?? 0x005afb7f <+95>:??? mov??? %eax,-0x10(%ebp) => 0x005afb82 <+98>:??? vcvtusi2sd 0x28(%eax),%xmm0,%xmm0 ?? 0x005afb89 <+105>:?? vmulsd 0x10(%ebp),%xmm0,%xmm0 ?? 0x005afb8e <+110>:?? vmovsd %xmm0,-0x20(%ebp) ?? 0x005afb93 <+115>:?? fldl?? -0x20(%ebp) From marc at dommelstein.nl Fri Apr 1 15:59:11 2022 From: marc at dommelstein.nl (Marc Weustink) Date: Fri, 1 Apr 2022 15:59:11 +0200 Subject: [Lazarus] crash on startup In-Reply-To: <2451d9f1-ed81-ed1b-b088-f8314f5c4af2@pascalprogramming.org> References: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> <2451d9f1-ed81-ed1b-b088-f8314f5c4af2@pascalprogramming.org> Message-ID: On 1-4-2022 14:52, Marco van de Voort via lazarus wrote: > > On 1-4-2022 12:57, Marc Weustink via lazarus wrote: >> The SIGILL here points more to the generated code I think. > > Indeed, I see what I think are avx512 instructions Yes, CPUID Feature Flag AVX512F > ?0x005afb7a <+90>:??? call?? 0x5b1040 > ?? 0x005afb7f <+95>:??? mov??? %eax,-0x10(%ebp) > => 0x005afb82 <+98>:??? vcvtusi2sd 0x28(%eax),%xmm0,%xmm0 > ?? 0x005afb89 <+105>:?? vmulsd 0x10(%ebp),%xmm0,%xmm0 > ?? 0x005afb8e <+110>:?? vmovsd %xmm0,-0x20(%ebp) > ?? 0x005afb93 <+115>:?? fldl?? -0x20(%ebp) > > From marc at dommelstein.nl Fri Apr 1 16:04:43 2022 From: marc at dommelstein.nl (Marc Weustink) Date: Fri, 1 Apr 2022 16:04:43 +0200 Subject: [Lazarus] crash on startup In-Reply-To: References: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> <2451d9f1-ed81-ed1b-b088-f8314f5c4af2@pascalprogramming.org> Message-ID: On 1-4-2022 15:59, Marc Weustink via lazarus wrote: > > > On 1-4-2022 14:52, Marco van de Voort via lazarus wrote: >> >> On 1-4-2022 12:57, Marc Weustink via lazarus wrote: >>> The SIGILL here points more to the generated code I think. >> >> Indeed, I see what I think are avx512 instructions > > Yes, CPUID Feature Flag AVX512F SSE2 has only the signed version CVTSI2SD > >> ??0x005afb7a <+90>:??? call?? 0x5b1040 >> ??? 0x005afb7f <+95>:??? mov??? %eax,-0x10(%ebp) >> => 0x005afb82 <+98>:??? vcvtusi2sd 0x28(%eax),%xmm0,%xmm0 >> ??? 0x005afb89 <+105>:?? vmulsd 0x10(%ebp),%xmm0,%xmm0 >> ??? 0x005afb8e <+110>:?? vmovsd %xmm0,-0x20(%ebp) >> ??? 0x005afb93 <+115>:?? fldl?? -0x20(%ebp) >> >> From fpc at pascalprogramming.org Fri Apr 1 16:14:15 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 1 Apr 2022 16:14:15 +0200 Subject: [Lazarus] crash on startup In-Reply-To: References: <925107a7-fca2-f437-1325-65b70b9cc727@pascalprogramming.org> <4a71a5aa-4e97-464c-b147-2469368456c3@dommelstein.nl> <2451d9f1-ed81-ed1b-b088-f8314f5c4af2@pascalprogramming.org> Message-ID: <8ae892c5-08cb-8cb8-2de5-be43b9f8547c@pascalprogramming.org> On 1-4-2022 16:04, Marc Weustink via lazarus wrote: > >>> Indeed, I see what I think are avx512 instructions >> >> Yes, CPUID Feature Flag AVX512F > > SSE2 has only the signed version CVTSI2SD > This machine is a Ivy Bridge so has Coreavx ( AVX1) enabled, so some VEX usage is allowed. I removed some avx1 (-Cpcoreavx -Opcoreavx -Cfcoreavx) from fpc.cfg and the problem went away for more. I asked on (FPC) core for a quick comment, and will file it as a bug if nobody has a direct hunch. (which would be understandable since I can't pinpoint the exact date when this was introduced) From michael at freepascal.org Wed Apr 6 12:56:17 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 6 Apr 2022 12:56:17 +0200 (CEST) Subject: [Lazarus] Component palette enhancements Message-ID: Hello, I'm probably kicking in an open door when I'm saying that lazarus evolves and grows. This is good news, obviously. But I have now more tabs on the component palette than can fit on the screen. There is a dropdown with the tabs, but that's hardly usable to quickly locate a component. I have therefore 3 propositions/requests: 1. Currently a component is identified by its class name. This should be enhanced: a component must be identified with UnitName.Name. a unit name is a "namespace" and so MyControls.TButton <> StdCtrls.TButton. Currently there are several component name clashes in the pas2js and FPC class trees. 2. Similarly, it should be possible somehow to say 'this component is only for environment X' where X can be defined by the user. When I am working on a webserver application or a service application, it makes no sense to show all visual controls. Likewise, some components only make sense for a pas2js application. I am aware of the 'restrictions' on the object inspector, and in a sense my proposal is to extend/generalize this. 3. Please add a search edit in the component palette, as delphi has it: typing in that edit should reduce the visible tabs to show only tabs that have a component with the typed text in the classname, just like the one on the component window... (the component window is IMO not really usable if you are not using a docked IDE) I would think all proposals are feasible, but I can of course be too optimistic :) Michael. From pascaldragon at googlemail.com Wed Apr 6 14:27:23 2022 From: pascaldragon at googlemail.com (Sven Barth) Date: Wed, 6 Apr 2022 14:27:23 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: Michael Van Canneyt via lazarus schrieb am Mi., 6. Apr. 2022, 12:56: > > 1. Currently a component is identified by its class name. > > This should be enhanced: a component must be identified with > UnitName.Name. > a unit name is a "namespace" and so MyControls.TButton <> > StdCtrls.TButton. > > Currently there are several component name clashes in the pas2js and > FPC class trees. > The streaming system can't differentiate by unit name, so this simply isn't possible. 3. Please add a search edit in the component palette, as delphi has it: > typing in that edit should reduce the visible tabs to show only tabs > that have a > component with the typed text in the classname, just like the one on > the component window... > (the component window is IMO not really usable if you are not using a > docked IDE) > Why don't you use the component list instead of the palette then? This already provides a search. Regards, Sven > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at freepascal.org Wed Apr 6 14:47:02 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 6 Apr 2022 14:47:02 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: On Wed, 6 Apr 2022, Sven Barth via lazarus wrote: > Michael Van Canneyt via lazarus schrieb am > Mi., 6. Apr. 2022, 12:56: > >> >> 1. Currently a component is identified by its class name. >> >> This should be enhanced: a component must be identified with >> UnitName.Name. >> a unit name is a "namespace" and so MyControls.TButton <> >> StdCtrls.TButton. >> >> Currently there are several component name clashes in the pas2js and >> FPC class trees. >> > > The streaming system can't differentiate by unit name, so this simply isn't > possible. I know that. We simply need to adapt the streaming system so it can, I already studied that, it's fairly trivial: * When writing: write UnitName.ComponentName instead of ComponentName. A trivial change, which can be done in a backward compatible manner. * When reading, there are 2 lines that must be changed: One in GetClass and one in TReader.FindComponentClass. * To handle the text format, 2 lines need changing. So this is not exactly lots of work. > 3. Please add a search edit in the component palette, as delphi has it: >> typing in that edit should reduce the visible tabs to show only tabs >> that have a >> component with the typed text in the classname, just like the one on >> the component window... >> (the component window is IMO not really usable if you are not using a >> docked IDE) >> > > Why don't you use the component list instead of the palette then? This > already provides a search. If you read my message correctly, you'll see that I know this. Additionally my last sentence tells you why I don't use it... Michael. From pascaldragon at googlemail.com Wed Apr 6 17:07:49 2022 From: pascaldragon at googlemail.com (Sven Barth) Date: Wed, 6 Apr 2022 17:07:49 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: Michael Van Canneyt via lazarus schrieb am Mi., 6. Apr. 2022, 14:47: > > > On Wed, 6 Apr 2022, Sven Barth via lazarus wrote: > > > Michael Van Canneyt via lazarus schrieb > am > > Mi., 6. Apr. 2022, 12:56: > > > >> > >> 1. Currently a component is identified by its class name. > >> > >> This should be enhanced: a component must be identified with > >> UnitName.Name. > >> a unit name is a "namespace" and so MyControls.TButton <> > >> StdCtrls.TButton. > >> > >> Currently there are several component name clashes in the pas2js and > >> FPC class trees. > >> > > > > The streaming system can't differentiate by unit name, so this simply > isn't > > possible. > > I know that. > > We simply need to adapt the streaming system so it can, > I already studied that, it's fairly trivial: > > * When writing: write UnitName.ComponentName instead of ComponentName. > A trivial change, which can be done in a backward compatible manner. > > * When reading, there are 2 lines that must be changed: > One in GetClass and one in TReader.FindComponentClass. > > * To handle the text format, 2 lines need changing. > > So this is not exactly lots of work. > But then this needs to be in FPC first and there it will only be officially available once 3.4.0 is released. And since Lazarus supports the last two releases it would need to be handled in a way that allows the user to cater to older FPC versions as well. > > 3. Please add a search edit in the component palette, as delphi has it: > >> typing in that edit should reduce the visible tabs to show only tabs > >> that have a > >> component with the typed text in the classname, just like the one on > >> the component window... > >> (the component window is IMO not really usable if you are not using > a > >> docked IDE) > >> > > > > Why don't you use the component list instead of the palette then? This > > already provides a search. > > If you read my message correctly, you'll see that I know this. > Additionally my last sentence tells you why I don't use it... > Gotta admit that I had only skimmed the last sentence ^^' Regards, Sven > -------------- next part -------------- An HTML attachment was scrubbed... URL: From werner.pamler at freenet.de Wed Apr 6 17:45:15 2022 From: werner.pamler at freenet.de (Werner Pamler) Date: Wed, 6 Apr 2022 17:45:15 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: Am 06.04.2022 um 12:56 schrieb Michael Van Canneyt via lazarus: > 3. Please add a search edit in the component palette, as delphi has it: > ?? typing in that edit should reduce the visible tabs to show only > tabs that have a > ?? component with the typed text in the classname, just like the one > on the component window... > ?? (the component window is IMO not really usable if you are not using > a docked IDE) Sorry what do you mean with "component window"? There's one in menu "View" > "Components" (this is not the one which opens by clicking the down-arrow at the right of the component palette), and this seems to do exactly what you? require after checking "Keep open". From michael at freepascal.org Wed Apr 6 17:48:44 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 6 Apr 2022 17:48:44 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: On Wed, 6 Apr 2022, Sven Barth wrote: > Michael Van Canneyt via lazarus schrieb am > Mi., 6. Apr. 2022, 14:47: > >> >> >> On Wed, 6 Apr 2022, Sven Barth via lazarus wrote: >> >>> Michael Van Canneyt via lazarus schrieb >> am >>> Mi., 6. Apr. 2022, 12:56: >>> >>>> >>>> 1. Currently a component is identified by its class name. >>>> >>>> This should be enhanced: a component must be identified with >>>> UnitName.Name. >>>> a unit name is a "namespace" and so MyControls.TButton <> >>>> StdCtrls.TButton. >>>> >>>> Currently there are several component name clashes in the pas2js and >>>> FPC class trees. >>>> >>> >>> The streaming system can't differentiate by unit name, so this simply >> isn't >>> possible. >> >> I know that. >> >> We simply need to adapt the streaming system so it can, >> I already studied that, it's fairly trivial: >> >> * When writing: write UnitName.ComponentName instead of ComponentName. >> A trivial change, which can be done in a backward compatible manner. >> >> * When reading, there are 2 lines that must be changed: >> One in GetClass and one in TReader.FindComponentClass. >> >> * To handle the text format, 2 lines need changing. >> >> So this is not exactly lots of work. >> > > But then this needs to be in FPC first and there it will only be officially > available once 3.4.0 is released. And since Lazarus supports the last two > releases it would need to be handled in a way that allows the user to cater > to older FPC versions as well. Yes. Hence the 'backwards compatible' writing. A global flag to set a default in the writer should suffice. I'm just proposing things to move forward, hoping to get feedback, being informed of possible pitfalls. That the "unit scoped identifier names" part will not be ready tomorrow was clear to me before I asked the question. But the first step is asking :-) Michael. From michael at freepascal.org Wed Apr 6 17:54:02 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 6 Apr 2022 17:54:02 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: On Wed, 6 Apr 2022, Werner Pamler via lazarus wrote: > Am 06.04.2022 um 12:56 schrieb Michael Van Canneyt via lazarus: >> 3. Please add a search edit in the component palette, as delphi has it: >> ?? typing in that edit should reduce the visible tabs to show only >> tabs that have a >> ?? component with the typed text in the classname, just like the one >> on the component window... >> ?? (the component window is IMO not really usable if you are not using >> a docked IDE) > Sorry what do you mean with "component window"? There's one in menu > "View" > "Components" (this is not the one which opens by clicking the > down-arrow at the right of the component palette), and this seems to do > exactly what you? require after checking "Keep open". As I replied to Sven: I know. I am indeed talking about that window, and I consider this window simply not usable in SDI mode (which is the mode I work in). The component palette is what I use, so it is natural to ask to improve that. and I suspect I am not alone in my preference: it's not for no reason that Embarcadero reinstated the component palette after trying to get rid of it in a couple of Delphi versions. Michael. From fpc at pascalprogramming.org Wed Apr 6 19:48:48 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Wed, 6 Apr 2022 19:48:48 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> On 6-4-2022 14:47, Michael Van Canneyt via lazarus wrote: > > * When writing: write UnitName.ComponentName instead of ComponentName. > ? A trivial change, which can be done in a backward compatible manner. It only will break compatibility with Delphi needlessly.?? This will complicate making e.g. demoes for shared library packages. If component names have units,? and units have a package (vcl. etc) prefix, maybe it is simply enough to register the prefix in the reader library and then disambiguate between the various units based on the package prefix. The default would remain VCL (or LCL, depending on what is chosen) to remain backwards compatible. This way the incompatibility is on a single point rather than in every streamed component. From michael at freepascal.org Wed Apr 6 23:45:45 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 6 Apr 2022 23:45:45 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> Message-ID: On Wed, 6 Apr 2022, Marco van de Voort via lazarus wrote: > > On 6-4-2022 14:47, Michael Van Canneyt via lazarus wrote: >> >> * When writing: write UnitName.ComponentName instead of ComponentName. >> ? A trivial change, which can be done in a backward compatible manner. > > It only will break compatibility with Delphi needlessly.?? This will > complicate making e.g. demoes for shared library packages. I must still see these demos that can be compiled with Delphi and Lazarus. The property names of components and controls in LCL/VCL are already different, so your intended scenario is simply imaginary and non-existent. Every package which works for Delphi and Lazarus that I've seen has separate demos for Lazarus and Delphi for this reason. So it's not like this new feature would worsen the situation. > > If component names have units,? and units have a package (vcl. etc) > prefix, maybe it is simply enough to register the prefix in the reader > library and then disambiguate between the various units based on the > package prefix. Units are already packages (or namespaces) by themselves. That is why they were invented. No need to add a second layer. And as said, I would introduce a flag to make the behaviour backwards compatible. Only writing is affected. People that need to write 100% delphi compatible streams just need to set the flag. Done. Michael. From nc-gaertnma at netcologne.de Fri Apr 8 09:56:26 2022 From: nc-gaertnma at netcologne.de (Mattias Gaertner) Date: Fri, 8 Apr 2022 09:56:26 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: <20220408095626.2684cf9a@limapholos> On Wed, 6 Apr 2022 12:56:17 +0200 (CEST) Michael Van Canneyt via lazarus wrote: > Hello, > > I'm probably kicking in an open door when I'm saying that lazarus > evolves and grows. This is good news, obviously. > > But I have now more tabs on the component palette than can fit on the > screen. There is a dropdown with the tabs, but that's hardly usable > to quickly locate a component. > > I have therefore 3 propositions/requests: > > 1. Currently a component is identified by its class name. > > This should be enhanced: a component must be identified with > UnitName.Name. a unit name is a "namespace" and so MyControls.TButton > <> StdCtrls.TButton. Only if you want to support reading different TButton in one application. The IDE sets the TReader events and controls what component classes are found. > Currently there are several component name clashes in the pas2js > and FPC class trees. The component clashes can be solved by solving problem point 2. > 2. Similarly, it should be possible somehow to say > 'this component is only for environment X' where X can be defined > by the user. RegisterComponents has the "Page". Maybe it is sufficient to apply these environment tags to pages, instead of per component. > When I am working on a webserver application or a service > application, it makes no sense to show all visual controls. Project/package needs a field to select the component environment. > Likewise, some components only make sense for a pas2js > application. > > I am aware of the 'restrictions' on the object inspector, > and in a sense my proposal is to extend/generalize this. > > 3. Please add a search edit in the component palette, as delphi has > it: typing in that edit should reduce the visible tabs to show only > tabs that have a component with the typed text in the classname, just > like the one on the component window... (the component window is IMO > not really usable if you are not using a docked IDE) > > I would think all proposals are feasible, but I can of course be too > optimistic :) There will be some problems when the user opens a form from a different environment, e.g. while a lcl project is open and user opens a web unit+form. Mattias From michael at freepascal.org Fri Apr 8 10:49:05 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 10:49:05 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <20220408095626.2684cf9a@limapholos> References: <20220408095626.2684cf9a@limapholos> Message-ID: On Fri, 8 Apr 2022, Mattias Gaertner via lazarus wrote: > On Wed, 6 Apr 2022 12:56:17 +0200 (CEST) > Michael Van Canneyt via lazarus wrote: > >> Hello, >> >> I'm probably kicking in an open door when I'm saying that lazarus >> evolves and grows. This is good news, obviously. >> >> But I have now more tabs on the component palette than can fit on the >> screen. There is a dropdown with the tabs, but that's hardly usable >> to quickly locate a component. >> >> I have therefore 3 propositions/requests: >> >> 1. Currently a component is identified by its class name. >> >> This should be enhanced: a component must be identified with >> UnitName.Name. a unit name is a "namespace" and so MyControls.TButton >> <> StdCtrls.TButton. > > Only if you want to support reading different TButton in one > application. But that is exactly what I want to support ? If I want to implement my own button, descendent of the standard TButton or not: Except for the restriction during streaming, I see no reason why I would have to name my own button TMyButton, since the 'my' is implicit in the fact that it is implemented in unit MyControls. In code, you can perfectly distinguish the 2 buttons by prefixing the class name with the unit name in case you are using the 2 units with a TButton. You currently cannot do the same when streaming. I propose to fix this. Units are namespaces, they're simply not being used correctly: Borland simply didn't think it through completely when they implemented the streaming. And unfortunately they failed to address it when they implemented FMX and dotted units, that was the time when they should have fixed the problem... This problem has been on my mind since a long time, but it simply becomes more acute now with the designer support for pas2js. (You may remember that I mentioned it during one of our meetings with the editor of Blaise pascal, some years back) > The IDE sets the TReader events and controls what component classes are > found. Why do you need to implement custom handling ? The standard mechanism is not sufficient ? I can only think of the JIT form but all other things should work as-is ? >> Currently there are several component name clashes in the pas2js >> and FPC class trees. > > The component clashes can be solved by solving problem point 2. Not the case above. >> 2. Similarly, it should be possible somehow to say >> 'this component is only for environment X' where X can be defined >> by the user. > > RegisterComponents has the "Page". > Maybe it is sufficient to apply these environment tags to pages, > instead of per component. That is fine for me, but does not solve the above problem. They are different problems: - one is to limit the number of components to a list that is known to be usable for the kind of application you are making - The other is to support components that have the same name, but are implemented in a different unit. (i.e. actually use the namespaces) >> When I am working on a webserver application or a service >> application, it makes no sense to show all visual controls. > > Project/package needs a field to select the component environment. Yes. >> Likewise, some components only make sense for a pas2js >> application. >> >> I am aware of the 'restrictions' on the object inspector, >> and in a sense my proposal is to extend/generalize this. >> >> 3. Please add a search edit in the component palette, as delphi has >> it: typing in that edit should reduce the visible tabs to show only >> tabs that have a component with the typed text in the classname, just >> like the one on the component window... (the component window is IMO >> not really usable if you are not using a docked IDE) >> >> I would think all proposals are feasible, but I can of course be too >> optimistic :) > > There will be some problems when the user opens a form from a different > environment, e.g. while a lcl project is open and user opens a web > unit+form. That can't be helped. But this is currently also the case if you open a form for which some of the components are not installed. Probably the form should also have an indicator of the 'environment' it uses, so the IDE can warn. It could be streamed with the DefineProperties() so the user is unaware. Michael. From fpc at pascalprogramming.org Fri Apr 8 11:04:40 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 8 Apr 2022 11:04:40 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> Message-ID: <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> On 6-4-2022 23:45, Michael Van Canneyt wrote: > >>> * When writing: write UnitName.ComponentName instead of ComponentName. >>> ? A trivial change, which can be done in a backward compatible manner. >> >> It only will break compatibility with Delphi needlessly.?? This will >> complicate making e.g. demoes for shared library packages. > > I must still see these demos that can be compiled with Delphi and > Lazarus. > The property names of components and controls in LCL/VCL are already > different, so your intended scenario is simply imaginary and > non-existent. > > Every package which works for Delphi and Lazarus? that I've seen has > separate demos for Lazarus and Delphi for this reason. > > So it's not like this new feature would worsen the situation. Even if there are one or two property names different, a simple opening of the form fixes that.? A different streaming system won't fix that. >> >> If component names have units,? and units have a package (vcl. etc) >> prefix, maybe it is simply enough to register the prefix in the >> reader library and then disambiguate between the various units based >> on the package prefix. > > Units are already packages (or namespaces) by themselves. That is why > they were invented. No need to add a second layer. The duplications are within sets of units with similar names for different component packages. It is only logical to also use that. There is no need to force the unit as disambiguator. > > And as said, I would introduce a flag to make the behaviour backwards > compatible. > Only writing is affected. People that need to write 100% delphi > compatible streams > just need to set the flag. Done. > Or reverse it. Make that flag default, and the few people that use register both VCL and web components within one project reverse it. From michael at freepascal.org Fri Apr 8 11:26:09 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 11:26:09 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> Message-ID: On Fri, 8 Apr 2022, Marco van de Voort wrote: >> >> Units are already packages (or namespaces) by themselves. That is why they >> were invented. No need to add a second layer. > > The duplications are within sets of units with similar names for different > component packages. It is only logical to also use that. There is no need to > force the unit as disambiguator. I want to be able to use the unit as disambiguator. That's the whole point of the exercise. But given that we will offer the backwards compatibility flag, it is not 'forcing'. Michael. From fpc at pascalprogramming.org Fri Apr 8 11:58:27 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 8 Apr 2022 11:58:27 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> Message-ID: <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> On 8-4-2022 11:26, Michael Van Canneyt wrote: > >> The duplications are within sets of units with similar names for >> different component packages. It is only logical to also use that. >> There is no need to force the unit as disambiguator. > > I want to be able to use the unit as disambiguator. That is clear. What isn't clear is why this is needed in a way that forces changes (and incompatibilities) on users apps to solve IDE problems. IOW in which cases is disambiguation in the class registration of the generated app needed? Sure, the IDE is also a FPC/Lazarus app, but it has more leeway for solutions that doesn't require changes to the way EVERY APP streams its forms. > > That's the whole point of the exercise. > > But given that we will offer the backwards compatibility flag, it is > not 'forcing'. > This is a nonsense argument to make discussion go away. Enough such flags that an user only finds out when he is actually having problems is enough to turn them away from Lazarus permanently. From michael at freepascal.org Fri Apr 8 12:26:51 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 12:26:51 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> Message-ID: On Fri, 8 Apr 2022, Marco van de Voort via lazarus wrote: > > On 8-4-2022 11:26, Michael Van Canneyt wrote: >> >>> The duplications are within sets of units with similar names for different >>> component packages. It is only logical to also use that. There is no need >>> to force the unit as disambiguator. >> >> I want to be able to use the unit as disambiguator. > > That is clear. What isn't clear is why this is needed in a way that forces > changes (and incompatibilities) on users apps to solve IDE problems. In the first place, the IDE is not the problem. The streaming is, see my reply to Mattias. The IDE just follows the streaming mechanisms available. I don't understand why do you say it forces changes and incompatibilities ? Because it does not. Whatever worked will continue to work. The streaming currently has a header: TPF0. (as Delphi has) If we change the header to TPF1 for streams with scoped identifiers, all will work as-is as we can detect in the reader what to expect, set flags accordingly. The text format may also need a similar change, I didn't check this yet with 100% certainty. The only change needed is to tell the writer that you want scoped names. That is entirely optional. The IDE can decide to use it - or not: it can perfectly detect whether they are needed. The IDE of course needs to know that the namespaces can be there and prepare for it: allow scoped identifiers. Hence my mail. For the user I think this is all transparent. Those that use streaming outside the LCL can use the flag to disable scoped writing (or we leave unscoped the default). I have not heard any technical arguments to the contrary. Michael. From fpc at pascalprogramming.org Fri Apr 8 13:59:04 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 8 Apr 2022 13:59:04 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <20220408095626.2684cf9a@limapholos> Message-ID: <8f24f2b9-e027-0b0f-a9be-96b6b6f5ee22@pascalprogramming.org> On 8-4-2022 10:49, Michael Van Canneyt via lazarus wrote: > > > But that is exactly what I want to support ? > > If I want to implement my own button, descendent of the standard > TButton or not: > > Except for the restriction during streaming, I see no reason why I would > have to name my own button TMyButton, since the 'my' is implicit in > the fact > that it is implemented in unit MyControls. Have a virtual method in tpersistent that is used for the streaming identifier. Default it returns the classname (and everything remains the same for existing classes), and you can override it to also return the unitname. From nc-gaertnma at netcologne.de Fri Apr 8 14:08:31 2022 From: nc-gaertnma at netcologne.de (Mattias Gaertner) Date: Fri, 8 Apr 2022 14:08:31 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <20220408095626.2684cf9a@limapholos> Message-ID: <20220408140831.7c2e1846@limapholos> On Fri, 8 Apr 2022 10:49:05 +0200 (CEST) Michael Van Canneyt via lazarus wrote: >[...] > > Only if you want to support reading different TButton in one > > application. > > But that is exactly what I want to support ? I understand a lcl controls.TButton and a web controls.TButton, but that would not clash in one application. So the situation is that - for whatever reasons - you ended up with two TButton in one app and you are not allowed to rename them. Worse, you want to drop the two TButton on the same form. Correct? > > The IDE sets the TReader events and controls what component classes > > are found. > > Why do you need to implement custom handling ? > The standard mechanism is not sufficient ? Error handling, jit stuff, visual form inheritance. The standard mechanism is for apps, the events are for the IDE. >[...] > Probably the form should also have an indicator of the 'environment' > it uses, so the IDE can warn. It could be streamed with the > DefineProperties() so the user is unaware. Yes. Note that the environment and the unitname extensions are independent features with different side effects. To avoid confusion, let's discuss each in separate threads. Mattias From michael at freepascal.org Fri Apr 8 14:14:03 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 14:14:03 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <8f24f2b9-e027-0b0f-a9be-96b6b6f5ee22@pascalprogramming.org> References: <20220408095626.2684cf9a@limapholos> <8f24f2b9-e027-0b0f-a9be-96b6b6f5ee22@pascalprogramming.org> Message-ID: On Fri, 8 Apr 2022, Marco van de Voort via lazarus wrote: > > On 8-4-2022 10:49, Michael Van Canneyt via lazarus wrote: >> >> >> But that is exactly what I want to support ? >> >> If I want to implement my own button, descendent of the standard TButton or >> not: >> >> Except for the restriction during streaming, I see no reason why I would >> have to name my own button TMyButton, since the 'my' is implicit in the >> fact >> that it is implemented in unit MyControls. > > Have a virtual method in tpersistent that is used for the streaming > identifier. Default it returns the classname (and everything remains the same > for existing classes), and you can override it to also return the unitname. You're even farther from home with this solution, because then you depend on the user: 2 classes can return the same name. Classname and unit name are a unique identifier, guaranteed to be unique (in your project) by the compiler itself. Michael. From pascaldragon at googlemail.com Fri Apr 8 14:21:23 2022 From: pascaldragon at googlemail.com (Sven Barth) Date: Fri, 8 Apr 2022 14:21:23 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> Message-ID: Marco van de Voort via lazarus schrieb am Fr., 8. Apr. 2022, 11:58: > > IOW in which cases is disambiguation in the class registration of the > generated app needed? > > > Sure, the IDE is also a FPC/Lazarus app, but it has more leeway for > solutions that doesn't require changes to the way EVERY APP streams its > forms. > The use case that Michael has in mind is that inside an app you have a StdCtrls.TButton and a MyControls.TButton. Right now one *must* rename ones own even though the full name including unit name is unique. Solving this would at the same time allow the IDE to have a TButton for both the LCL and e.g. Web Components Library. Right now they need to be named differently like WebCtrls.TWButton. Regards, Sven -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at freepascal.org Fri Apr 8 14:30:11 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 14:30:11 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> Message-ID: On Fri, 8 Apr 2022, Sven Barth via lazarus wrote: > Marco van de Voort via lazarus schrieb am > Fr., 8. Apr. 2022, 11:58: > >> >> IOW in which cases is disambiguation in the class registration of the >> generated app needed? >> >> >> Sure, the IDE is also a FPC/Lazarus app, but it has more leeway for >> solutions that doesn't require changes to the way EVERY APP streams its >> forms. >> > > The use case that Michael has in mind is that inside an app you have a > StdCtrls.TButton and a MyControls.TButton. Right now one *must* rename ones > own even though the full name including unit name is unique. > > Solving this would at the same time allow the IDE to have a TButton for > both the LCL and e.g. Web Components Library. Right now they need to be > named differently like WebCtrls.TWButton. Exactly so. I can't explain it clearer than this. Streaming destroys the namespaces that units offer. And while I've been aware of this issue for a long time and have studied the solution, the second problem is now becoming acute: I have 2 TJSONDatasets and 2 TRESTDatasets... (and more will follow) The solution (activate unit scoped identifiers for streaming) is just taking existing concepts to their logical conclusion. It's simply a pity Borland didn't go all the way when they designed the streaming; All I am proposing is to complete the work. (in a backwards compatible manner, to boot) Michael. From fpc at pascalprogramming.org Fri Apr 8 15:02:46 2022 From: fpc at pascalprogramming.org (Marco van de Voort) Date: Fri, 8 Apr 2022 15:02:46 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> Message-ID: <2d45fa4f-ebb4-2d3d-7229-f7880f5c0b08@pascalprogramming.org> On 8-4-2022 14:21, Sven Barth wrote: > Marco van de Voort via lazarus schrieb > am Fr., 8. Apr. 2022, 11:58: > > > IOW in which cases is disambiguation in the class registration of the > generated app needed? > > > Sure, the IDE is also a FPC/Lazarus app, but it has more leeway for > solutions that doesn't require changes to the way EVERY APP > streams its > forms. > > > The use case that Michael has in mind is that inside an app you have a > StdCtrls.TButton and a MyControls.TButton. Right now one *must* rename > ones own even though the full name including unit name is unique. > > Solving this would at the same time allow the IDE to have a TButton > for both the LCL and e.g. Web Components Library. Right now they need > to be named differently like WebCtrls.TWButton. > But that doesn't make it necessary to rename TButton to Stdctrls.TButton. It only means MyControls.TButton must always be qualified. (See the subthread with Mattias). We shouldn't fix every minor issue with a breaking change and pray the users that are hit by this will find the umpteenth boolean switch to fix it (and can change it early enough, e.g. what about class registration in initialization sections?). From nc-gaertnma at netcologne.de Fri Apr 8 16:33:33 2022 From: nc-gaertnma at netcologne.de (Mattias Gaertner) Date: Fri, 8 Apr 2022 16:33:33 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> Message-ID: <20220408163333.109d602b@limapholos> On Fri, 8 Apr 2022 14:21:23 +0200 Sven Barth via lazarus wrote: >[...] > Solving this would at the same time allow the IDE to have a TButton > for both the LCL and e.g. Web Components Library. Right now they need > to be named differently like WebCtrls.TWButton. Note that if you just want to support two TButton, then you don't need to extend Classes. You can use TReader.OnFindComponentClass. Only if you want two different TButton on the same form you need the unitname.tbutton. I will try to summarize: a) Extend lfm to support unitname.classname and extend IDE to allow registering classnames twice. Pro: Allows two TButton in the same app, even on the same form. Con: Require changes in Classes (FPC release) Con: old and new lfm file troubles (old/new FPC, old/new IDE) b) Extend IDE with environment tags for pages and allow registering classnames twice for different environments. Pro: IDE could show context sensitive component palette Pro: allows two TButton in IDE Con: does not support two TButton in one app, unless app sets TReader.OnFindComponentClass Con: troubles with old IDE Note that a) and b) are not xor - both can be implemented. Mattias From michael at freepascal.org Fri Apr 8 22:38:01 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Fri, 8 Apr 2022 22:38:01 +0200 (CEST) Subject: [Lazarus] Component palette enhancements In-Reply-To: <20220408163333.109d602b@limapholos> References: <8a33a706-9266-16a2-7fde-b10cb1fc7050@pascalprogramming.org> <67853b92-8d18-e43f-d76e-013e52d6a18b@pascalprogramming.org> <4e5e4b0b-c8d5-1425-f5fe-f489fa548064@pascalprogramming.org> <20220408163333.109d602b@limapholos> Message-ID: On Fri, 8 Apr 2022, Mattias Gaertner via lazarus wrote: > On Fri, 8 Apr 2022 14:21:23 +0200 > Sven Barth via lazarus wrote: > >> [...] >> Solving this would at the same time allow the IDE to have a TButton >> for both the LCL and e.g. Web Components Library. Right now they need >> to be named differently like WebCtrls.TWButton. > > Note that if you just want to support two TButton, then you don't need > to extend Classes. You can use TReader.OnFindComponentClass. > Only if you want two different TButton on the same form you need the > unitname.tbutton. To support 2 different TButtons at runtime, no hook is needed if you don't drop them on the same form. The entry in field classtable will automatically point to the correct one. It's only needed if there is no field, then you will need a hook (as in the IDE which - if I am correctly informed - uses a JIT form). > > I will try to summarize: > > a) Extend lfm to support unitname.classname and extend IDE to allow > registering classnames twice. > > Pro: Allows two TButton in the same app, even on the same form. > > Con: Require changes in Classes (FPC release) > > Con: old and new lfm file troubles (old/new FPC, old/new IDE) > > > b) Extend IDE with environment tags for pages and allow registering > classnames twice for different environments. > > Pro: IDE could show context sensitive component palette > > Pro: allows two TButton in IDE > > Con: does not support two TButton in one app, unless app sets > TReader.OnFindComponentClass > > Con: troubles with old IDE > > > Note that a) and b) are not xor - both can be implemented. Exactly. a/ I don't think that requiring a special hook to accomodate something that is baked into the language is a correct approach. The language provides scoped names, so the streaming should support this correctly without resorting to "hacks". It should have been so since day 1. b/ This can be done today already without waiting for a/ and thereby make using similarly named components possible for pas2js and native apps. You may want to enable setting multiple environments for a page: e.g. TTimer is usable in a service and in GUI app. Same for data access. (but it should not be available for pas2js) While I am not against doing it for a page, I think doing it at the component level is in the end the more powerful choice. (Delphi does it that way) Michael. From michael at freepascal.org Sat Apr 9 16:16:19 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Sat, 9 Apr 2022 16:16:19 +0200 (CEST) Subject: [Lazarus] Strange message from window manager Message-ID: Hello, I'm getting heaps of this kind of warnings: Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000038 (Lazarus) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (MainIDE) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (MainIDE) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (MainIDE) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (MainIDE) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x200006b (Project In) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x200006b (Project In) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x200006b (Project In) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x200006b (Project In) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003e4 (Messages) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003e4 (Messages) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003e4 (Messages) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003e4 (Messages) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003ea (Object Ins) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003ea (Object Ins) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003ea (Object Ins) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003ea (Object Ins) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003f9 (Source Edi) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (Lazarus ID) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000065 (Lazarus ID) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x20003dd (Components) Any idea what causes this ? Michael. From don.siders at gmail.com Sun Apr 10 16:12:59 2022 From: don.siders at gmail.com (Don Siders) Date: Sun, 10 Apr 2022 10:12:59 -0400 Subject: [Lazarus] Strange message from window manager In-Reply-To: References: Message-ID: On Sun, Apr 10, 2022 at 6:00 AM wrote: > I'm getting heaps of this kind of warnings: > > Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000038 (Lazarus) > > Any idea what causes this ? There is an open bug report for it at https://github.com/linuxmint/cinnamon/issues/9909. It also has a suggested workaround. Are you using Telegram? -- Don From lazarus at kluug.net Tue Apr 12 13:09:06 2022 From: lazarus at kluug.net (Ondrej Pokorny) Date: Tue, 12 Apr 2022 13:09:06 +0200 Subject: [Lazarus] Component palette enhancements In-Reply-To: References: Message-ID: <9ee7609c-b0e1-332e-2970-54df87e3bd2d@kluug.net> I have used the "Components" window in a non-docked environment with no problems. I removed the component palette altogether. IMO the point is to use it as a dialog, not as a constantly open IDE window. My workflow is: open the Components window with a keyboard shortcut, find the component by typing, place the component where wanted with a mouse-click, close the window. That brings me to the 2 issues I found: 1.) I used to open the Components window with Ctrl+Alt+P. I have a short-cut associated with it (see the attachment). But the shortcut is not recognized (I press Ctrl+Alt+P and it does nothing). It looks like an application-wide problem. The shortcut is not recognized in the "Choose a key..." dialog in IDE Options -> Key Mappings either. Strange is that Ctrl+Alt+D (show desktops) works fine. Maybe it is just my PC that eats the Ctrl+Alt+P shortcut? Can anybody confirm? I am on Windows 10. 2.) When the "Keep open" checkbox is unchecked and I single-click on a component to select it and place it with a mouse click on the form (no double-click), the Components window is not closed. Is it wanted? Shouldn't be the window closed? Thanks Ondrej -------------- next part -------------- A non-text attachment was scrubbed... Name: components-window.png Type: image/png Size: 43167 bytes Desc: not available URL: From markbass72 at zoho.com Tue Apr 19 09:42:10 2022 From: markbass72 at zoho.com (Marcello) Date: Tue, 19 Apr 2022 09:42:10 +0200 Subject: [Lazarus] TMS Component and Lazarus IDE Message-ID: Hi all Some time ago I asked on the forum more information about the status of the installation of TMS components in Lazarus. I would be interested in buying these components but I did not understand if I can install them in Lazarus or not because of a bug. Can anyone give me any information? https://forum.lazarus.freepascal.org/index.php/topic,55565.msg433692.html Thanks in advance nomorelogic From nc-gaertnma at netcologne.de Tue Apr 19 10:26:43 2022 From: nc-gaertnma at netcologne.de (Mattias Gaertner) Date: Tue, 19 Apr 2022 10:26:43 +0200 Subject: [Lazarus] TMS Component and Lazarus IDE In-Reply-To: References: Message-ID: <20220419102643.553f1807@limapholos> On Tue, 19 Apr 2022 09:42:10 +0200 Marcello via lazarus wrote: > Hi all > > Some time ago I asked on the forum more information about the status > of the installation of TMS components in Lazarus. > I would be interested in buying these components but I did not > understand if I can install them in Lazarus or not because of a bug. > Can anyone give me any information? > > > https://forum.lazarus.freepascal.org/index.php/topic,55565.msg433692.html I guess you mean: https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/34273 This is about installing the native and the web FNC components at the same time. Do you need that? Mattias From markbass72 at zoho.com Wed Apr 20 10:37:41 2022 From: markbass72 at zoho.com (Marcello) Date: Wed, 20 Apr 2022 10:37:41 +0200 Subject: [Lazarus] TMS Component and Lazarus IDE In-Reply-To: <20220419102643.553f1807@limapholos> References: <20220419102643.553f1807@limapholos> Message-ID: <666959e7-14ed-3724-e5ec-2f01793acdf7@zoho.com> Il 19/04/22 10:26, Mattias Gaertner via lazarus ha scritto: > On Tue, 19 Apr 2022 09:42:10 +0200 > Marcello via lazarus wrote: > >> Hi all >> >> Some time ago I asked on the forum more information about the status >> of the installation of TMS components in Lazarus. >> I would be interested in buying these components but I did not >> understand if I can install them in Lazarus or not because of a bug. >> Can anyone give me any information? >> >> >> https://forum.lazarus.freepascal.org/index.php/topic,55565.msg433692.html > I guess you mean: > https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/34273 > > This is about installing the native and the web FNC components at the > same time. > Do you need that? > > Mattias Yes, I mean that bug. I only need Web components, not native (at least for now). I don?t understand why I can?t find the download link for Lazarus. In following link, I can't found Lazarus... https://www.tmssoftware.com/site/tmswebcore.asp#product-downloads and "compatibility" says: Delphi XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria (Professional/Enterprise/Architect) Thanks nomorelogic From michael at freepascal.org Wed Apr 20 10:52:48 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 20 Apr 2022 10:52:48 +0200 (CEST) Subject: [Lazarus] TMS Component and Lazarus IDE In-Reply-To: <666959e7-14ed-3724-e5ec-2f01793acdf7@zoho.com> References: <20220419102643.553f1807@limapholos> <666959e7-14ed-3724-e5ec-2f01793acdf7@zoho.com> Message-ID: On Wed, 20 Apr 2022, Marcello via lazarus wrote: > Il 19/04/22 10:26, Mattias Gaertner via lazarus ha scritto: >> On Tue, 19 Apr 2022 09:42:10 +0200 >> Marcello via lazarus wrote: >> >>> Hi all >>> >>> Some time ago I asked on the forum more information about the status >>> of the installation of TMS components in Lazarus. >>> I would be interested in buying these components but I did not >>> understand if I can install them in Lazarus or not because of a bug. >>> Can anyone give me any information? >>> >>> >>> https://forum.lazarus.freepascal.org/index.php/topic,55565.msg433692.html >> I guess you mean: >> https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/34273 >> >> This is about installing the native and the web FNC components at the >> same time. >> Do you need that? >> >> Mattias > > Yes, I mean that bug. > > I only need Web components, not native (at least for now). > > I don?t understand why I can?t find the download link for Lazarus. > > > In following link, I can't found Lazarus... > https://www.tmssoftware.com/site/tmswebcore.asp#product-downloads > > and "compatibility" says: > Delphi XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, > 11 Alexandria (Professional/Enterprise/Architect) You must download the Delphi installer. There is no separate installer for Lazarus. The Delphi installer then offers to install for lazarus. Michael. From markbass72 at zoho.com Wed Apr 20 11:16:44 2022 From: markbass72 at zoho.com (Marcello) Date: Wed, 20 Apr 2022 11:16:44 +0200 Subject: [Lazarus] TMS Component and Lazarus IDE In-Reply-To: References: <20220419102643.553f1807@limapholos> <666959e7-14ed-3724-e5ec-2f01793acdf7@zoho.com> Message-ID: <90b95e4b-07ef-68dd-7ce8-92a9c6116f00@zoho.com> > You must download the Delphi installer. There is no separate installer > for > Lazarus. The Delphi installer then offers to install for lazarus. > > Michael. > So, If I don't need native components I can successfully install Web Componets in Lazarus? From michael at freepascal.org Wed Apr 20 12:57:55 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Wed, 20 Apr 2022 12:57:55 +0200 (CEST) Subject: [Lazarus] TMS Component and Lazarus IDE In-Reply-To: <90b95e4b-07ef-68dd-7ce8-92a9c6116f00@zoho.com> References: <20220419102643.553f1807@limapholos> <666959e7-14ed-3724-e5ec-2f01793acdf7@zoho.com> <90b95e4b-07ef-68dd-7ce8-92a9c6116f00@zoho.com> Message-ID: On Wed, 20 Apr 2022, Marcello via lazarus wrote: > >> You must download the Delphi installer. There is no separate installer for >> Lazarus. The Delphi installer then offers to install for lazarus. >> >> Michael. >> > > So, If I don't need native components I can successfully install Web > Componets in Lazarus? I would think so, yes. Michael. From fiens at hotmail.com Wed Apr 20 14:17:19 2022 From: fiens at hotmail.com (Fred van Stappen) Date: Wed, 20 Apr 2022 12:17:19 +0000 Subject: [Lazarus] Strange message from window manager Message-ID: Hello Michael. > I'm getting heaps of this kind of warnings: > Cinnamon warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2000038 (Lazarus) > ... https://forum.lazarus.freepascal.org/index.php/topic,49955.msg363604.html#msg363604 ? Fre;D -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at freepascal.org Thu Apr 21 11:36:02 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Thu, 21 Apr 2022 11:36:02 +0200 (CEST) Subject: [Lazarus] Lazarus is running but not responding. Message-ID: Hi, Lazarus was completely stuck under high load. No way to close it. I had to kill Lazarus with killall -KILL lazarus When I then attempted to restart lazarus, I got "Lazarus is running but not responding." (see screenshot) I have not found a way to start it again. So, what should I do now ? Michael. -------------- next part -------------- A non-text attachment was scrubbed... Name: running.png Type: image/png Size: 7765 bytes Desc: URL: From support at uvviewsoft.com Thu Apr 21 11:39:27 2022 From: support at uvviewsoft.com (Alexey Torgashin) Date: Thu, 21 Apr 2022 12:39:27 +0300 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: References: Message-ID: <5dff56da57d635bdaa18532b293b910b@uvviewsoft.com> Run 'htop' (do you have Linux?) and press F3 to find 'lazarus'. Then F9 to kill it. Alexey From lazarus at kluug.net Thu Apr 21 11:42:03 2022 From: lazarus at kluug.net (Ondrej Pokorny) Date: Thu, 21 Apr 2022 11:42:03 +0200 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: References: Message-ID: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> On 21.04.2022 11:36, Michael Van Canneyt via lazarus wrote: > Lazarus was completely stuck under high load. > > No way to close it. I had to kill Lazarus with > > killall -KILL lazarus > > When I then attempted to restart lazarus, I got "Lazarus is running > but not responding." > (see screenshot) > > I have not found a way to start it again. > > So, what should I do now ? It means that the IPC files are still blocked. Please restart your PC and write back if it didn't help. This Lazarus part is something I am not really proud of and should be rewritten... Ondrej From michael at freepascal.org Thu Apr 21 11:43:46 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Thu, 21 Apr 2022 11:43:46 +0200 (CEST) Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: <5dff56da57d635bdaa18532b293b910b@uvviewsoft.com> References: <5dff56da57d635bdaa18532b293b910b@uvviewsoft.com> Message-ID: On Thu, 21 Apr 2022, Alexey Torgashin via lazarus wrote: > Run 'htop' (do you have Linux?) and press F3 to find 'lazarus'. Then F9 to > kill it. Obviously I checked the process list first. There is no running lazarus. (which is logical after a killall -KILL lazarus, it kills ALL lazarus processes) Michael. From michael at freepascal.org Thu Apr 21 11:45:21 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Thu, 21 Apr 2022 11:45:21 +0200 (CEST) Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> Message-ID: On Thu, 21 Apr 2022, Ondrej Pokorny via lazarus wrote: > On 21.04.2022 11:36, Michael Van Canneyt via lazarus wrote: >> Lazarus was completely stuck under high load. >> >> No way to close it. I had to kill Lazarus with >> >> killall -KILL lazarus >> >> When I then attempted to restart lazarus, I got "Lazarus is running but not >> responding." >> (see screenshot) >> >> I have not found a way to start it again. >> >> So, what should I do now ? > > It means that the IPC files are still blocked. Please restart your PC and > write back if it didn't help. Restarting the PC is NOT an option at this point, and won't be for the next couple of hours... Where are these files located ? Michael. From michael at freepascal.org Thu Apr 21 12:05:32 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Thu, 21 Apr 2022 12:05:32 +0200 (CEST) Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> Message-ID: On Thu, 21 Apr 2022, Michael Van Canneyt via lazarus wrote: > > > On Thu, 21 Apr 2022, Ondrej Pokorny via lazarus wrote: > >> On 21.04.2022 11:36, Michael Van Canneyt via lazarus wrote: >>> Lazarus was completely stuck under high load. >>> >>> No way to close it. I had to kill Lazarus with >>> >>> killall -KILL lazarus >>> >>> When I then attempted to restart lazarus, I got "Lazarus is running but >>> not responding." >>> (see screenshot) >>> >>> I have not found a way to start it again. >>> >>> So, what should I do now ? >> >> It means that the IPC files are still blocked. Please restart your PC and >> write back if it didn't help. > > Restarting the PC is NOT an option at this point, and won't be for the next > couple of hours... > > Where are these files located ? OK. Found it, they are in /tmp/*LazarusMain* Well, this is definitely something that can be improved :-) Michael. From lazarus at kluug.net Thu Apr 21 12:27:48 2022 From: lazarus at kluug.net (Ondrej Pokorny) Date: Thu, 21 Apr 2022 12:27:48 +0200 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> Message-ID: <556fd4a2-5f30-6a68-7e64-a1365d5d6f20@kluug.net> On 21.04.2022 12:05, Michael Van Canneyt via lazarus wrote: > On Thu, 21 Apr 2022, Michael Van Canneyt via lazarus wrote: >> Restarting the PC is NOT an option at this point, and won't be for >> the next >> couple of hours... >> >> Where are these files located ? > > OK. Found it, they are in /tmp/*LazarusMain* > > Well, this is definitely something that can be improved :-) Yes, definitely. I will note it down again. It bugs me as well. Ondrej From jmlandmesser at gmx.de Fri Apr 22 12:54:11 2022 From: jmlandmesser at gmx.de (John Landmesser) Date: Fri, 22 Apr 2022 12:54:11 +0200 Subject: [Lazarus] Lazarus GTK clears clipboard on exit Message-ID: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> History: I'm fighting with google-chrome-stable on Manjaro Linux XFCE that clears clipboard history when closed. Searched in vain with google but just noticed: gtk applications as lazarus-ide does it also and clears history on exit. Same with apps developed with lazarus. I rember, but not shure, that this behaviour of an application is? "usual" on linux?? Firefox for example is not doing this ... Info: Lazarus 2.3.0 (rev main-2_3-1125-g468f788b36) FPC 3.2.2 x86_64-linux-gtk2 Why do i asked this? Makes me crazy if i searched with google , found something useful, copied, closed Chrome and shit: its gone. I have a clipboard manager copyq where i can activate this item again ... annoying :-( Tipps are welcome John From fiens at hotmail.com Fri Apr 22 13:30:43 2022 From: fiens at hotmail.com (Fred van Stappen) Date: Fri, 22 Apr 2022 11:30:43 +0000 Subject: [Lazarus] Lazarus GTK clears clipboard on exit In-Reply-To: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> References: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> Message-ID: Hello. GTK uses X11 and under X, there isn't really a clipboard. See https://unix.stackexchange.com/questions/450508/how-to-keep-clipboard-content-from-xterm-after-closing-it-like-firefox-or-le Firefox has his own clipboard manager. The easiest is to use a clipboard manager, for example with XFCE: xfce4-clipman ( To install : sudo apt-get install clipman and to run : xfce4-clipman ) Just run it before your application and use it after close your application. If you want create your own clipboard manager, like Firefox does, it is more tricky... ________________________________ De : lazarus de la part de John Landmesser via lazarus Envoy? : vendredi 22 avril 2022 12:54 ? : lazarus at lists.lazarus-ide.org Cc : John Landmesser Objet : [Lazarus] Lazarus GTK clears clipboard on exit History: I'm fighting with google-chrome-stable on Manjaro Linux XFCE that clears clipboard history when closed. Searched in vain with google but just noticed: gtk applications as lazarus-ide does it also and clears history on exit. Same with apps developed with lazarus. I rember, but not shure, that this behaviour of an application is "usual" on linux?? Firefox for example is not doing this ... Info: Lazarus 2.3.0 (rev main-2_3-1125-g468f788b36) FPC 3.2.2 x86_64-linux-gtk2 Why do i asked this? Makes me crazy if i searched with google , found something useful, copied, closed Chrome and shit: its gone. I have a clipboard manager copyq where i can activate this item again ... annoying :-( Tipps are welcome John -- _______________________________________________ lazarus mailing list lazarus at lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus -------------- next part -------------- An HTML attachment was scrubbed... URL: From ryansmithhe at gmail.com Fri Apr 22 13:35:50 2022 From: ryansmithhe at gmail.com (R.Smith) Date: Fri, 22 Apr 2022 13:35:50 +0200 Subject: [Lazarus] Lazarus GTK clears clipboard on exit In-Reply-To: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> References: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> Message-ID: <2532331e-7025-4cec-cad6-954d44e6acf4@gmail.com> On 2022/04/22 12:54, John Landmesser via lazarus wrote: > I'm fighting with google-chrome-stable on Manjaro Linux XFCE that clears > clipboard history when closed. > ... > I rember, but not shure, that this behaviour of an application is > "usual" on linux?? It's Arch + X11, so yes, because of this: https://wiki.archlinux.org/title/clipboard i.e. There is no real "clipbaord" space, "Copy" is handled more like a "Promise-to-send-if-asked", but if asked after you are dead, then fulfilling that promise is hard. Best option is to install one of the myriad of clipboard managers. They persist the copied data in local buffers and promise it forward. > > Firefox for example is not doing this ... That's because Firefox never really fully exits, its clipboard manager remains, I believe. They solved this their way because they encountered this same problem even on Ubuntu some years ago, used to be a known irritating bug that Firefox specifically "lost the clipboard contents" after exiting. Ref: https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/21202 > > Tipps are welcome > As stated before, a clipboard maanger is the only real option. A Google search for this specifically should be very fruitful. From lazarus at mfriebe.de Fri Apr 22 14:47:14 2022 From: lazarus at mfriebe.de (Martin Frb) Date: Fri, 22 Apr 2022 14:47:14 +0200 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> Message-ID: <338cf869-ff9f-ec7b-8750-eb74176b32a7@mfriebe.de> On 21/04/2022 11:42, Ondrej Pokorny via lazarus wrote: > > It means that the IPC files are still blocked. Please restart your PC > and write back if it didn't help. > > This Lazarus part is something I am not really proud of and should be > rewritten... It's also very annoying, if you have a hanging IDE instance. It is impossible to start a 2nd instance to attach and debug. Even if you don't wont any of it: The most "permissive" setting is "always start a new instance". And even though, this should never need to know (nor be known) if another instance is running, it initializes the IPC stuff (and hangs, if ...). Maybe it was meant, if an instance from a diff installation (with diff config) has a setting that says to "use a running instance". But even then, it is imho incorrect, to use an instance that says, it does not want to be used. That is to me, if I have a config "always start a new instance", then that means both: - do not look for a running instance, if started with files to open:?? lazarus? unitfoo.pas - do not get found/used for opening additional files, when a lazarus with different config checks for a running instance. ? (because this running instance says, the files should go into a new instance. So this running instance can not be hijacked to open files) -------------------- Anyway, in git main branch I added a new command line param. (I added it because fppkg gave me huge time outs. And also some of the other warnings, which I know I can ignore in my development folder.) The option can be added in the lazarus.cfg file. From there it will be read even if you start the IDE from a desktop shortcut. For the unique-instance / ipc it is ?? --skip-checks=SingleInstance Other values are: --skip-checks=LazarusDir,FpcExe,FpcSrc,Make,Debugger,Fppkg,Setup,MissingPackageFile,InstallDir,SingleInstance,MacroScript,All *** WARNING: *** Disabling those checks means you will not be warned about any issues. *** Related functionality may be broken, and you are on your own to find out why... For the initial setup dialog (those checks normally run on every start, to check if the dialog should be shown) ??? LazarusDir,???????? // Correct Lazarus-dir / CheckLazarusDirectoryQuality ??? FpcExe,???????? // fpc.exe / CheckFPCExeQuality ??? FpcSrc,???????? // fpc source dir / CheckFPCSrcDirQuality ??? Make,?????????? // make.exe / CheckMakeExeQuality ??? Debugger,?????? // CheckDebuggerQuality ??? Fppkg,????????? // CheckFppkgConfiguration ??? Setup,????????? // **All** of the above ??? MissingPackageFile, // lisPkgSysPackageFileNotFound = 'Package file not found'; ??? InstallDir,???? // This Config was last used by this/other installation ??? SingleInstance, // Other running IDE // Attempt to get lock file ??? MacroScript, // Package EditorMacroScript, skip self test ??? All???????????? // **ALL** From jmlandmesser at gmx.de Fri Apr 22 16:12:30 2022 From: jmlandmesser at gmx.de (John Landmesser) Date: Fri, 22 Apr 2022 16:12:30 +0200 Subject: [Lazarus] Lazarus GTK clears clipboard on exit In-Reply-To: <2532331e-7025-4cec-cad6-954d44e6acf4@gmail.com> References: <0cad4369-adeb-57ef-96bb-cf278db84c2c@gmx.de> <2532331e-7025-4cec-cad6-954d44e6acf4@gmail.com> Message-ID: <9bb24dbd-e48f-ed8e-9dec-b2d42fcf1750@gmx.de> Am 22.04.22 um 13:35 schrieb R.Smith via lazarus: > As stated before, a clipboard maanger is the only real option. A > Google search for this specifically should be very fruitful. > Thanks for these? informations! I use a really useful clipboard manager "copyq" and there i noticed. strange: clipboard ist empty ... and there my search started.! Now i have to hit two key strokes to activate the copied item in copyq history ... thats ok. Plus i learned something about clipboards in Linux ... thank you! From nc-gaertnma at netcologne.de Fri Apr 22 20:38:11 2022 From: nc-gaertnma at netcologne.de (Mattias Gaertner) Date: Fri, 22 Apr 2022 20:38:11 +0200 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: <338cf869-ff9f-ec7b-8750-eb74176b32a7@mfriebe.de> References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> <338cf869-ff9f-ec7b-8750-eb74176b32a7@mfriebe.de> Message-ID: <20220422203811.12de0f35@limapholos> On Fri, 22 Apr 2022 14:47:14 +0200 Martin Frb via lazarus wrote: >[...] > It's also very annoying, if you have a hanging IDE instance. It is > impossible to start a 2nd instance to attach and debug. lazarus.exe --force-new-instance >[...] Mattias From michael at freepascal.org Sat Apr 23 13:00:21 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Sat, 23 Apr 2022 13:00:21 +0200 (CEST) Subject: [Lazarus] Debug Adaptor Protocol support Message-ID: Hello, If memory serves me well, some time ago, the Debug Adaptor Protocol support was mentioned, I think in the context of fpDebug. For pas2js, it would be beneficial to have DAP support in the IDE, as it would allow to debug the pas2js programs from within Lazarus. So, is my memory correct - is there a plan to support DAP ? Michael. From lazarus at mfriebe.de Sat Apr 23 21:50:30 2022 From: lazarus at mfriebe.de (Martin Frb) Date: Sat, 23 Apr 2022 21:50:30 +0200 Subject: [Lazarus] Debug Adaptor Protocol support In-Reply-To: References: Message-ID: <238079e1-71d7-64a5-b0c4-fa937ec7e8d2@mfriebe.de> On 23/04/2022 13:00, Michael Van Canneyt via lazarus wrote: > > Hello, > > If memory serves me well, some time ago, the Debug Adaptor Protocol > support was mentioned, I think in the context of fpDebug. > > For pas2js, it would be beneficial to have DAP support in the IDE, as it > would allow to debug the pas2js programs from within Lazarus. > > So, is my memory correct - is there a plan to support DAP ? Joost has implemented a package for that: https://forum.lazarus.freepascal.org/index.php/topic,57737.0.html From michael at freepascal.org Sun Apr 24 00:07:41 2022 From: michael at freepascal.org (Michael Van Canneyt) Date: Sun, 24 Apr 2022 00:07:41 +0200 (CEST) Subject: [Lazarus] Debug Adaptor Protocol support In-Reply-To: <238079e1-71d7-64a5-b0c4-fa937ec7e8d2@mfriebe.de> References: <238079e1-71d7-64a5-b0c4-fa937ec7e8d2@mfriebe.de> Message-ID: On Sat, 23 Apr 2022, Martin Frb via lazarus wrote: > On 23/04/2022 13:00, Michael Van Canneyt via lazarus wrote: >> >> Hello, >> >> If memory serves me well, some time ago, the Debug Adaptor Protocol support >> was mentioned, I think in the context of fpDebug. >> >> For pas2js, it would be beneficial to have DAP support in the IDE, as it >> would allow to debug the pas2js programs from within Lazarus. >> >> So, is my memory correct - is there a plan to support DAP ? > > Joost has implemented a package for that: > https://forum.lazarus.freepascal.org/index.php/topic,57737.0.html Great, thank you. Michael. From lazarus at kluug.net Mon Apr 25 10:08:56 2022 From: lazarus at kluug.net (Ondrej Pokorny) Date: Mon, 25 Apr 2022 10:08:56 +0200 Subject: [Lazarus] Lazarus is running but not responding. In-Reply-To: <20220422203811.12de0f35@limapholos> References: <2f3bf2b7-11a5-826d-acdb-76551fa75529@kluug.net> <338cf869-ff9f-ec7b-8750-eb74176b32a7@mfriebe.de> <20220422203811.12de0f35@limapholos> Message-ID: <0bcda1f9-4d2c-58a0-d5a4-ef1361a1cd75@kluug.net> On 22.04.2022 20:38, Mattias Gaertner via lazarus wrote: > On Fri, 22 Apr 2022 14:47:14 +0200 > Martin Frb via lazarus wrote: > >> [...] >> It's also very annoying, if you have a hanging IDE instance. It is >> impossible to start a 2nd instance to attach and debug. > lazarus.exe --force-new-instance Yes, it is annoying. I'll improve it. Ondrej