Lazarus 2.0 RC2 released

The Lazarus team announced the second release candidate of Lazarus 2.0. IDE changes include high-DPI IDE improvements and retina support on Cocoa, Delphi attributes, pas2js support, improved identifier completion, and more.

Download: https://sourceforge.net/projects/lazarus/files/

Release notes: http://wiki.freepascal.org/Lazarus_2.0.0_release_notes

Lazarus is an open-source development system that builds on the Free Pascal compiler by adding an integrated development environment (IDE) that includes a syntax-highlighting code editor and visual form designer, as well as a component library that’s highly compatible with Delphi’s Visual Component Library (VCL).

Advertisements

Habari Client libraries release 2018.10

Habarisoft released the 2018.10 version of its Object Pascal STOMP client libraries for application integration with open source message brokers (Apache ActiveMQ, Artemis, OpenMQ and RabbitMQ).

New in this release

  • new simple API, based on interfaces MQContext, MQProducer and MQConsumer (the old API still may be used)

Example:

procedure TNewApiTests.TestSendMessage;
var
  Factory: IConnectionFactory;
  Context: IMQContext;
  Destination: IQueue;
  Producer: IMQProducer;
  Consumer: IMQConsumer;
  TextMessage: ITextMessage;
begin
  Factory := TBTConnectionFactory.Create;

  Context := Factory.CreateContext;
  try
    Destination := Context.CreateQueue('example_queue');

    Producer := Context.CreateProducer;
    Producer.Send(Destination, 'Hello World');

    Consumer := Context.CreateConsumer(Destination);
    TextMessage := Consumer.Receive(2500) as ITextMessage;

    CheckEquals('Hello World', TextMessage.Text);
  finally
    Context.Close;
  end;
end;
  • a new connection URL parameter “message.subscription_check=false” allows to subscribe from multiple destinations with a single consumer, by disabling a client-side check subscription id
  • removed support for asynchronous message receive

Resources

Home page: https://www.habarisoft.com/index.html

Feature matrix: https://www.habarisoft.com/index.html#feature_matrix

FAQ: https://www.habarisoft.com/index.html#faq

Versions

The 2018.08 release includes

 

Upgrade discount

For existing users, upgrade discounts are available.

About Habari Client libraries

habari_logo_2016Habari Client libraries enable Object Pascal applications to take advantage of message broker / message queue technology – which is distributed, loosely coupled, reliable and asynchronous – to build integrated systems, using peer-to-peer and publish-subscribe communication models.

First milestone of ScroogeXHTML for the Java™ platform 8.0

Version 8.0.MS1 of the RTF (Rich Text) to HTML5 and XHTML converter library ScroogeXHTML for the Java™ platform is now available for registered users.

New features in 8.0.MS1

  • compiles with Oracle JDK 8 and Oracle OpenJDK 11
  • JUnit tests pass with Oracle JDK 8 and Oracle OpenJDK 11

Other changes in 8.0.MS1:

  • moved package to com.scroogexhtml
  • fixed Spotbugs warnings and JavaDoc errors
  • removed deprecated methods getISO8601DateTime, getStyleSheetLink, setCompatibleDefaults, useListTable, metaDate

Download link

https://www.habarisoft.com/scroogexhtml_j/download/snapshot/ScroogeXHTML-jar-8.0.MS1.install.jar (only for registered users)

API documentation

https://www.habarisoft.com/scroogexhtml_j/8.0.MS1/docs/api/index.html (note: JavaDoc generated with JDK 11 includes a search feature and no HTML frames anymore)

About

ScroogeXHTML for the Java platform is a library which can convert a subset of the Rich Text Format (RTF) standard to HTML5 and XHTML, as a standalone document, or as a fragment which can be used in other documents. It supports RTF features such as hyperlinks, field results, simple tables, picture data extraction, and embeds PNG and JPG pictures as data URI. It is easy to use, and requires no external runtime libraries except the SLF4J logging facade.

Other platforms

ScroogeXHTML is also available for Delphi 2009+ and Free Pascal.

scrooge_portrait_logo_2016

I-Pascal v1.95 IDE plugin released

Version 1.95 of I-Pascal, an open source Object Pascal IDE based on the IntelliJ IDEA platform, has been released. It covers code analysis and tools, debugging, and VCS integration for Delphi and Lazarus projects.

Changes in v1.95

  • Errors annotation is now really fast (~100 times faster)
  • Delphi Community Edition RTL sources compatibility. Use sources by default.
  • Show fully qualified identifiers in WITH blocks
  • Show identifier’s one-line documentation on mouse hover
  • Retrieve documentation for named elements from comments (HTML allowed)
  • Respect var and out parameters when calculating read/write access to identifier under cursor
  • Unused local identifier inspection now checks for unused local routines
  • Respect code folding settings

Changelog: http://siberika.com/whatsnew.htm

Installation: http://siberika.com/install.htm

Code tools example: search unit quickfix

 

 

 

How not to re-raise an exception in Delphi

TL;DR

Use raise; instead of  raise E;

Long version

In this code, when an exception caused by the ProduceMessage method got caught by the try … except construct and reached the Break statement in the Exception handler, an EAccesViolation occured:


procedure TProducerLoop.Run;
begin
  while True do
  begin
    Connect;

    while True do
    begin
      try
        ProduceOneMessage;
      except
        on E: Exception do
        begin
          Break; // app crashes here
        end;
      end;
    end;

    Disconnect;
  end;
end;

After many attempts to find the reason of the EAccessViolation, I found that it was caused by an raise E; instead of an raise; located in a method which got called by ProduceOneMessage. I removed the E and the EAccessViolation no longer occured.


function TBTMQProducer.InternalSend(const AMessage: IMessage;
  const Destination: IDestination;
  const CompletionListener: ICompletionListener): IMQProducer;
begin
  try
    Producer.Send(Destination, AMessage);
    CompletionListener.OnMessage(AMessage);
  except
    on E: Exception do
    begin
      CompletionListener.OnException(AMessage, E);
      raise E;
    end;
  end;
  
  Result := Self;
end;

References:

https://marc.durdin.net/2012/10/how-not-to-re-raise-an-exception-in-delphi/

https://zerolith.com/delphi/on-delphi-exception-raising-re-raising-and-try-except-blocks.html

Lazarus 2.0 RC1 released

The Lazarus team published the first released candidate of Lazarus 2.0. IDE changes include high-DPI IDE improvements and retina support on Cocoa, Delphi attributes, pas2js support, improved identifier completion, and more.

Download: https://sourceforge.net/projects/lazarus/files/

Release notes: http://wiki.freepascal.org/Lazarus_2.0.0_release_notes

Lazarus is an open-source development system that builds on the Free Pascal compiler by adding an integrated development environment (IDE) that includes a syntax-highlighting code editor and visual form designer, as well as a component library that’s highly compatible with Delphi’s Visual Component Library (VCL).

Habari Client libraries release 2018.08

Habarisoft released the 2018.08 version of its Object Pascal STOMP client libraries for application integration with open source message brokers (Apache ActiveMQ, Artemis, OpenMQ and RabbitMQ).

Resources

Home page: https://www.habarisoft.com/index.html

Feature matrix: https://www.habarisoft.com/index.html#feature_matrix

About Habari Client libraries

habari_logo_2016Habari Client libraries enable Object Pascal applications to take advantage of message broker / message queue technology – which is distributed, loosely coupled, reliable and asynchronous – to build integrated systems, using peer-to-peer and publish-subscribe communication models.

ScroogeXHTML for Delphi 7.0 released

Version 7.0 of ScroogeXHTML for Delphi changes the default output document type to HTML5, added the TSxOptionsHead.MetaViewport property, removes unneccessary line breaks after <span style=, and contains minor maintenance changes

Resources

ScroogeXHTML is also available for the Java platform.

scrooge_portrait_logo_2016

 

 

ScroogeXHTML for the Java™ platform 7.3 released

Habarisoft released version 7.3 of its RTF (Rich Text Format) to HTML5 and XHTML converter library, ScroogeXHTML for the Java™ platform. ScroogeXHTML is also available for Delphi 2009+ and Free Pascal. It converts a subset of RTF to HTML5 and XHTML, either as a complete document or as a fragment which may be embedded (inserted) in other documents. Online demo | ScroogeXHTML blog…

scrooge_portrait_logo_2016

Lazarus 1.8.4 / Free Pascal 3.0.4

The Lazarus team announced the release of Lazarus 1.8.4. The release is available for download at the SourceForge download page. Choose your CPU, OS, distro and then the “Lazarus 1.8.4” directory. As indicated in the release announcement, the Windows release was built with FPC 3.0.4 final svn version.

Lazarus is an open-source development system that builds on the Free Pascal compiler by adding an integrated development environment (IDE) that includes a syntax-highlighting code editor and visual form designer, as well as a component library that’s highly compatible with Delphi’s Visual Component Library (VCL).