Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2015-03

Cross Codebot surface drawing examples

19 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Anthony Walter

Here is a brief overview of some of custom rendering which can be done with Cross Codebot graphics interfaces. A few videos are embedded in the page below:

http://www.getlazarus.org/forums/viewtopic.php?f=18&t=35&p=150#p150

Here is a listing of the interfaces and their methods:

http://www.getlazarus.org/videos/crossgraphics/

If you're interested in testing the Cross Codebot package let me know and I can provide user level account access to my private git server. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150321/561ea4da/attachment.html>

Reply by email

JuuS
to Anthony Walter

Hi,

Recently while debugging Lazarus with root privileges I got the following warning:

(lazarus:5521): IBUS-WARNING **: The owner of
/home/juus/.config/ibus/bus is not root!

Q1: (lazarus:5521) has what meaning? Can I use this address to find where ibus is being called?

Q2: It appears lazarus is calling ibus explicitly?

I ask because I hate ibus. I habitually turn it off on starting my linux machine because it messes with edits and makes typing impossible (not just in lazarus). If I forget to do this I notice it right away, sigh, and go turn off ibus.

Anyone else having trouble with ibus and have maybe some information about it and/or how it relates to lazarus and/or linux system...

Thanks.

Reply by email

Marcos Douglas
to Anthony Walter: Here is a brief overview of some of custom rendering which can be done with Cross Codebot…
Anthony Walter wrote 9 lines
Here is a brief overview of some of custom rendering which can be done with Cross Codebot graphics interfaces. A few videos are embedded in the page below: http://www.getlazarus.org/forums/viewtopic.php?f=18&t=35&p=150#p150 Here is a listing of the interfaces and their methods: http://www.getlazarus.org/videos/crossgraphics/

Good job!

If you're interested in testing the Cross Codebot package let me know and I can provide user level account access to my private git server.

The repository below is outdated. When do you will update it? https://github.com/sysrpl/Codebot.Cross

Best regards,
Marcos Douglas

Reply by email

Anthony Walter
to Marcos Douglas

Yeah, that repository is going away. Eventually I'll move this new version to git hub, after a bit more internal testing. In the meanwhile I'm hosting a private git server and if anyone wants to test they can send me a request with their preferred username/password and I'll respond with the git server location.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150321/0d29ddc7/attachment.html>

Reply by email

Leonardo M. Ramé
to Anthony Walter: Here is a brief overview of some of custom rendering which can be done with Cross Codebot…

El 21/03/15 a las 01:44, Anthony Walter escibi?:

Show quoted text 13 lines
Here is a brief overview of some of custom rendering which can be done with Cross Codebot graphics interfaces. A few videos are embedded in the page below: http://www.getlazarus.org/forums/viewtopic.php?f=18&t=35&p=150#p150 Here is a listing of the interfaces and their methods: http://www.getlazarus.org/videos/crossgraphics/ If you're interested in testing the Cross Codebot package let me know and I can provide user level account access to my private git server.

Hi Anthony, looks nice!, congrats for the great work you are doing.

BTW, please, include some introduction about Cross Codebot, some people (like me) doesn't know what it is.

Reply by email

Fabio Luis Girardi
to Leonardo M. Ramé

Hi Anthony!!

I use BGRABitmap to draw non-rectangular controls (like polyline) using setshape. Can I use Codebots to do that?

2015-03-26 14:17 GMT-03:00 "Leonardo M. Ram?" :

Show quoted text 33 lines
El 21/03/15 a las 01:44, Anthony Walter escibi?: Here is a brief overview of some of custom rendering which can be done > with Cross Codebot graphics interfaces. A few videos are embedded in the > page below: > > http://www.getlazarus.org/forums/viewtopic.php?f=18&t=35&p=150#p150 > > Here is a listing of the interfaces and their methods: > > http://www.getlazarus.org/videos/crossgraphics/ > > If you're interested in testing the Cross Codebot package let me know > and I can provide user level account access to my private git server. > > Hi Anthony, looks nice!, congrats for the great work you are doing. BTW, please, include some introduction about Cross Codebot, some people (like me) doesn't know what it is. -- Leonardo M. Ram? http://leonardorame.blogspot.com -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150326/1a11ee3b/attachment-0001.html>

Reply by email

Anthony Walter
to Fabio Luis Girardi

Cross Codebot is a set a collection of Free Pascal cross platform routines, classes, components, and controls. It uses makes prodigious of the newer Free Pascal language features, including: generics, generic interfaces, class/record helpers, records with methods, and both implicit and explicit conversion methods.

Take the Cross Codebot "TRectI" record (an Integer based record) as an example.

http://www.getlazarus.org/records/trecti/

It can be used in any place you might normally use a TRect. It differs in that you can change the x,y location without changing the dimensions. Additionally it can be inflated, offset, moved, or centered on a TPointI. Additionally you can retrieve any of its corners as a TPointI, it can be hit tested/empty tested, and it can be implicitly converted to a TRectF record (a Float based record).

Types like TRectI are pervasive in Cross Codebot. Here is a partial listing of other types which make programing with Pascal a heck of a lot easier:

TRectF
TPointI
TPointF
TColorB
TColorF
THSL { Hue, Saturation, Lightness }
TArray<T>
TArrayList<T>
TNamedValues<T>
TCompare<T>
TConvert<T, TResult>
TDelegate<T> { See http://www.codebot.org/delphi/?doc=9568 } IDelegate<T>
ICloneable<T>
StringHelper = record helper for String
IntegerHelper = record helper for Integer
FloatHelper = record helper for Float
TDateTimeHelper = record helper for TDateTime
TColorHelper = record helper for TColor
TControlHelper = class helper for TControl

And so on.

As previously mentioned in this mailing list, my string handling routines are blazingly fast. My TextOfMobyDick.Replace('whale', 'moby', True) string replace extension method is more than 40x faster than the built in string replacement routines.

Cross Codebot is also a library which implements a new advanced hardware accelerated drawing API based on an newly defined ISurface interface. This interfaces greatly simplifies access to advanced drawing techiniques { See this link for their interfaces defined
http://www.getlazarus.org/videos/crossgraphics/ }

Cross Codebot is also a library with new set of new Socket networking classes, providing access to basic sockets with ssl an blocking/non-blocking modes, native http client implementation, native ftp client implementation, and native cloud storage client implementation (not currently rolled in entirely yet, but working in a side projects).

Cross Codebot is also a library which provides a new unified XML API based on an IDocument interface. The IFiler interface is particularly useful {See this link http://www.getlazarus.org/interfaces/xml/ }

And to wrap things up (I neglected to mention a lot like the animations units, geometry units, cryptography units, and more), cross Codebot is a port of my old, but popular until I removed it, Delphi control library which was located here: http://www.codebot.org/delphi/

The old library contains nearly 180 controls now, and I plan to slowly port many of them to this new Cross Codebot library (minus the ones which are hopelessly tied to Win32).

I hope this answers your question regarding what is Cross Codebot. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150326/6e5b49f0/attachment.html>

Reply by email

Anthony Walter
to Fabio Luis Girardi: Hi Anthony!! I use BGRABitmap to draw non-rectangular controls (like polyline) using…

Leonardo,

You can absolutely use Cross Codebot to make controls, in any shape you want. These types of controls should be graphic controls, and I provide a bass class name TRenderGraphicControl in the Codebot.Controls unit to help in this endeavor.

The key to making a control any shape with TRenderGraphicControl is to override the "protected procedure Render" method, and draw using the "protected property Surface: ISurface". Just doing your drawing in a non rectangular manner, for example:

procedure TYourControl.Renderl
begin
  Surface.Ellipse(ClientRect);
  Surface.Fill(NewBrush(clRed));
end;

And you control now appears as a nice anti-aliased red ellipse bound within the client area of your control. Obviously this is a trivial drawing example, but if you go to the Codebot Cross forums you can find examples of more complicated drawing. I regularly add new stock drawing functions to the Codebot.Graphics unit, along with control theming, so if you're interested you can reuse my some of stock routines to draw your custom controls, or reuse the theme drawing routines.

I hope this helps.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150326/dc6e8e96/attachment.html>

Reply by email

Fabio Luis Girardi
to Anthony Walter

2015-03-26 16:27 GMT-03:00 Anthony Walter :

Show quoted text 30 lines
Leonardo, You can absolutely use Cross Codebot to make controls, in any shape you want. These types of controls should be graphic controls, and I provide a bass class name TRenderGraphicControl in the Codebot.Controls unit to help in this endeavor. The key to making a control any shape with TRenderGraphicControl is to override the "protected procedure Render" method, and draw using the "protected property Surface: ISurface". Just doing your drawing in a non rectangular manner, for example: procedure TYourControl.Renderl begin Surface.Ellipse(ClientRect); Surface.Fill(NewBrush(clRed)); end; And you control now appears as a nice anti-aliased red ellipse bound within the client area of your control. Obviously this is a trivial drawing example, but if you go to the Codebot Cross forums you can find examples of more complicated drawing. I regularly add new stock drawing functions to the Codebot.Graphics unit, along with control theming, so if you're interested you can reuse my some of stock routines to draw your custom controls, or reuse the theme drawing routines. I hope this helps.

Awesome!

The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150326/bccc8d98/attachment.html>

Reply by email

Lukasz Sokol
to Anthony Walter: Cross Codebot is a set a collection of Free Pascal cross platform routines, classes,…
Anthony Walter wrote 6 lines
Cross Codebot is a set a collection of Free Pascal cross platform routines, classes, components, and controls. It uses makes prodigious of the newer Free Pascal language features, including: generics, generic interfaces, class/record helpers, records with methods, and both implicit and explicit conversion methods.

[trimmed rest of context, while interesting and great, has nothing to do with my question...]

How difficult would it be for you to try to collaborate with the Lazarus team to get this components/classes suite OFFICIALLY included ? With code, documentation and everything ?

I speak for myself only here, as a mere user...

getlazarus.org as a vantage point is ok-ish (*), for now...

but I think, you should offer this for inclusion either with the collection of other Lazarus and FPC components (Lazarus-CCR?), get in touch with the team, why not eventually become part of the team, towards even greater Lazarus and FPC ?

(pardon me if you had been making moves towards/like this, I am only reading lazarus-general and fpc-general through gmane interface, and I'm not subscribed to other places... )

This could also, in the true spirit of Open Source, make outside contributions to your suite easier.

(* just a bit of bitter in the bag of sweet:
apart from the download page /still/ forcing my Firefox on Linux to download a sh script the moment I click on the Download button at the top of any page... which I DO NOT LIKE and I said that before,
and I tried to submit a fix for it over the wiki engine TWICE, and still it's not fixed...)

el es

Reply by email

Giuliano Colla
to JuuS: Recently while debugging Lazarus with root privileges I got the following warning:…

ibus is an input method. If it's enabled (i.e. if the ibus-daemon is running) it will intercept anything coming from the keyboard, to any application. It's not Lazarus calling ibus explicitly: simply attempting to read user keyboard input gets ibus in the way.

The annoying thing is that if the daemon is running, the default shortcut to activate it is ctrl-space, which is also the Lazarus shortcut for command completion.

On RH related distros (Fedora, CentOs, etc.) ibus is not enabled by default, unless you select as a system language one which requires an input method (such as chinese). It would appear that other distros, such as Ubuntu do enable it by default, which is rather stupid, because when unnecessary you have it in the way.

If you manage to find how the ibus-daemon is started in your environment (/etc/init.d or some upstart service), you may turn it off permanently. As an alternative you may try with ibus-setup to change its activation shortcut from ctrl-space to some unused key combination (sort of ctrl-alt-Backspace or something like that) so that it doesn't interfere with Lazarus shortcuts.

Giuliano

Il 21/03/2015 14:02, JuuS ha scritto:

Show quoted text 29 lines
Hi, Recently while debugging Lazarus with root privileges I got the following warning: (lazarus:5521): IBUS-WARNING **: The owner of /home/juus/.config/ibus/bus is not root! Q1: (lazarus:5521) has what meaning? Can I use this address to find where ibus is being called? Q2: It appears lazarus is calling ibus explicitly? I ask because I hate ibus. I habitually turn it off on starting my linux machine because it messes with edits and makes typing impossible (not just in lazarus). If I forget to do this I notice it right away, sigh, and go turn off ibus. Anyone else having trouble with ibus and have maybe some information about it and/or how it relates to lazarus and/or linux system... Thanks. -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

JuuS
to Giuliano Colla
Giuliano Colla wrote 5 lines
ibus is an input method. If it's enabled (i.e. if the ibus-daemon is running) it will intercept anything coming from the keyboard, to any application. It's not Lazarus calling ibus explicitly: simply attempting to read user keyboard input gets ibus in the way.

Thanks Giuliano. This is what I had thought but wasn't sure.

I hesitate to remove it completely because it seems to be tied into multiple keyboards which I do use. I will search for its initialization and disable it because, on my system at least, it is a real pain.

I'm also a bit nonplussed that (K)Ubuntu put this on my system at all, and I wonder if they are going down the (Micros*ft) road to locking down the user.?!

Show quoted text 58 lines
The annoying thing is that if the daemon is running, the default shortcut to activate it is ctrl-space, which is also the Lazarus shortcut for command completion. On RH related distros (Fedora, CentOs, etc.) ibus is not enabled by default, unless you select as a system language one which requires an input method (such as chinese). It would appear that other distros, such as Ubuntu do enable it by default, which is rather stupid, because when unnecessary you have it in the way. If you manage to find how the ibus-daemon is started in your environment (/etc/init.d or some upstart service), you may turn it off permanently. As an alternative you may try with ibus-setup to change its activation shortcut from ctrl-space to some unused key combination (sort of ctrl-alt-Backspace or something like that) so that it doesn't interfere with Lazarus shortcuts. Giuliano Il 21/03/2015 14:02, JuuS ha scritto: > Hi, > > Recently while debugging Lazarus with root privileges I got the > following warning: > > (lazarus:5521): IBUS-WARNING **: The owner of > /home/juus/.config/ibus/bus is not root! > > Q1: (lazarus:5521) has what meaning? Can I use this address to find > where ibus is being called? > > Q2: It appears lazarus is calling ibus explicitly? > > I ask because I hate ibus. I habitually turn it off on starting my linux > machine because it messes with edits and makes typing impossible (not > just in lazarus). If I forget to do this I notice it right away, sigh, > and go turn off ibus. > > Anyone else having trouble with ibus and have maybe some information > about it and/or how it relates to lazarus and/or linux system... > > Thanks. > > > -- > _______________________________________________ > Lazarus mailing list > > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Anthony Walter
to Lukasz Sokol: [trimmed rest of context, while interesting and great, has nothing to do with my…

Lukasz,

Yes, I'd like to do that something like that sometime sooner rather than later. There are areas I think need to be improved in the IDE, especially the CodeTools, before that happens though. I've communicated with Mattias on these lists with and offered to help improve CodeTools, but he's still busy trying to get Lazarus 1.4 done.

Here are some of the areas of CodeTools needing improvements with which are particularly painful given the language features used by Cross Codebot.

1) Class and record helper methods do not show up in the with code insight. Trying to say MyString.Replace('a', 'b') and 'This is a message'.Replace('a', 'b') both cause code tools to stop highlight the line errors if you try to use method completion.

2) Class and record helper methods need code navigation support. That is, if you hold control and mouse over Replace, it ought to highlight in blue and be underlined.

3) Using generics with interfaces inheritance causes the editor to jump to the what it sees as errors in other units. For example IBitmap = interface(ICloneable<IBitmap>) causes the editor to jump to the Codebot.Graphics.Types unit and highlight IBitmap whenever you type MyBitmap and dot.

4) Dotted namespace like Codebot.Graphics do not provide namespace insight when you type Codebot and dot. Actually it does provide a list of unit names, but they are pulled from the global list of units rather than restricted to the units beginning with the Codebot identifier.

5) Using implementations of dotted namespace file in include files can cause serious problems. For example in Codebot.Graphics I used to have the defined of the types, and in the implementation section I'd have:

uses
  {$ifdef windows}Codebot.Graphics.Windows{endif}
  {$ifdef linux}Codebot.Graphics.Linux{$endif};

This problem still persist with Bare Game. See the 2nd bullet on the know issues page: http://www.baregame.org/#topic_known_issues

The problem is so bad I had to create workaround. I've restructured unit names such that include files in dotted units never begin with the same dotted identifiers as the units they are included from.

Mattias has done a fine job so far, but I think these areas of CodeTools (especially points 1, 2, and 4) will fixing. I've tried to make fixes to CodeTools before and got really confused when trying to follow along with it, so until I get more familiar with it or someone fixes these problems, the problems I outlined above are going to persist. -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20150327/0691b753/attachment.html>

Reply by email

Giuliano Colla
to JuuS: Thanks Giuliano. This is what I had thought but wasn't sure. I hesitate to remove it…

Il 27/03/2015 13:36, JuuS ha scritto:

Show quoted text 5 lines
Thanks Giuliano. This is what I had thought but wasn't sure. I hesitate to remove it completely because it seems to be tied into multiple keyboards which I do use. I will search for its initialization and disable it because, on my system at least, it is a real pain.

If you don't actually *use* it (I mean activate it by its shortcut) to enter chinese ideograms or similar things which do require an input method, and you just want to switch from one keyboard layout to another, you may safely disable/remove it without any side effect.

I'm also a bit nonplussed that (K)Ubuntu put this on my system at all, and I wonder if they are going down the (Micros*ft) road to locking down the user.?!

Yes, it would appear that Microsoft is still a reference to system packagers, and unfortunately also to desktop designers. A lot of stupid/crazy stuff Microsoft style things are creeping into Linux desktops, recently...

Giuliano

Reply by email

JuuS
to Giuliano Colla
Giuliano Colla wrote 11 lines
Il 27/03/2015 13:36, JuuS ha scritto: > Thanks Giuliano. This is what I had thought but wasn't sure. > > I hesitate to remove it completely because it seems to be tied into > multiple keyboards which I do use. I will search for its initialization > and disable it because, on my system at least, it is a real pain. If you don't actually *use* it (I mean activate it by its shortcut) to enter chinese ideograms or similar things which do require an input method, and you just want to switch from one keyboard layout to another, you may safely disable/remove it without any side effect.

Thanks for that Giuliano. I've done INet searches researching this. There are a number (read: a lot) of disgruntled people regarding ibus. But I could never find a straight answer from researching if it was "safe" to completely remove it without messing up input system. I think this fear is a holdover from some of my MS experiences.

Like this recent thread about Ibus and Lazarus. As soon as I read it I recognized the problem. How many other people are looking at Linux and finding edits that they can't type in and tearing their hair out?? Bad mojo for Ubuntu, oder?

Show quoted text 20 lines
> I'm also a bit nonplussed that (K)Ubuntu put this on my system at all, > and I wonder if they are going down the (Micros*ft) road to locking down > the user.?! Yes, it would appear that Microsoft is still a reference to system packagers, and unfortunately also to desktop designers. A lot of stupid/crazy stuff Microsoft style things are creeping into Linux desktops, recently... Giuliano -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Giuliano Colla
to JuuS

Il 27/03/2015 20:48, JuuS ha scritto:

Show quoted text 5 lines
Thanks for that Giuliano. I've done INet searches researching this. There are a number (read: a lot) of disgruntled people regarding ibus. But I could never find a straight answer from researching if it was "safe" to completely remove it without messing up input system. I think this fear is a holdover from some of my MS experiences.

If you're using Kde-Plasma Desktop you should find a Settings->Input Method menu entry: unchecking the "enable" box should be enough to disable Ibus. At least that's what I find on my desktop.

Giuliano

Giuliano Colla Project planning question: when it's 90% done, are we halfway or not yet?

Reply by email

JuuS
to Giuliano Colla
Giuliano Colla wrote 9 lines
Il 27/03/2015 20:48, JuuS ha scritto: > Thanks for that Giuliano. I've done INet searches researching this. > There are a number (read: a lot) of disgruntled people regarding ibus. > But I could never find a straight answer from researching if it was > "safe" to completely remove it without messing up input system. I think > this fear is a holdover from some of my MS experiences. If you're using Kde-Plasma Desktop you should find a Settings->Input Method menu entry: unchecking the "enable" box should be enough to disable Ibus. At least that's what I find on my desktop.

Thanks Giuliano, I'm on Kubuntu 14.04 with, AFAIK, the default desktop. I don't have that choice in my settings. On my system ibus is very well hidden (i've looked in all the most likely places) which is why it is so frustrating. I'll pull through ;-)

Giuliano

Reply by email

JuuS
to Giuliano Colla
Giuliano Colla wrote 34 lines
Il 28/03/2015 10:29, JuuS ha scritto: > Thanks Giuliano, I'm on Kubuntu 14.04 with, AFAIK, the default desktop. > I don't have that choice in my settings. On my system ibus is very well > hidden (i've looked in all the most likely places) which is why it is so > frustrating. I'll pull through ;-) Kubuntu stands for K(de)Ubuntu, meaning that your desktop is KDE. It would appear that the iBus on Ubuntu 14.04 is rather broken: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1284635 Possible solutions: 1) In Ubuntu 14.04 you should have a System settings->language support->Keyboard input method which you should set to =none. 2) You should have an icon in your system tray showing the Ibus: But as they followed the idiotic Micro$oft way, it may be hidden, and accessible via the almost invisible up arrow, showing the hidden items. If not, you can set up Ibus to show the icon by invoking "ibus-setup" from command line, and checking the "Show on system tray" (or something like that) checkbox. Once you have the icon, you may right click on it and select "exit". Or take the brute-force approach and from command line "killall ibus-daemon" In both cases, you'll get rid of ibus just for the current session.

Yes, that's how I'm dealing with it now. If I forget to "ibus exit" I find out as soon as I try typing in almost any edit field. And yes, removal is for session only.

Show quoted text 13 lines
Once you see that deactivating doesn't remove any function you need, to deactivate it permanently. Again two solutions: 1) you might attempt to find out which start-up script launches it, and edit it. 2) take the brute-force approach: sudo apt-get remove ibus

You are right. I need to get off the horse and get rid of ibus. Exiting ibus each day has no adverse effects...only good ones! So I think brute force is ok. I saw that the other person who had problems did apt-get remove and he didn't report any adverse effects.

The insidiousness of this is far reaching IMO. When I first encountered the problem (I was investigating gnuCash software) I thought wow...this gnuCash is terrible. Before giving up on it I did some INet research and found the "ibus" effect.

How many people are out there with this problem and not aware of the true cause?? This impacts all programmers when their programs are perceived to be faulty by unsuspecting ibus victims.

Thanks for all the feedback Giuliano.

Show quoted text 17 lines
Giuliano -- Giuliano Colla Project planning question: when it's 90% done, are we halfway or not yet? -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email