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 3.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 3.3.0.42
Download Lazarus Version (7z-Format, 5.0KiByte)

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 3.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 1.10.2.44
Download Lazarus Version (7z-Format, 5.0KiByte)

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 3.6, fpc 3.2.2
Language Free Pascal
OS platform independent (tested on Linux)
Version 0.10.0.20
Download Lazarus Version (7z-Format, 7.1KiByte)

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 3.6, fpc 3.2.2

Download

BranchVersionDownloads
stable0.8.2.39 Source (176KiByte)

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, QT6
IDE/CompilerLazarus 3.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
stable2.5.0.394 Source (393KiByte)
Binary (Linux) (2.5MiByte)
Binary (Linux, QT6) (2.5MiByte)
Binary (Windows) (1.8MiByte)
development2.5.1.401 Source (394KiByte)
Binary (Linux, GTK2) (2.5MiByte)
Binary (Linux, QT6) (2.4MiByte)
Binary (Windows) (1.7MiByte)
No new features implemented nor planned » bugfix-release, see Bugtracker for details!

Changelog:

  • [NEW] Support for Laz 3.6
  • [NEW] + 30~45 % performance on stacked bug-operations
  • [NEW] + 100 % performance for html-export
  • [NEW] Releaseform
  • [NEW] Allow DirectInput for DateFields (adjustable)
  • [NEW] Bugform: Link UCs+Programs (by pProgsInformationNode) to bugs via drag&drop
  • [NEW] Create new program using current one as template
  • [NEW] Bugform: Insert current version of selected UC/prog
  • [NEW] Bugform: Delete link for Versions_StringGrid
  • [NEW] Bugform: Version_StringGrid resizes with form
  • [UPDATED] iniClass 3.3.0.42
  • [UPDATED] TLanguageBase_class 0.17.0.41
  • [UPDATED] TLanguage_Class 1.10.2.44
  • [UPDATED] Versioninfo_class 0.1.2.3
  • [UPDATED] Versionfunctions_unit 0.10.0.20
  • [UPDATED] BGRABitmapPack 11.6.2.0
  • [UPDATED] StringGridFunctions_Unit 0.3.0.4
  • [UPDATED] TIntegerList_class 1.2.0.7
  • [UPDATED] AdvFree_Unit 0.3.0.4
  • [UPDATED] LCL 3.6.0.0
  • [UPDATED] sf_tachart_unit 0.2.0.3
  • [UPDATED] sf_systheme_unit 0.2.0.4
  • [UPDATED] sf_processfunctions 0.1.0.1
  • [FIXED] B_303 KMemo-PopupMenu: No icons
  • [FIXED] B_317 CreateChangelog() includes unfinished bugfixes if >1 unitclass-connections
  • [FIXED] B_319 KMemos' search doesn't take kindly to unicode around here
  • [FIXED] B_322 Saving changes position of unsorted elements
  • [FIXED] B_323 Saving changes position of hidden/orga featurerequest
  • [FIXED] B_325 L_321 doesn't show up on stable
  • [FIXED] BUILDSCRIPTS_329 debugform_gui.lfm not included
  • [FIXED] B_332 ListUnits() fails to list UCs if fKind=-1
  • [FIXED] B_333 [DEBUG ONLY] Testcases fail if progversion=0.0.0.0
  • [FIXED] B_339 Attachments are not deleted
  • [FIXED] B_344 AccessViolation on exit if two instances running
  • [FIXED] B_348 Closed bugs not counted
  • [FIXED] B_349 Attachments: Delete nothing results in meaningless question
  • [FIXED] B_353 Copying a feature creates an "evil twin" until Save()
  • [FIXED] B_354 Migrate not working for bugs connected to ucs
  • [FIXED] B_356 TLOCForm: Inf+
  • [FIXED] LCL_357 Form's bottom flickering on show with gtk2 and some windowmanagers (e.g. xfwm4)
  • [FIXED] B_358 Htmloutput puts some rubbish to fixed ucs
  • [FIXED] B_360 Programform's Programs_ComboBox leaks memory
  • [FIXED] B_361 *_class:Load() doesn't reload on parameter -1
  • [FIXED] B_362_GTK2 Autosize ruins everything
  • [FIXED] B_364 UC-form's missing min-width+height
  • [FIXED] B_365 TSearchform's InstantSearch_CheckBox has a (barely visible) caption but shouldn't
  • [FIXED] B_366 TUCForm's version: No langstring
  • [FIXED] B_377 Bugform: "Insert version..." error-message for invalid versionfile is kind of unhelpful
  • [FIXED] B_381 Bugform doesn't invalidate version_occured = version_fixed or version_occured > version_fixed
  • [FIXED] B_382 Optionsform: Copy+Pasted db-path-change is ignored
  • [FIXED] B_383 Bugform: Missing validy-check for col[3]
  • [FIXED] B_384 Bugform's versions are reverted if Links' + or - is used before saving
  • [FIXED] B_386 Bugform: "List index (-1) out of bounds." when version added to empty connections-list
  • [FIXED] B_387 Memleaks due B_309+B_317 fixes
  • [FIXED] B_388 Potential memleak in SpecialFunctionsBuuugs_Unit::SortBuglist4Export2HTMLFile()
  • [FIXED] B_389 Searchform memleaks
  • [FIXED] B_390_WIN No unitclass-icons in windows
  • [FIXED] B_392 Program+Bug+Featureform: ComboBox.ItemHeight (in some circumstances) WAY too big
  • Time spent: 59,14h

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, QT6).

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.12 (LTS)
6.6 (LTS)
6.0, 6.1 (LTS), 6.2, 6.3, 6.4, 6.5, 6.7, 6.8, 6.9, 6.10, 6.11
5.4 (LTS), 5.6, 5.10 (LTS), 5.15 (LTS), 5.19
4.2, 4.4 (LTS), 4.8, 4.9 (LTS), 4.14 (LTS), 4.19 (LTS)
3.16, 3.19
4.13
3.13
2.6

Source

LanguageFree Pascal
FrameworkLCL
WidgetsetGTK2, QT6
IDE/CompilerLazarus 3.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
stable1.14.0.647 Source (313KiByte)
Binary GTK2 (1.9MiByte)
Binary QT6 (1.9MiByte)
development1.15.0.648 Source (314KiByte)
Binary GTK2 (1.9MiByte)
Binary QT6 (1.9MiByte)
Tasks done: 0 testing: 1 pending: 2
Stadium: alpha
overall done: 30 %

Changelog:

1.14
  • [NEW] Processform: Copy selected or all line(s) of TListViews
  • [NEW] Taskfunction: Change update-speed
  • [NEW] Linear scale for fan-speed+watts in Shiny's CPU_Mhz/Watts_Chart (Optional)
  • [NEW] Support for Laz 3.6
  • [NEW] Semi-automatic Kernel-compatibility testing
  • [NEW] Rework of timer-ranges (default now from 500ms to 120s)
  • [UPDATED] Versioninfo_class 0.1.2.3
  • [UPDATED] Versionfunctions_unit 0.10.0.20
  • [UPDATED] Specialfunctions 1.2.0.59
  • [UPDATED] StringGridFunctions_Unit 0.3.0.4
  • [UPDATED] AdvFree_Unit 0.3.0.4
  • [UPDATED] LCL 3.6.0.0
  • [UPDATED] BGRAControls 9.0.1.6
  • [FIXED] LCL_357 Form's bottom flickering on show with gtk2 and some windowmanagers (e.g. xfwm4)
  • [FIXED] L_369 Processform»Mounts+Maps: Some issues with selection
  • [FIXED] L_131a Processform is kind of empty until first update (again, but only Tabsheets > 0)
  • [FIXED] L_385 Options » CPU_Graphs_TabSheet GroupBoxes not scaling
  • [FIXED] L_393 TTemp.Create() tries to read Temp_Crit even on empty filename (unnecessary syscall)
  • [FIXED] L_401 Tasks: Alive and HandleAll=1 is actually totally unhandled
  • [FIXED] L_402 Visual feedback of Taskform's PopupMenu-actions delayed by high Mainform's timerinterval
  • [FIXED] L_403 FillTree() botches clear
  • [FIXED] L_408 I/O: hints-language-strings missing
  • Time spent: 30,31h

EC-Helper

EC-Helpers's main window showing the content of /sys/kernel/debug/ec/ec0/io and stuff

Description

Displays the content of the acpi-ec presented by ec_sys (/sys/kernel/debug/ec/ec0/io) live and continuesly to analyze changes, especially for msi-ec.

Features

  • Open source
  • Changes in the file are highlighted for better tracking
  • Shows hex-values, as integer and also alleged fan-speeds

Source

LanguageFree Pascal
FrameworkLCL
WidgetsetGTK2, QT6
IDE/CompilerLazarus 3.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
stable0.2.0.14 Source (114KiByte)
Binary GTK2 (904KiByte)
Binary QT6 (852KiByte)
development0.2.0.14 Source (114KiByte)
Binary GTK2 (904KiByte)
Binary QT6 (852KiByte)
Tasks done: 10 testing: 0 pending: 0
Stadium: stable/RC
overall done: 100 %

Changelog:

0.2
  • [NEW] Allow 10ms polling-rate
  • [NEW] Icon
  • [NEW] EC-File-Error-Handling
  • [NEW] Performance-Optimization (20 times less cpu-load)
  • [NEW] Value as uint and binary
  • [NEW] Adjustable cell-changed-color
  • [NEW] Better timer-interval-adjustment
  • [NEW] Support for EC-size <> 256 bytes
  • [NEW] 2 Experimental fan methods
  • [UPDATED] Versioninfo_class 0.1.2.3
  • [UPDATED] Versionfunctions_unit 0.10.0.20
  • [UPDATED] Specialfunctions 1.2.0.59
  • [UPDATED] StringGridFunctions_Unit 0.3.0.4
  • [UPDATED] AdvFree_Unit 0.3.0.4
  • [UPDATED] LCL 3.6.0.0
  • [FIXED] LCL_357 Form's bottom flickering on show with gtk2 and some windowmanagers (e.g. xfwm4)
  • [FIXED] E_376 AsInt_LEdit shows unsigned values all the time
  • [FIXED] E_379 Readerror "Unable to open[...] Try again" on >1 instances running
  • Time spent: 9,42h

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 3.6, fpc 3.2.2

Download

BranchVersionDownloadsStatus
stable0.2.0.3 Source ([an error occurred while processing this directive]iByte)
Binary (Linux) (106KiByte)
Binary (Windows) (307KiByte)
development0.2.0.3 Source ( 23KiByte)
Binary (Linux) (106KiByte)
Binary (Windows) (307KiByte)
Tasks done: 5 testing: 0 pending: 0
Stadium: stable/RC
overall done: 100 %

Changelog:

  • [NEW] Improve help + general documentation
  • [NEW] Update build-modes (Release4Win » Release_Win)
  • [NEW] Accept extensions without *. infront
  • [NEW] Make parameter -e optional
  • [UPDATED] Versionfunctions_unit 0.9.1.19
  • [FIXED] q_295 Outputs wrong number of files on misuse
  • [FIXED] q_298 Theoretical memleak (144 bytes)
  • Time spent: 1,71h