[Lazarus] Cross Codebot surface drawing examples

Anthony Walter sysrpl at gmail.com
Thu Mar 26 20:16:08 CET 2015


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-ide.org/pipermail/lazarus/attachments/20150326/6e5b49f0/attachment-0003.html>


More information about the Lazarus mailing list