Portal:HowTo Demos
From Free Pascal wiki
Revision as of 04:02, 20 June 2020 by Trev (talk | contribs) (→Graphics: offscreen metal rendering example added)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
English (en) │
Portal:HowTo Demos
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. |
Related topics
Platform Portals: Android - Embedded - FreeBSD - iOS - Linux - Mac - WinCE - Windows Topic Portals: New Users - Database Development - Game Development - Hardware and Robotics - HowTo Demos - Science and Technology - Web Development
|
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.
- Simple polygon animation. Requirement: LAMW. A simple animation using jCanvas.
File handling
- Binary file demo. How to show, append and delete data from a binary file.
- Text file demo. How to read and append data to a text file.
- Text File Demo #2. How to read and append data to a text file.
- Save component values to a file. Save text data easily using TStringList.SaveToFile.
- Load and show image from Resource Stream. How to add an image to a project resource and load it.
- Load a picture and show it. How to use OpenPictureDialog and LoadFromFile.
- Detect kind of file using DragAndDrop. How to detect the type of file using drag and drop.
General
- Drawing, moving, making connection between shapes. Shows TShape can be used for simple diagram drawing.
- Generating a huge text file. Demonstrates a technique for reducing program responsiveness to improve performance.
- Drag and drop shape. Drag and drop without using the built-in drag and drop feature.
- Minimize to TaskBar or Tray. A workaround to minimize to tray, not the best solution but works.
- TMyCircle Component. How to write your own component, the OOP way.
- Moving an Object by pressing a key. How to detect left/right shift key pressing.
- Pausing and Continuing an animation. How to pause and continue the animation.
- Control an Object's direction using the keyboard. How to detect user keyboard input.
- Convert Unicode to TBytes. How to use WideBytesOf and WideString functions.
- Communicate between two programs. This demo showing how to use simpleipc.
- Retrieve https web page. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.
Graphics
- Get pixel color of an image. It may sound easy but actually it is not so easy.
- A very simple single player Pong game.
- Game Map Editor. A very basic load and edit map for game.
- Fading images using BGRABitmap. Requirement: BGRABitmap. Build your own slideshow and learn doing proportional scaling using aspect ratio of the picture.
- Center, resize image on the screen. Resize an image at the center position of the image.
- Simple animation. A very basic animation using a TTimer.
- Moving circles. How to fix an unwanted flickering effect.
- Change background color of an image. A not so accurate colorshift on an image.
- OpenGL 2D Text Using Textures. Requirement: LazOpenGLContext. How to write text in OpenGL using textures loaded from an image file.
- TCanvas Text. How to draw superscript and subscript text using TCanvas.
- Sticky Balls. Not so accurate inverse kinematics demo.
- GradientFill Rectangle. How to use GradientFill.
- Rock, Paper, Scissors. A simple game. Note for Unix/like operating systems: change the path delimiter to make the code work.
- Bullet and asteroid collision detection. How to do collision detection between a bullet and a polygonal object.
- Draw Circles Using CSMFL. Requirement: SFML/CSFML headers binding and CSFML libraries. How to use CSFML in FPC.
- Get pixel color of an image. How to load an image, show its information and the pixel color under the mouse pointer.
- Move a shape with a mouse. Move rectangles using a mouse.
- Selection Demo. A movable and resizeable selection.
- Sprite picking and moving. Hit Testing - a must learn topic for every graphics programmer.
- Dancing Balls. Balls that connect to each other.
- Screenshot capture. How to screenshot capture and crop.
- Remove image shadow. How to remove an image shadow and crop the image.
- Display image in console program. How to display an image in a console program (Windows API method).
- How to use bitmap.scanline.
- How to do offscreen rendering in Metal framework (macOS only).
Networking
- Game Client and Server. The basics for building a client and server program.
- 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.
- Synapse TCP/IP client and server. Requirement: Synapse.
- Retrieve https web page. Cross-platform. No openssl DLLs/libraries need to be deployed. No third party components required.
User Interface
- Make your UI look interesting by adding some simple transition effects.
- Searchable StringGrid. Requirement: DBFLaz. Load data from a dbf, show it on a TStringGrid, search and highlight the cells. See here and here.
- Popup with ListBox. A custom popup form with a list box.
- Frameless popup. An alternative to ShowMessage.
- Drag a Button to a Panel. How to do drag and drop.
- Checkbox in a StringGrid. TStringGrid can show a checkbox instead of text.
- Color Fade ProgressBar. Requirement: BGRAControls. How to use TBGRAFlashProgressBar.
- Darken a Form. Requirement: BGRAControls. How to darken a form.
- a Form. Requirement: BGRAControls. How to darken the Main Form when a modal window is shown.
- Open a Form beside the current Form. Programmatically open and close a form beside the current form.
- 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.
- Colorful Panels. How to use TControl.Align.
- Button with animation. How to show a TBitButton with animation images.
- Small icon in a TEdit. How to put an icon in a TEdit.
- StringGrid Cell Validation. Automatically set focus on the cell if it contains incorrect input.
- ListBox Work as Tabs For StringGrid. How to add items to a ListBox and StringGrid at runtime.
- Vertical Menu. A TVerticalMenu component.
- Color Fade ProgressBar. How to color fade a progress bar without using a third party component.
- ShowMessage in Console Mode. Requirement: LCL needed to be in the project’s required packages. How to use ShowMessage in a console mode program.
- Save & Restore StringGrid. How to save/load a grid’s content.
- StringGrid With Autosum Column. How to create a column that can auto calculate the row sum.
- Activate button with keypress. How to activate a button with a keypress.
- Detect user's language. How to detect the user's language (multi-platform method).
- 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.
- GUI program that allocates a console whenever it needs one and frees it when it no longer needs it (Windows only).