Difference between revisions of "Portal:HowTo Demos"

From Lazarus wiki
Jump to navigationJump to search
(→‎Graphics: Added bitmap.scanline graphics example)
(→‎Networking: Relocate item from General)
 
(20 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,58207.msg433568.html#msg433568 Delete tags] - How to delete HTML tags from text.
  
 
== Graphics ==
 
== Graphics ==
Line 122: Line 124:
  
 
* How to use [https://forum.lazarus.freepascal.org/index.php/topic,49855.0.html bitmap.scanline].
 
* How to use [https://forum.lazarus.freepascal.org/index.php/topic,49855.0.html bitmap.scanline].
 +
 +
* How to do [https://forum.lazarus.freepascal.org/index.php/topic,42306.msg366256.html#msg366256 offscreen rendering in Metal framework] (macOS only).
 +
 +
* How to [https://forum.lazarus.freepascal.org/index.php/topic,52886.msg390735.html#msg390735 load a TImagelist at run time] Multiplatform.
  
 
== Networking ==
 
== Networking ==
Line 134: Line 140:
  
 
* [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,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,51189.msg375491.html#msg375491 Simple webserver]. Multi-threaded, cross-platform. No third party components required.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,52773.msg389901.html#msg389901 File download] - How to resume a file download.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,55510.msg413068.html#msg413068 Obtain Redirected URL] - How to obtain the redirected URL using TFPHTTPClient.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,44795.msg315238.html#msg315238 Upload file] - How to send a file to a web server using TFPHTTPClient.
 +
 +
* [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 ==
Line 148: Line 170:
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,45080.msg317949.html#msg317949 Checkbox in a StringGrid]. TStringGrid can show a checkbox instead of text.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,45080.msg317949.html#msg317949 Checkbox in a StringGrid]. TStringGrid can show a checkbox instead of text.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42610.msg297603.html#msg297603 Color Fade ProgressBar]. Requirement: BGRAControls. How to use TBGRAFlashProgressBar.
 
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42107.msg293431.html#msg293431 Darken a Form]. Requirement: BGRAControls. How to darken a form.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42107.msg293431.html#msg293431 Darken a Form]. Requirement: BGRAControls. How to darken a form.
  
* [https://forum.lazarus.freepascal.org/index.php/topic,42107.msg293295.html#msg293295Darkening a Form]. Requirement: BGRAControls. How to darken the Main Form when a modal window is shown.
+
* [https://forum.lazarus.freepascal.org/index.php/topic,42107.msg293295.html#msg293295 Darkening a Form]. Requirement: BGRAControls. How to darken the Main Form when a modal window is shown.
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42058.msg292943.html#msg292943 Open a Form beside the current Form]. Programmatically open and close a form beside the current form.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42058.msg292943.html#msg292943 Open a Form beside the current Form]. Programmatically open and close a form beside the current form.
Line 172: Line 192:
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,37537.msg252612.html#msg252612 Vertical Menu]. A TVerticalMenu component.  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,37537.msg252612.html#msg252612 Vertical Menu]. A TVerticalMenu component.  
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,42610.msg297603.html#msg297603 Color Fade ProgressBar]. Requirement: BGRAControls. How to use TBGRAFlashProgressBar.
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42610.msg297651.html#msg297651 Color Fade ProgressBar]. How to color fade a progress bar without using a third party component.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,42610.msg297651.html#msg297651 Color Fade ProgressBar]. How to color fade a progress bar without using a third party component.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,44860.0.html Task bar icon progress bar] - Windows only.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,56367.msg418862.html#msg418862 Progress in Status Bar] - Cross-platform.
  
 
* [https://forum.lazarus.freepascal.org/index.php/topic,37425.msg251457.html#msg251457 ShowMessage in Console Mode]. Requirement: LCL needed to be in the project’s required packages. How to use ShowMessage in a console mode program.
 
* [https://forum.lazarus.freepascal.org/index.php/topic,37425.msg251457.html#msg251457 ShowMessage in Console Mode]. Requirement: LCL needed to be in the project’s required packages. How to use ShowMessage in a console mode program.
Line 187: Line 213:
 
* [http://forum.lazarus.freepascal.org/index.php/topic,38487.msg261731.html#msg261731 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.
 
* [http://forum.lazarus.freepascal.org/index.php/topic,38487.msg261731.html#msg261731 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.
  
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,44828.msg315571.html#msg315571 GUI program that allocates a console] whenever it needs one and frees it when it no longer needs it (Windows only).
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,38487.msg261731.html#msg261731 CHM Help Demo] for an application.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,51116.msg374890.html#msg374890 Speedbutton demonstration] of using four arrow speedbuttons for moving an object. Shows how to handle speedbutton glyph states.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,52725.msg389274.html#msg389274 Runtime forms] How to create a form at runtime.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,49251.msg356477.html#msg356477 TAchart example] displaying the time on the X axis.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,16362.msg88566.html#msg88566 How to hide application window] on startup.
 +
 +
* [https://forum.lazarus.freepascal.org/index.php/topic,16436.msg255366.html#msg255366 How to use a Global HotKey] to show a form (Windows only).
 +
 +
* How to [https://forum.lazarus.freepascal.org/index.php/topic,52773.msg389901.html#msg389901 resume a download].
 
<br/>
 
<br/>
 
</div>
 
</div>

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.