Christmas tree on Python on Turtle

Christmas tree on Python on Turtle
# Christmas tree on Python import turtle def line(x1, y1, x2, y2): turtle.penup() turtle.goto(x1, y1) turtle.pendown() turtle.goto(x2, y2) screen = turtle.Screen() screen.title("Christmas Fir tree") screen.setup(500, 500) # To turn the drawing upside down screen.setworldcoordinates(0, screen.window_height(), screen.window_width(), 0) turtle.pencolor('green') line(200,210,220,230) line(220,230,180,230) line(180,230,200,210) line(200,230,230,250) line(230,250,170,250) line(170,250,200,230) line(200,250,250,270) line(250,270,150,270) line(150,270,200,250) line(200,270,270,290) line(270,290,130,290) line(130,290,200,270) line(200,290,290,310) line(290,310,110,310) line(110,310,200,290) turtle.hideturtle() turtle.exitonclick()

This simple code example was intentionally made similar to Christmas tree on Pascal on Android

The Christmas tree on Python on Turtle is available in My Github Repository

Christmas tree on Pascal on Android

Fir Tree on Pascal N-IDE on Android

Fir Tree on Pascal N-IDE on Android

Realized on Pascal N-IDE - Editor Compiler.

Pascal N-IDE - Editor Compiler, Nguyễn Mậu Hiếu, mauhieudev on Google Play

The Christmas tree on Pascal on Android is available in My Github Repository



Fir Tree Code on Pascal N-IDE on Android
program Firtree; uses graph, crt; var g,h: integer; begin g := detect; initgraph(g,h,'EGAVGA.BGI'); setcolor(2); line(200,210,220,230); , line(220,230,180,230); line(180,230,200,210); line(200,230,230,250); line(230,250,170,250); line(170,250,200,230); line(200,250,250,270); line(250,270,150,270); line(150,270,200,250); line(200,270,270,290); line(270,290,130,290); line(130,290,200,270); line(200,290,290,310); line(290,310,110,310); line(110,310,200,290); readln; end.

Once upon a time there were Delphi Haters and their list of vendors who stopped supporting Delphi

Cemetery of Delphi Vendors who stopped supporting
I found Delphi Haters' Blog. Vendors who stopped supporting Delphi with date: Saturday, July 24, 2010
The fact is that Delphi/Object Pascal is in 8th position on tiobe.com TOP10 list of programming languages for November 2025 and the fact is encouraging.
There is fresh, the almost exact copy of origin list of vendors who stopped supporting Delphi I made a copy of these lists for myself and deleted the duplicates in them.
As for me, this is not a Delphi Vendors Cemetery, but an expanded window of opportunity and an experience that can be borrowed.

I look for information about them in search engines.

Vendors who went out of business

  • athrasoft.com – Vendor of Athrasoft Plugins
  • cgiexpert.com – Vendor of CGIExpert
  • odbc98.com – Vendor of ODBC98 – reason cited as poor or non-existent sales
  • classicsw.com – Vendor of Classic Component
  • PIMFlashfesoft.com – Vendor of PIMFlash
  • turbopower.com – Vendor of TurboPower Components
  • maxcomponents.net – Vendor of Max Help and Max Components
  • buypin.com – Vendor of B.S. components
  • vistadb.com – Vendor of Apollo database
  • asp-express.com – Vendor of classic ASP components
  • classicworks.com.au – Vendor of Classworks Development VCL
  • defined.net – Vendor of Defined Forms
  • dream-com.com – Vendor of Dream Company
  • crynesoft.com – Vendor of Genesis Component Pack
  • teletech-systems.com – HelpWriter application
  • volgadb.com – Vendor of Volga Database
  • DFS (Delphi Free Stuff)
  • animatedmenus.com – Vendor of Animated Menus – cited Poor sales
  • acctsync.com – Vendor of QuickBooks Components
  • DuckReports – Vendor of Duck Reporting Components
  • BalticSolutions – Vendor of ColorMemo
  • Helping Hands Software – n/a
  • UDC Corp – Vendor of MemoWriter, PowerSpreadsheet
  • IBrightSolutions – Vendor of Simulation Software
  • Unley Software – KeyDB
  • DictaSoft.com, Layout Components
  • CrystalVCL.net, Crystal VCL and other components
  • Cando Framework
  • RHITech.com, Excel Add-in component
  • DScriptVCL.com, Delphi Scripting VCL components
  • CSS-Software.com, CSS Component Suite
  • JB Components/ JB Component Suite
  • CytonResearch.com, VCL Component Packs
  • Codecellerate.com, Drawing Engine,
  • EZCad Soft, EZSoft Engineering
  • ValdSoft, VSLib component package
  • AriseSoft, AriseSoft Shell Component Pack (and others)
  • CoolPaint.com, HTML tokenizer, HTML mini-viewer, Cool Chart
  • ksv.hypermart.net, Handmade VCL Components
  • alphadomino.ru, Gantt Chart components
  • ta4delphi.com, Technical Analysis Charting components
  • praktical.com, Praktical Organic button components
  • maverick.co.uk, Aqua Mac-looking components
  • FlatStyle.de, Flat Style Components
  • SlickTools.com, InfoMatters office components
  • MediaPilot.com, Installation components
  • Intag.de, DxComponent Collection

Vendors who stopped supporting Delphi

  • Softel VDM – Vendor of SftTree, SftBox, SftButton – reason cited as “massive software piracy”
  • AHM Tritron Tools – Vendor of AHM Components
  • adrock.com – Adrock Calendar Components (GPL)
  • tekhnologos.com – Their VCL library is no longer for licensing
  • SweetControls.com – Sweet Controls
  • degisy.com – Degisy Controls

Vendors who stopped supporting one of their Delphi components/ or all of their products

  • MicroOlap.com, Packet Sniffer for Delphi, end of life
  • SciBit.com MySQL Components, end of life
  • KsDev.com, Block Engine, Office VCL (disappeared from their site)
  • lphaAsp.com Alpha Corporation, Alpha Units, Alpha Interceptor (disappeared from their site)
  • Djordje Peric, PDJ Packs (their website is no longer available)
  • CodeBot.com, CodeBot library (no longer available for download)
  • SuiPack.com, KeyDB (formerly from SUIPack)
  • Syntetix.com, Theme Control
  • CoolDev.com (All their Delphi products are now freeware)
  • 9spice.net RapidSolutions, RapidTree, 9Rays Treeview
  • Willmark.ru, WillMark Tree Wizard
  • GeoCities/Stephan Marais – Open Sybase CT-Library Library
  • TekhneLogos.com, PowerCad, supposedly given a non-existent 10% discount on Torry’s
  • Baltsoft.com, ProjectPlus components
  • Tops.com.pl, SMSC Delphi components (cited as “no demand” or “very low response”)
  • Timelesstech.com, all their Delphi components (Lock & Key, Fax components)

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...'

TdfsEllipsis Panel Demo
Delphi code modernization trend
Changes in TdfsEllipsisPanel have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsEllipsisPanel v1.20

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...' when it does not fit the available space. Also a generic function that "ellipsifies" a string is provided.

The components TdfsEllipsisPanel v1.20 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever. The component throws an Access violation error and its source code can be used as an example for study.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS GrabBar - Delphi component, grab bar, or splitter, to allow two windows to be resized simultaneously

TdfsGrabBar Demo
Delphi code modernization trend
Changes in TdfsGrabBar have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsGrabBar v1.17

DFS GrabBar is a bar that allows two TWinControl components to be resized by dragging it.

The components TdfsGrabBar v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS MRUFileList - Delphi component to simplify adding MRU file lists to menus

TMRUFList Demo with RadStudio Delphi 2009 Closed Files list
Delphi code modernization trend
Changes in TdfsMRUFileList have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 2007, 2009
Updated 21 dec 2025

TdfsMRUFileList v2.68

DFS MRUFileList - Delphi component that greatly simplifies adding MRU file lists to menus.
TMRUFList Demo was made with RadStudio Delphi 2009 Closed Files list in mdFileNameOnly.

The components TdfsMRUFileList v2.68 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS", and all risks and losses associated with it's use are assumed by you. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

MiTeC File Explorer is Windows Explorer-like component

TMFileExplorer Demo
Delphi code modernization trend
Changes in TMFileExplorer have been made by Valient Newman to make the component meet the requirements of Delphi 6 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 20 dec 2025

TMFileExplorer v1.15

MiTeC File Explorer is Windows Explorer-like component.

The components TMFileExplorer v1.15 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Michal Mutl his GitHub
Copyright © 1999, 2003.

DFS Icon Controls: Icon ComboBox and Icon ListBox caching components for Delphi

TdfsIconComboBox Demo with Delphi 2009 icons
Delphi code modernization
Changes in TdfsIconComboBox and TdfsIconListBox have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TdfsIconComboBox and TdfsIconListBox v1.17

The caching Icon ComboBox and Icon ListBox components for Delphi.

A dropdown list style combobox that displays the icons that exist in a given file, and a listbox that displays the icons that exist in a given file, either horizontally or vertically.

TdfsIconListBox Demo with Delphi 2009 icons

Features: Optionally, the control can disable itself when the filename is invalid. Optionally, the control can load icons "on demand." This speeds up the initialization process greatly because all icons do not have to be loaded when the control is created. Many file formats can be read from, including: .EXE, .DLL, .ICO .ICL { PCTools? Icon Library .NIL { Norton Icon Library ListBox can simulate a grid of icons, allowing you to set the number of icons to be displayed in both the X and Y direction. This setting can be changed dynamically.

The components TdfsIconComboBox and TdfsIconListBox v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”) Copyright 1996, Brad Stowers. All Rights Reserved.

FWTrayIcon - component for registering class to work with the system tray

FWTrayIcon - component for registering class to work with the system tray demo
Delphi code modernization
Changes in TFWTrayIcon by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TFWTrayIcon v1.05

Сomponent for registering class to work with the system tray.

The component TFWTrayIcont v1.05 is available in My Github Repository

The component has realization issues for instance with hint display and the use of this component is on your own risk.

The software is provided as is without any garanties and warranty.
This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

FWHint - component to register class to work with application hints

FWHint - component demo
Delphi code modernization
Changes in TFWHint by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025

TFWHint v1.05

Сomponent for registering class to work with application hints.

The component TFWHint v1.05 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

DlgTest is design-time testing of TCommonDialog component descendants

CodeGear Delphi 2007
Delphi legacy code modernization
Corrections brought in DlgTest by Valient Newman to make the component meet the requirements of Delphi 6, when the design-time and runtime code must be separated.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025
The component DlgTest is available in My Github Repository This component can be freely used and distributed in commercial and private environments.

DlgTest v1.05

Design-time testing of TCommonDialog component descendants.
credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS Color Button

Delphi legacy code modernization
Corrections brought in CBtnForm, ColorAEd, DFSClrBn by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher, where WinTypes, WinProcs units are absent.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 15 dec 2025

TdfsColorButton v2.62

A Windows 95 and NT 4 style color selection button, which displays a palette of 20 color for fast selection and a button to bring up the color dialog.

This component can be freely used and distributed in commercial and private environments.

The component DFS Color Button is available in My Github Repository



credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

If WinTypes and WinProcs units are absent in Delphi

Alias to the project: WinProcs=Windows WinTypes=Windows
WinTypes and WinProcs units are absent in Delphi 2 and higher.

WinTypes.pas and WinProcs.pas are units from Windows 3.1x., they come from Turbo Pascal and Delphi 1.
In Win9x and later they were replaced with Windows.pas.


First solution to add an alias to the project: WinProcs=Windows, and WinTypes=Windows.
Delphi admits some aliases. For example, aliases for backwards compatibility from WinProcs and WinTypes to Windows.
The full string with conditional compilation directives may be sush as WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

Second solution is to use in code conditional compilation directives for various Delphi versions.

{$IF CompilerVersion >= 9.0} // Delphi 2 and higher Windows, {$ELSE} WinTypes, WinProcs, {$IFEND}
Remaking old components for Delphi
Переделывая старые компоненты для Delphi

Delphi 2007 and Delphi 2009+ difference in string types. Migration

CodeGear Delphi 2007

This is not a divine revelation, but simply semblance of my personal reference.

In Delphi 2007AnsiString was the default string type used for general-purpose string manipulation.
This means variables declared simply as string were compiled as AnsiString. This changed in Delphi 2009+, where string became an alias for UnicodeString.

AnsiString in Delphi 2007:
  • In Delphi 2007 Char was an 8-bit (1-byte) AnsiChar, while in Delphi 2009+, it became a 16-bit WideChar (UTF-16) by default.
  • Encoding: The interpretation of these bytes depends on the operating system's current active code page (e.g., Windows-1252, or specific locales like code page 936 for simplified Chinese).
  • Length: AnsiString was dynamically allocated and limited only by available memory, unlike the older ShortString that was limited to 255 characters.
The primary distinction in Delphi 2009 and later is the shift to Unicode.
  • Char now represents a 16-bit character, enabling full Unicode support. Char becomes WideChar
  • string is an alias for UnicodeString (UTF-16, 2 bytes per character).
  • AnsiString still exists but is used primarily for backward compatibility or interfacing with non-Unicode systems/APIs.
When moving from Delphi 2007 to Delphi 2009 (or later):
  • AnsiString to UnicodeString: String changes, leading to potential data loss if ANSI data is assigned directly to Unicode strings.
  • Explicit Casts: Use PAnsiChar(myWideString), AnsiString(myUnicodeString) and similar, where needed, and be aware of character mapping.
  • Migration Required: Code using Char, PChar needed updates, especially with assignments between ANSI and Unicode types.
  • If a 1-byte buffer is in need, use RawByteString instead of string or Char. RawByteString is AnsiString with no code page set by default (AnsiString($ffff)).
(e.g., #128 isn't the Euro sign in Unicode).
Delphi and Unicode, Marco Cantù, December 2008