Difference between revisions of "Portal:HowTo Demos"

From Free Pascal wiki
Jump to navigationJump to search
(→‎User Interface: Add Progress in Status Bar; group all Progress Bar examples)
(→‎Networking: Relocate item from General)
 
(3 intermediate revisions by the same user not shown)
Line 71: Line 71:
 
* [https://forum.lazarus.freepascal.org/index.php/topic,43489.msg304434.html#msg304434 Communicate between two programs]. This demo showing how to use simpleipc.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,43489.msg304434.html#msg304434 Communicate between two programs]. This demo showing how to use simpleipc.
  
* [https://forum.lazarus.freepascal.org/index.php/topic,48423.msg348738.html#msg348738 Retrieve https web page]. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.
+
* [https://forum.lazarus.freepascal.org/index.php/topic,52780.msg389815.html#msg389815 Timer demo] - How to use a TTimer control.
  
* [https://forum.lazarus.freepascal.org/index.php/topic,52780.msg389815.html#msg389815 Timer demo] - How to use a TTimer control.
+
* [https://forum.lazarus.freepascal.org/index.php/topic,58207.msg433568.html#msg433568 Delete tags] - How to delete HTML tags from text.
  
 
== Graphics ==
 
== Graphics ==
Line 150: Line 150:
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,56335.0.html CAPTCHA implementation] - How to implement a CAPTCHA.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,56335.0.html CAPTCHA implementation] - How to implement a CAPTCHA.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,48423.msg348738.html#msg348738 Retrieve https web page]. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.
 +
 +
== Retrieving system information ==
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,58852.msg438604.html#msg438604 System Information] - Cross-platform unit to retrieve system information (CPU, memory, swap, operating system version etc).
  
 
== User Interface ==
 
== User Interface ==

Latest revision as of 11:07, 27 March 2022

English (en)

< Lookup < Portals < Portal:HowTo Demos
Portal:HowTo Demos
HowToLogo.png

This portal collects together in one place a significant number of short demonstration programs that have been posted on the Free Pascal and Lazarus Forums. Each of the demonstration programs generally provides a simple example of one particular development technique.

The Portal was the brainchild of Handoko who also provided the initial list of demonstration programs from the Forums.

Android

  • OpenGL ES2 Circle. Requirement: LAMW. Drawing a circle using jCanvasES2.DrawLine instead of DrawCircle.
  • OpenGL ES2 Rectangle. Requirement: LAMW. Drawing a rectangle using jCanvasES2.DrawPolyFill instead of DrawRect.

File handling

General

  • Generating a huge text file. Demonstrates a technique for reducing program responsiveness to improve performance.

Graphics

  • Get pixel color of an image. It may sound easy but actually it is not so easy.
  • Fading images using BGRABitmap. Requirement: BGRABitmap. Build your own slideshow and learn doing proportional scaling using aspect ratio of the picture.
  • TCanvas Text. How to draw superscript and subscript text using TCanvas.
  • Rock, Paper, Scissors. A simple game. Note for Unix/like operating systems: change the path delimiter to make the code work.

Networking

  • FTP Connect. Requirement: Synapse (can be installed using OPM). How to connect to a FTP server.
  • HTML to Text. Requirement: fasthtmlparser. Extract data from a web page.
  • Retrieve https web page. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.
  • Simple webserver. Multi-threaded, cross-platform. No third party components required.
  • Upload file - How to send a file to a web server using TFPHTTPClient.
  • Retrieve https web page. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.

Retrieving system information

  • System Information - Cross-platform unit to retrieve system information (CPU, memory, swap, operating system version etc).

User Interface

  • Searchable StringGrid. Requirement: DBFLaz. Load data from a dbf, show it on a TStringGrid, search and highlight the cells. See here and here.
  • Darkening a Form. Requirement: BGRAControls. How to darken the Main Form when a modal window is shown.
  • Scaling a Form. How to scale a form by using TForm.ScaleBy. Unfortunately it does not work correctly on Linux.
  • Vertical Menu. How to make a vertical menu using TPanel and TScrollBox.
  • ShowMessage in Console Mode. Requirement: LCL needed to be in the project’s required packages. How to use ShowMessage in a console mode program.
  • Adding CHM Help. A demo project to call a CHM help file from three buttons as context-sensitive help (press F1), or from a help menu.
  • Speedbutton demonstration of using four arrow speedbuttons for moving an object. Shows how to handle speedbutton glyph states.