In addition to the KOL.pas file itself, the KOLadd.pas file also belongs to the main delivery set, into which minor objects are taken out. As I mentioned above in the text, the main reason for moving some part of the code from KOL.pas into an additional module is the need to save lines in the main file of the KOL.pas library. The fact is that when the number of lines reaches 65536, the Delphi debugger refuses to work normally. Apparently, this is due to the fact that double-byte unsigned numbers are used to store line numbers in debug information. If not for this circumstance, I would gladly leave all this code in one module, making it easier for myself to maintain and saving 56 bytes in the resulting application.
The content of the KOLadd.pas file is mainly described above. When talking about the objects that are defined in this file, I have always mentioned this circumstance. This chapter is not about them.
Literally from the very publication of KOL, there were many programmers on the World Wide Web who contributed to its development. Not only by fixing errors and reporting any inaccuracies noticed, but also by creating additional objects, visual controls, adapting existing VCL components, translating code from C ++. I have also done sometimes similar work, extending the capabilities of the library as needed, and sometimes for the purpose of demonstrating how such extensions should be performed. The KOL library is actually the result of the collective work of many people. As a result, KOL in its capabilities not only approached, but in some areas surpassed the VCL library in its capabilities.
Often there is more than one implementation of the same functionality for KOL, done by different authors at different times, and often independently of each other. Most often, because the existing implementation for some reason did not suit the new author, and the new code is either larger or smaller, it may slightly differ in the set of implemented features and in the quality of execution. Some projects were never brought to a state of completion, and were abandoned by the authors (but this does not happen so often). As a result, the developer has the opportunity to choose the extension implementation that suits him best.
In this chapter, I will try to provide an overview of such extensions. Many of them can be found in the archives on the main KOL WEB site (http://f0460945.xsph.ru/ ), others on some other KOL sites.
oSystem dialogue "About the program"
•Printing and Preparing Reports
oDialogs for choosing a printer and printing settings.
oWorking with DBF files and other databases
oAdditional utilities for working with graphics
oOpen GL: KOLOGL12 and OpenGLContext modules
•Sound and Video
oOther means for working with sound
•Working with Archives
•Cryptography
•OLE and DDE
•NET
oCGI
•Other Useful Extensions
oWorking with shortcuts, registering file extensions
oSharing memory between applications
oSaving and restoring form properties
oAdditional buttons on the title bar
oMacroassembly in memory (PC Asm)
oEntering the path to a directory
oList of files and directories
oCalendar and date and / or time selection
oTwo-position button (up-down)
oOther additional visual elements
•Extensions of MCK itself