Antivirus False positive in my executable

It is surprisingly common that Delphi applications are reported as (potentially) harmful by AV applications. It happened to me a while ago, using Delphi 2009, see http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Computing/2010_March_20#Delphi.2FAVG_Issue. At SO, we also have Virus in Delphi 7 Accidentally created a virus? and many more. It might be the actual Induc Virus. But most likely, it is … Read more

Delphi UUID generator

program Guid; {$APPTYPE CONSOLE} uses SysUtils; var Uid: TGuid; Result: HResult; begin Result := CreateGuid(Uid); if Result = S_OK then WriteLn(GuidToString(Uid)); end. Under the covers CreateGuid() calls one of the various APIs, depending on the platform. For example on Windows, it nowadays calls UuidCreate.

SynEdit for Firemonkey?

There most likely is not (at the moment): From the homepage: It is a pure-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls and so no run-time library is required. CLX or Component Library for Cross Platform is the cross-platform equivalent of the VCL – Borland’s widget library. From Nakeymonkey – native … Read more

How to direct the mouse wheel input to control under cursor instead of focused?

Scrolling origins An action with the mouse wheel results in a WM_MOUSEWHEEL message being sent: Sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window’s parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it … Read more

How to create a dialog like component that allows drop other controls inside it?

Take a closer look at TTabControl / TTabItem in the unit FMX.TabControl. This is your perfect example because it basically needs to solve the same problem. The following function is what you need to override: procedure DoAddObject(const AObject: TFmxObject); override; This is called when a control is added to your control. Override this function so … Read more