AEFramework
Delphi VCL component fixes and other useful units for any application. Includes a fully functional ANSI-Unicode DDE manager, automatic file updater, etc.
Install / Use
/learn @aehimself/AEFrameworkREADME
AEFramework
AEFramework is a set of helper units / components which I use for most of my projects. Since they might be of interest of others it is now hosted on GitHub. Feel free to use, modify under Creative Commons Attribution 4.0 International
AE.Application
These classes can be used to quickly create a service / console application.
AE.Comp
Fixes and enhancements for existing VCL controls. These controls fully support Delphi VCL styles.
AE.Comp.ComboBox.pas
Contains TAEComboBox, which allows case-insensitive item selection while typing if Style is csDropDown.
AE.Comp.DBGrid.pas
Contains TAEDBGrid with automatic column width detection, proper mouse wheel and scrollbar scrolling, scrollbar positioning, alternate row backgrounds and some painting improvements.
AE.Comp.HeaderMenuItem.pas
TAEHeaderMenuItem is always disabled, acts as a separator in Popup / main menus. Born because of a topic on DelphiPraxis.
AE.Comp.KeepMeAwake.pas
TAEKeepMeAwake can be used to prevent a computers console or RDP session to go idle.
AE.Comp.MenuTreeParser.pas
TAEMenuTreeParser is a helper component to parse menu trees. Based on the current location it can list subfolders and menu items separately.
AE.Comp.PageControl.pas
TAEPageControl adds drag-and-drop sheet reordering and close buttons on tabs.
AE.Comp.TagEditor.pas
TAETagEditor is an extremely barebone tag editor component. More information on DelphiPraxis.
AE.Comp.ThreadedTimer.pas
TAEThreadedTimer is a modernized, drop-in replacement of Delphi's TTimer class based on a StackExchange StackExchange. More information is on DelphiPraxis.
AE.IDE
TAEDelphiVersions and TVSVersions detect local Delphi and Visual Studio installations and their individual running instances. Via DDE a file can be opened in the IDE of a specific instance. You can read the struggle of creation on DelphiPraxis.
AE.Misc
Miscellaneous unit to make life easier.
AE.DDEManager.pas
As Delphi's TDDEClientConv is severely out-of-date and is not fully functional on newer releases, TAEDDEManager can take care of DDE server discovery and command execution.
AE.DLL.Loader.pas, AE.DLL.AutoLoader.pas
Helper classes to make interacting with DLL files less painful. TAEDLLLoader requires the descendant class to loading manually while TAEDLLAutoLoader discovers and loads all exported methods.
AE.Helper.TBytes.pas
Helper class to compare, fully clear and deallocate, via ZLib (de)compress, stringify and manipulate Delphi TBytes arrays.
AE.Misc.FileUtils.pas
Extracts specific version information from a given executable, like version number, product name, etc.
AE.Misc.Random.pas
TAERandom is a pure pascal pseudorandom generator which can have multiple individual instances with different seeds. Currently two useable version exists, TAEDelphiRandom and TAEXORShift.
AE.Misc.UnixTimestamp.pas
Before I realized Delphi now natively supports UTC converted Unix timestamps I used this unit to do those conversions. Now it only calls the Delphi methods.
MNB.ExchangeRate.SoapService.pas and AE.MNB.ExchangeRates.pas
Access the webservice of Hungarian National Bank, get exchange rates and convert between currency values. The first file is the WSDL import of the webservice of Hungarian National Bank, the second one is an installable component which makes it easy to convert between the supported currencies.
AE.Updater
TAEUpdater is a free to use application autoupdater. More information on DelphiPraxis.
AE.VirtualKeyboard.*.pas
A wrapper class to allow foreground or background threads to send key inputs to the active application, like actual keys were pressed on a keyboard. TAEVirtualKeyboard uses the actual keyboard layout and sends the text as unicode, while TAEVirtualEnUsKeyboard and TAEVirtualHuHuKeyboard translates special characters and sends the input as scan codes instead. These can be useful to type text to a RDP window, if the host system has no keyboard layout matching the clients.
