Skip to content

Repository files navigation

Introduction

This Repository collects a lot of usefull and mostly not trivial examples that can be used to start a own application.

! Attention !

If you get a "could not find" error when compiling the examples, this could be caused by the directory name change during translation and uploading into this repository. Add the missing file's by hand with the project inspector from the IDE.

Overview

Shows the dependencies of the demos to the external libraries (see dependencies how to get to the missing code).

Details

OpenGL

Collection of classes and examples that are mainly related to OpenGL implementations

ExampleDescription
Clear_EngineBasic Example that shows the minimum needed to create a OpenGL application
Animation_EditorEditor to create and edit .ani files
MapviewerInclude Google maps into your own application using OpenGL as render engine. Chaches maptiles on local drive for offline use.
umapviewer.pasLCL-Component to make google mapviewer in OpenGL possible
uopengl_animation.pasClass to load and render .ani files (see Animation_Editor)
uopengl_ascii_font.pasDOS-stile ASCII-Font to easily show texts in OpenGL windows
uopengl_camera.pasHelper class to correct set OpenGL modelview matrix in a scene
uopengl_font_common.pasAnchestorclass for TOpenGL_TrueType_Font and TOpenGL_ASCII_Font
uopengl_graphikengine.pasClass to load and render graphics into the OpenGL window
uopengl_legacychecker.pasunit that helps finding "invalid" legacy calls when using modern OpenGL v3.3
uopengl_partikelengine.pasClass to render thousands of particle graphics into the OpenGL window
uopengl_primitives.pasCollection of higher level primitive objects (sphere, cone, cube..)
uopengl_shaderprimitives.pasunit that helps porting old legacy code to OpenGL v3.3
uopengl_spriteengine.pasClass to render multiple imageparts within defined delta times
uopengl_truetype_font.pasClass to render truetype fonts to OpenGL windows
uopengl_widgetset.pasTButton, TScrollbar, TListbox.. for a OpenGL Renderingcontext

SDL2

Collection of classes and examples corresponding to the usement of SDL2

ExampleDescription
Joystick_DemoDemo for usdl_joystick.pas and usdl_gamecontroller.pas
usdl_joystick.pasclass to easy access to joysticks
usdl_gamecontroller.pasclass to easy access to gamecontrollers

TCP_IP

Collection of classes and examples that are mainly related to Serial and Network communications

ExampleDescription
MQTT_BrokerShows a implementation of uMQTTbroker.pas (only publish / subscibe no evaluations)
MQTT_PublisherDemo that can send MQTT Publish messages to a given IP-Address (no security login)
RestDemo to show capabilities of urest.pas
Modbus_ClientApplication to emulate a MODBUS-Slave device
Modbus_DiagnosticShows a implementation for the MODBUS RTU, MODBUS-TCP and MODBUS-TCP RTU version, use to detect address offset and encoding of the MODBUS SLAVE
Send_get_fileDemo to transmit a file between server and client with a TCP-IP connection using L-Net
Socket_lNetDemo application that shows how to establish a TCP-IP connection with L-Net
uMQTTbroker.pasa simpliest MQTT broker, only capable of receiving publishing clients (need L-Net)
uchunkmanager.pasServer / Client component to send packages of data through a TCP-IP connection (need L-Net)
uhtml.pasHTML-DOM parser
uip.pasSome helper routines to work and get IP's
umultipartformdatastream.pasClass to create HTML Multipartforms as a stream
urest.pasimplementation of a rest server / client
usynapsecomponents.pasClass that tries to mimik lNet interface but uses Synapse
usynapsedownloader.pasClass to use httpSend (see Synapse) to download files with progress update events
utcp.pasabstract wrapper for TLTcp (need L-net)
uupdate.pasclass to easy automate update the application when developed

Wii

Collection of classes and examples corresponding to use the Wiimote controller

! Attention ! the Wii classes and components do only support Linux.

Preconditions:

  • "sudo apt install xwiimote"
  • "sudo apt install libxwiimote-dev"
ExampleDescription
WiiMoteDemo application for uxwiimote.pas
ulibxwiimote.pasbasic header translation from c to fpc
uxwiimote.pasLazarus wrapper for ulibxwiimote.pas

data_control

Collection of classes and examples corresponding to data processing, math and corresponding stuff

ExampleDescription
BMPQuadTreedemo application for ubmpquadtree.pas
Complexdemo for ucomplex.pas
delforlazarusdesigntime component for codeformating inside the IDE
JSON_Analyzerdemo application for uJSON.pas
lazcommentdesigntime component to comment / uncomment code inside the IDE
LZWdemo application for uLZW.pas (Lempel-Ziv-Welch algorithm)
Quadtreeunit tests for uquadtree.pas
Quaternionunit tests for uquaternion.pas
StableIndexVectorunit tests for ustableindexvector.pas
Vectormathunit tests for uvectormath.pas
uJSON.pasJSON-Loader / writer class
uLZW.pasImplementation of Lempel-Ziv-Welch algorithm with two different dictionaries
ubitstream.pasStream to store and load bitwise data (typically only needed in compression algorithms)
ubmpquadtree.pasown implementation for a quadtree compression for greyscale .bmp images
ucomplex.pasBasic component to do calculations with complex numbers
ucrc.pasGeneric crc calculation class
udomxml.pasgeneric xml parser
ueventer.pasclass toc reate events for components that are not derived from LCL-Components
ufifo.pasgeneric first in first out class
ufilo.pasgeneric first in last out class
ugenmathcalc.pasgeneric parser / solver for binary and unary operands (typically used to parse mathematical formulas)
uimodbus.pasModbus server class for Modbus TCP or Modbus RTU
uinterpreter.pasPascal Interpreter
uiwrapper.pasdata source wrapper for uimodbus.pas (Lnet or Synapse)
ulogger.pasgeneral data logging framework to be included into own application
umathsolver.pasString solver for mathematical expressions like "1+2 shl 3" (need MP-Arith)
uuncommenter.pasclass to rulebased remove text from text (e.g. when parsing source code)
uneuralnetwork.pasgeneric neural network implementation (not performant but simple)
uquadtree.pasgeneric quadtree class
uquaternion.paslibrary to do math with quaternions
usqlite_helper.pashelper routines to access to SQLLite3 databases (needs SQLDBLaz package)
ustableindexvector.pasclass to allocate / deallocate and find elements in a array with O(1) complexity
utokenizer.pasgeneric lexer class to lex strings into tokens
uuart.pasthread based wrapper for synaser.pas (see Synapse)
uuart_deprecated.paswrapper for synaser.pas (see Synapse)
uvectormath.pasMath library for multidimensional things (e.g. OpenGL, Matrix ..)

graphics

Collection of classes and examples corresponding to graphic / image processing

ExampleDescription
AVI CreatorDemo for ugwavi.pas
CirclePackChartDemo application for ucirclepackchart.pas
ColorDialogDemo application for ucolordialog.pas
ColorGridDemo application for ucolorgrid.pas
Graphicsunit tests for ugraphics.pas
LineEditDemo application for ulineedit.pas
PlayingcardsDemo application for uplayingcard.pas
SimpleChartDemo application for usimplechart.pas
SunburstChartDemo application for usunburstchart.pas
YeargridDemo application for uyeargrid.pas
ubmp_graphikengine.pasClass to organise multiple graphiks within a application
ucirclepackchart.pasLCL-Component to display packed circles
ucolordialog.pasA alternate TColordialog variant (oriented on KDE Colour Picker)
ucolorgrid.pasA reimplementation of the tColorGrid component from Delphi5
ugraphics.pascollection of algorithms to manipulate images and do color calculations
ugwavi.pasClass to create .avi files out of images and waves
ulineedit.pasClass to edit a segmented transfer function
usimplechart.pasa Tchart like component to create images with containing pointseries (especially designed to be part of a console application)
usunburstchart.pasLCL-Component to display a sunburstchart diagram
uyeargrid.pasLCL-Component to display a year on the formular

sound

Collection of classes and examples corresponding to sound / music processing

ExampleDescription
uwave.pasclass to access .wav files

What do i need to compile the source of the examples

At least you need to have the Lazarus IDE installed. If the example needs more than that, see below for missing dependencies.

Dependencies

Some examples may have dependencies to external libraries here is the collection where to find and download this libraries (as they are not part of this repository):

libnameDescriptionLink
BassAudio libraryhttps://www.un4seen.com/
DGLOpenGLOpenGL header translationhttps://github.com/saschawillems/dglopengl
LnetLightweight Networking libraryhttps://github.com/almindor/lnet
MP-ArithMath library for big numbershttps://web.archive.org/web/20190628091417/http://www.wolfgang-ehrhardt.de/index.html
SDL2Lib to access to pc hardwarehttps://github.com/PascalCorpsman/SDL2-for-Pascal
SynapseSynapse TCP/IP and serial libraryhttp://www.ararat.cz/synapse/doku.php/download
https://github.com/geby/synapse

License

All sourcecode files do have their own license header included at the top, for all other files in this repository see license.md for further informations.

About

Collection of useful and mostly non trivial examples that can be used to start own projects

Topics

Resources

Stars

18 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages