Oct 312017
 

Note to self: Delphi’s Advanced Records are also available in Lazarus / Free Pascal, but only if they have been explicitly enabled with the modeswitch compiler directive:

unit SomeUnit;

{$mode objfpc}{$H+}{$modeswitch advancedrecords}

interface

type
  TSomeRecord = record
    FSomeField: integer;
    function SomeMethod: integer;
  end;

implementation

function TSomeRecord.SomeMethod: integer;
begin
  Result := FSomeField;
end;

end.

If advancedrecords is not enabled this won’t compile:

Fatal: Syntax error: “END” expected but “FUNCTION” found.
Jul 022017
 

dzFeedReader started as a proof of concept, but became actually a usable tool. So, why not make a release available to others?

There you go:
dzFeedReader 1.0.0 is available from SourceForge.

dzFeedReader is a program that can display rss feeds from websites in RSS 1.0, RSS 2.0 and Atom 1.0 format. Its UI is similar to that of Netvibes. It started as a Delphi program but I recently switched it to Lazarus just to see whether that development environment has become any better. Turned out Lazarus is quite usable nowadays.

May 142017
 

I ported my dzFeedReader tool which was originally written in Delphi 2009 to Lazarus. It’s still a Windows only program though.

This is more a proof of concept than a useful program, but it works. I also switched it from the SimpleRSS library to my own units so it is now under the MPL like all my other projects rather than the GPL.

May 132017
 

Some notes on Lazarus:

The Lazarus Wiki says on the topic of Internet Tools, that the following should load a web page:

uses simpleinternet;
..
str := retrieve('http://www.google.de');

Unfortunately it fails to mention (or if it is mentioned, I overlooked it), that you first need to download and install the Internet Tools.

After downloading them and adding three directories to the search path, it still failed to compile because it tried to use FLRE which is not part of the standard installation. To use the standard regular expression engine that comes with Lazarus, you need to add the conditional define USE_SOROKINS_REGEX.

Conditional defines for a project are set in Project Options -> Compiler Options -> Custom Options. Press the Defines button, enter the conditional define and press the Add button.

That finally got my simple test program to compile.

%d bloggers like this: