Software

Bugtracker | Bugreports & featurerequests via mail

Units and classes for Free Pascal/Lazarus/LCL

The units and classes you find here are free in the meaning of the four freedoms of free software.
Free Pascal/Lazarus/LCL units and classes are in active development (whenever I add new functions or do some bugfixing, it'll be published here). I'll try to add new functions platform independent, but I'll not test on Windows nor care for it. My focus lays on Lazarus@Linux.

TIniClass

Description: Inherits TMemIniFile and adds a pathfunction (save location for the inifile) and also encapsulates the write&read-functions into an overload-concept.
Example for using in Apptemplate.
Lazarus/LCL
IDE/Compiler Lazarus 2.2.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 3.1.0.39
Download Lazarus Version (7z-Format, 3.3KiByte)

TLanguage

Description: Class for multi-language-support in applications (requires VerInfo).
Code-example additional to the documentation in "TLanguage_Class.pas" also in Apptemplate
IDE/Compiler Lazarus 2.2.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 1.10.1.43
Download Lazarus Version (7z-Format, 3.3KiByte)

VerInfo

Documentation: in header
Description: Class, to extract version-informations from the program-file:
  • ProductVersion
  • FileVersion
  • ProductName
  • Comments
  • CompanyName
  • FileDescription
  • InternalName
  • LegalCopyright
  • LegalTrademarks
  • OriginalFilename
The class VersionInfo_Class was implemented with friendly approval and the additions I made with my VerInfo-Unit was published also there.
IDE/Compiler Lazarus 2.2.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 0.9.1.19
Download Lazarus Version (7z-Format, 3.7KiByte)

Apptemplate

Bild der Apptemplate-GUI

Description

Template I personally use for programs. Includes basic implementation of programmoptions (TOptions), the implementation of TIniClass, TLanguage, SWF and VerInfo. This serves as an example for the listed classes and functions.

Features

  • Multi-language-support
  • Open source
  • You save alot of time reading the featurelist
  • Ready to ship as early-access-game for 9 year olds

Source

LanguageFree Pascal
FrameworkLCL
Widgetsetlike Lazarus
IDE/CompilerLazarus 2.2.6, fpc 3.2.2

Download

BranchVersionDownloads
Release/stable0.5.17.33 Source (166KiByte)

Buuugs!

Main-window with bugs, featurerequests and used units of Buuugs! Bug-window with bug's details of Buuugs! More screenshots

Description

Standalone, portable Bugtracker for Linux and Windows able to manage featurerequests and versions. Runs without lokal webserver (or something like that).

Features

  • Languagefilesupport
  • Open source
  • Manages bugs, units, classes, GUIs, versions and featurerequests
  • Basic RTF-support for bugdescriptions and bugsolutions

Source

LanguageFree Pascal
FrameworkLCL
WidgetsetGTK2
IDE/CompilerLazarus 2.2.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
Release/stable2.2.0.290 Source (366KiByte)
Binary (Linux) (2.2MiByte)
Binary (Linux, QT5) (2.0MiByte)
Binary (Windows) (1.4MiByte)
Nightly/development2.2.1.298 Source (368KiByte)
Binary (Linux, GTK2) (2.2MiByte)
Binary (Linux, QT5) (2.0MiByte)
Binary (Windows) (1.4MiByte)
Tasks done: 0 testing: 1 pending: 0
Stadium: beta
overall done: 99 %

Changelog:

2.2
  • [NEW] QT5-support (in this case TMemo will be used instead of TRichMemo)
  • [NEW] Featurerequests » Deadline-date
  • [NEW] Define bugs+featurerequest priority/severity/percent seperator
  • [NEW] Don't load unnecessary features, but future ones
  • [NEW] Featurerequests » Organizational flag
  • [NEW] Defaultvalue of DateFields is now 0 (to be compatible with the default of TDate*)
  • [NEW] Warning if windows're open on db-path-change
  • [NEW] TBugform: Insert version from program's version
  • [NEW] DB-in-use-Dialog
  • [NEW] Overwriteable ChangelogAdded + ChangelogFixed in tAutoChangelogReplace
  • [UPDATED] iniClass 3.1.0.39
  • [UPDATED] TLanguageBase_class 0.16.0.38
  • [UPDATED] TLanguage_Class 1.9.0.41
  • [UPDATED] Versionfunctions_unit 0.9.1.19
  • [UPDATED] Specialfunctions 0.8.0.54
  • [UPDATED] TXWindowList_class 0.4.0.5
  • [FIXED] B_227 Form's LastUpdate*Buttons got no hint
  • [FIXED] B_230 Changelog includes wrong version
  • [FIXED] B_232 Saved feature appears on descendant's tree
  • [FIXED] Verfuncs_236 CompareVersions doesn't pass IgnoreBuild and therefore returns always -2 on versions without build
  • [FIXED] B_239 Bugform: Connection's hint displays TLanguage-Default-Error on edit-mode
  • [FIXED] B_242 Options: Attachment-Path label cutoff
  • [FIXED] ALL_265 Language-change needs restart
  • [FIXED] B_266 GetVersionFromFile() rarely throws "List index out of bounds"-exception
  • Time spent: 26,25h

Linproman - Linux Process Manager

Linproman's main window showing processes in a treeview Linproman's shiny systeminfos showing a summary of cpu, ram and I/O-use More screenshots

Description

A process manager for Linux desktop environments (GTK2).

Features

  • Languagefilesupport
  • Open source
  • Shows running processes and details (Memory usage, number of threads, state and more)
  • Easy kill, pause, resume, select CPU-affinity and change nice (also I/O priority) of processes
  • Shows usage of CPU, memory, HDD, and networking plus details of battery and GPU with graphs and numbers
  • Usage of CPU, RAM and SWAP, plus IO-activity as trayicon
  • Eventsystem to run scripts on different, combineable process- and systemevents (startup, running, dying, CPU/RAM/SWAP/network/input-output-utilization)
Documentation about Linproman's taskfile-format / eventsystem to run scripts

Supported Kernels

In theory (see tindexcache_class.pas for details) Linproman is compatible to a wide spectrum of Kernelversions, but due limit resources I will only test the ones installed on my computers (usally the latest LTS-versions).
Main sequencePast main sequenceDefinely not
Program is developed on these. Program was working on these in the past, but who knows if it still does? Several battlestations were destroyed during testing, so save your time and don't try again.
6.5
6.1 (LTS)
6.0, 6.2, 6.3, 6.4
5.4 (LTS), 5.6, 5.10 (LTS), 5.15 (LTS), 5.19
4.19 (LTS), 4.14 (LTS), 4.9 (LTS), 4.8, 4.4 (LTS), 4.2
3.19, 3.16
4.13
3.13
2.6

Source

LanguageFree Pascal
FrameworkLCL
WidgetsetGTK2
IDE/CompilerLazarus 2.2.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
Release/stable1.8.0.547 Source (283KiByte)
Binary GTK2 (1.9MiByte)
Binary QT5 (1.8MiByte)
Nightly/development1.9.0.549 Source (285KiByte)
Binary GTK2 (1.9MiByte)
Binary QT5 (1.8MiByte)
Tasks done: 0 testing: 0 pending: 10
Stadium: alpha
overall done: 18.1 %

Changelog:

1.8
  • [OVERHAULED] TProcessform»Threads (+ additional details)
  • [OVERHAULED] TProcessform»Mounts
  • [OVERHAULED] TProcessform»Maps
  • [NEW] Extented process-name for python & wrapper(XFCE)
  • [NEW] Mainform: Write tree's headers only when changed
  • [NEW] Language-Support for Mainform's tree
  • [NEW] Method of getting icons
  • [NEW] Autocollapse kthreadd's node
  • [NEW] Don't update collapsed tree-nodes
  • [NEW] On QT all LEdits manage their background on their own (as intended)
  • [UPDATED] TLanguageBase_class 0.16.1.39
  • [UPDATED] TLanguage_Class 1.10.1.43
  • [UPDATED] Specialfunctions 0.9.0.55
  • [UPDATED] TXWindowList_class 0.4.0.5
  • [UPDATED] BGRABitmapPack 11.5.4.0
  • [UPDATED] bglcontrols 1.2.0.0
  • [UPDATED] BGRAControls 7.7.0.0
  • [FIXED] L_207 Laz.VirtualTree SIGSEGV, line 28428
  • [FIXED] L_247 Indexcache fails for io on missing file-permissions
  • [FIXED] L_217b Incomplete fixes + also new issue for top
  • [FIXED] L_250 Processform: Autogroup_LEdit too small
  • [FIXED] L_251_QT5+6 Processform: LEdit-Background-color creates unshiny look
  • [FIXED] L_253 Processform: Memory»Swaped "Nan %"
  • [FIXED] L_254 Processform opens slow due uncached use of x-icon
  • [FIXED] L_256 Processes with changed user-ID staying in wrong view
  • [FIXED] L_258 Processform: Some app icons are ugly (for example Xnview)
  • [FIXED] L_259_QT5+6 GetIconForProcess() Doesn't fetch all icons due GTK-dependency
  • [FIXED] TXWindowList_class_260 Icons by X look hideous (for example JDownloader)
  • [FIXED] L_262 No amdgpus found with kernel 6.5
  • [FIXED] L_263 Trayicon-stats: Div by 0 if no GPUs or BATs found
  • [FIXED] L_264 Shiny: Gibberish on nvgpu's name
  • [FIXED] ALL_265 Language-change needs restart
  • [FIXED] L_268 Optionform: Unshinyness
  • [FIXED] L_270_QT5+6 Shiny » CPU Details: Clipping
  • [FIXED] L_273 Shiny » GPU Linkspeed text-cutoff
  • [FIXED] L_275_Qt5+6 Tasks not showing up in trayicon's menu
  • [FIXED] TLanguageBase_class_277 SetVirtualStringTreesColumns needs adaption for Laz 3.0
  • [FIXED] L_282_QT5 Options: clipping
  • Time spent: 74,35h

QEZZ (Lines of code counter)

Description

Commandlinetool for counting lines of code, comments and mixed lines of all files in a directory.

Features

  • Open source
  • Just pass a directory and get the lines of code (and stuff) of all the files found (summary and for each file individually)
  • Already supports C/C++/C#, Java, Delphi/Pascal and VB/VBA/VB .net
  • Add more languages by simply editing a textfile
  • Collect+count of kernel-5.19's *.c+*.h files took: 32 seconds on an old Ryzen 1 (55.334 files 30.393.126 lines total)

Source

LanguageFree Pascal
IDE/CompilerLazarus 2.2.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
Release/stable0.1.0.1 Source ( 22KiByte)
Binary (Linux) (106KiByte)
Binary (Windows) (314KiByte)
Nightly/development0.1.0.1 Source ( 22KiByte)
Binary (Linux) (106KiByte)
Binary (Windows) (314KiByte)
Tasks done: 2 testing: 0 pending: 0
Stadium: stable/RC
overall done: 100 %

Changelog:

0.1
  • Added: basic implementation
  • Updated: Versionfunctions_unit 0.8.0.17
  • Time spent: 6.37h