vcl

Delphi: Why VCL is not thread-safe? How can be?

て烟熏妆下的殇ゞ 提交于 2019-11-29 00:47:06
Everywhere is noticed that VCL is not thread-safe and we must synchronize access to it. So it's VCL faults that is not thread-safe. How VCL itself can be thread-safe? What, precisely, does "thread-safe" mean to you? What about someone else? Every time I see this brought up, it ends up boiling down to this: "I want VCL to be thread-safe so I don't have to think about threading and synchronization issues. I want to write my code as if it is still single-threaded." No matter how much work went into making VCL so-called "thread-safe", there will always be situations where you can get into trouble.

【更新】LMD VCL Complete 2019.1发布

為{幸葍}努か 提交于 2019-11-28 21:56:31
LMD VCL Complete最新版本下载 LMD VCL Complete 包括所有当前的LMD Innovative VCL主要产品,包括所有独立包。 支持IDE和操作系统 支持任何Delphi /C++Builder VCL版本6或更高(包括新的Delphi /C++Builder 10.3 RIO)。 包括对XE2及更高版本的64位支持!下一个Delphi /C++Builder版本将在公共可用性之后立即得到支持。 支持的IDE Delphi 6及更高 C++ Builder 6及更高 Delphi 2005.NET - Delphi 2007.NET Delphi、C++和Delphi.NET的Turbo(2006)专业版本 所有相应的工作室产品(BDS 2006、CRS 2007、CRS 2009、RAD Studio 2010、XE、XE2、XE3、XE4等) 支持的操作系统 Win2K及更高 对于最近的Delphi /C++Builder版本,LMD VCL包支持与IDE中包含的VCL相同的平台(例如,Delphi 2009正式支持Wi2K或者更高)。 组件安装程序(代码签名) 所有组件安装程序现在都使用SHA1/SHA2证书进行了双重签名。 64位支持(Delphi XE2及更高版本) 所有的包都被移植到64位。例外:兼容控件(dcllmdlegacy

Ugly “disabled” images of TMainMenu

 ̄綄美尐妖づ 提交于 2019-11-28 19:20:00
问题 Delphi 2010, Win32 VCL. I need to create a main menu for my application with the most standard look. TMainMenu looks nice in all Windows versions, the only bad thing is when it displaying images for items with Enabled=False. Delphi has some strange method for building that disabled images (b/w extrusion with bevels, for me it looks like spew). I want to make a patch for that procedure in VCL sources and let menu to select disabled images from the same TImageList, but I can't find it. Is it

Delphi windows 7 control panel component

我们两清 提交于 2019-11-28 18:29:45
Im looking for a delphi component that looks and functions like the Windows 7 control panel buttons when you "view by category". Anybody know if something like this already exists? I just created a small component that looks sort of what you want. It is double-buffered, and hence completely flicker-free, and works both with visual themes enabled and disabled. unit TaskButton; interface uses SysUtils, Forms, Messages, Windows, Graphics, Classes, Controls, UxTheme, ImgList, PNGImage; type TIconSource = (isImageList, isPNGImage); TTaskButtonLinkClickEvent = procedure(Sender: TObject; LinkIndex:

What's the difference between Refresh, Update and Repaint?

时光总嘲笑我的痴心妄想 提交于 2019-11-28 18:10:12
I don't know which of those three methods suits me most. They all work for me. Does anyone know the difference between Refresh, Update and Repaint? According to the online documentation. Refresh - Repaints the control on the screen. Call Refresh method to repaint the control immediately. Refresh calls the Repaint method. Use the Refresh and Repaint methods interchangeably. Repaint - Forces the control to repaint its image on the screen. Call Repaint to force the control to repaint its image immediately. If the ControlStyle property includes csOpaque, the control paints itself directly.

Disabling progress bar animation on Vista Aero

二次信任 提交于 2019-11-28 11:12:18
I'm using a Delphi 2009 VCL TProgressBar as a kind of "empty/full" gauge. On Vista, with Aero theme enabled, this has an animation associated with it, which is annoying and inappropriate for an gauge. Is there any way of disabling this (NOT by adjusting user's theme settings!) to prevent the animation on this control? To clarify, I want something basically identical to the 'disk space used' meters in Windows Explorer. No animation, but still with a nice border and shading effects. Update: I understand that I need a "meter", rather than a true progress bar. How can a themed meter be implemented

Benchmarking affected by VCL

邮差的信 提交于 2019-11-28 09:59:31
问题 Today I ported my old memory benchmark from Borland C++ builder 5.0 to BDS2006 Turbo C++ and found out weird thing. exe from BCB5 runs OK and stable exe from BDS2006 measure OK only before main Form is started (inside its constructor) and if the benchmark is started again after main form is Activated or even after any VCL component change (for example Caption of main form) then the speed of benchmark thread is strongly affected. After some research I found out that: Does not mater if test is

Is there any way to get all the controls on a container control?

余生长醉 提交于 2019-11-28 09:55:50
I've got a form with a bunch of controls on it, and I wanted to iterate through all the controls on a certain panel and enable/disable them. I tried this: var component: TComponent; begin for component in myPanel do (component as TControl).Enabled := Value; end; But that did nothing. Turns out all components are in the form's component collection, not their parent object's. So does anyone know if there's any way to get all the controls inside a control? (Besides an ugly workaround like this, which is what I ended up having to do): var component: TComponent; begin for component in myPanel do if

C++Builder: Create a TForm with BorderStyle bsNone that is nevertheless movable and resizable

て烟熏妆下的殇ゞ 提交于 2019-11-28 06:07:41
问题 I'd like to have a TForm with BorderStyle = bsNone (no borders, no caption), which is nevertheless resizable and movable. I already figured out how to do the resizable part, but I'm stuck with getting it movable. /** * Overrides standard CreateParams method to create a TForm with BorderStyle * bsNone but is nevertheless movable and resizable **/ void __fastcall CreateParams(TCreateParams &Params) { BorderStyle = bsNone; TForm::CreateParams(Params); //set flag WS_EX_STATICEDGE //for more

DecimalSeparator in SysUtils and System.SysUtils

孤者浪人 提交于 2019-11-28 00:51:55
I need to find DecimalSeparator var SysUtils Delphi 7, in Delphi XE6 i tried to find in System.SysUtils, but without success. Someone can tell me where to find her in Delphi XE6? In Delphi 7 it is located in SysUtils.pas unit, in line 618: var CurrencyString: string; CurrencyFormat: Byte; NegCurrFormat: Byte; ThousandSeparator: Char; DecimalSeparator: Char; I need this variable to convert a component of Delphi 7 to XE6 My bad, first i needed to call FormatSettings, and then i can use in DecimalSeparator in Delphi XE6, FormatSettings.DecimalSeparator procedure ConfigureBrazilRegion; var