Smooth buttons - atom CPUs

I have been using the TMS VCL component set for a while and have never had any major issues. However, I recently discovered that programs that I am making using smooth buttons tend to crash on exit on computers with Atom CPUs.

These are simple programs that use one smooth button. They are compiled as DLLs with Delphi 2007. When the dll close the system either hangs or comes up with a "send to microsoft" dialog.

I have updated to the latest version but I am still having this issue.

Has anyone come across anything similar?

Is there any thing I can do to unload the button before exiting? I will play around with a demo program to tomorrow to see if I can narrow the problem down. I was hoping the update to latest component version would od the trick but it appears to have failed.

We've never received a similar problem report before. What OS is running on the machine that has a problem?
Do you have some sample source project with which we can reproduce the problem here?


I have stripped the unit right down and I have included a basic second executable that opens the dll.

The starter unit calls the dll which only displays a smooth button. Clicking that button closes the dll form. You return to the starter executable - pressing close then results in a windows error.

So far I have only had this issue on machines that have atom CPU, Windows XP but different manufacturers. Acer, MSI and Asus.

unit Unit1;


  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  TForm1 = class(TForm)
    AdvSmoothButton2: TAdvSmoothButton;
    procedure AdvSmoothButton1Click(Sender: TObject);
    { Private declarations }
    { Public declarations }

  Form1: TForm1;


{$R *.dfm}

procedure TForm1.AdvSmoothButton1Click(Sender: TObject);


I have attached the executables and the source code here.

I love the smooth controls so I really would like to see if we can work out what is going on.



One more thing - if I turn the DLL into an executable there is not crash.

Is this with TMS Component Pack v5.9.01?
If not, can you please first test with this version?

Correct - remember so far I have only found this issue on computers with a atom cpu

I cannot see any reason that there is something CPU specific in our code. 
Can you please verify the version of GDIPLUS.DLL on these systems? Perhaps something is wrong with the GDIPLUS.DLL on this specific machine with Atom CPU.

I am sure there is no cpu specirfic code but that doesn't mean cpus don't handle code differently.

I have not been able to test this idea (GDIPLUS) yet but I believe it is very unlikely as it occurs with windows xp with sp3 on computers from different manuafacturers. I have seen it occur on at least 4 different computers.

Did you try the code I sent? i.e., did you try to replicate on a computer with a atom cpu?

 I now have a windows 7 computer with an atom cpu available so I will try it on that one.

I have now also been able to replicate on a Pentium D 3Ghz (hyperthreaded) with Windows 7 64 bit - remove the smoothbutton and the problem goes away.

We have tested your sample application here and are unable to reproduce this issue.

Below you can find a link to a compiled version of your test sample. We have tested this here on a Windows 7 64 bit OS

Scheldeman Pieter

Pieter Scheldeman2011-02-14 03:40:53

HI Thanks for doing that.

I took your compiled code. I ran it on Windows 7 32 bit with Atom CPU and a Pentium D 64 Bit Windows 7 in both cases the app crashes when I try to close the original form.

i.e., I start it up - press the start DLL button. Then click the smooth button to close the dll form. Then close the main app and a windows message comes up to say that it has crashed.

I then took the app and tried it on a Windows XP computer with a Atom CPU inside and same thing - the moment I close main app - crash. Now don't forget if I replace smooth button with something else I don't see any of these issues.

On my own development computer Quad Core windows 7 64 bit I have no problem. No crash everything looks sweet.

I appreciate that you haven't been able to replicate however my guess is that there must be some resource that is not being released because the issue is real and does limit my options as what I can do with your components. 

We will investigate this here and see if we can reproduce this on different machines.

The latest build hasn't changed this issue. Luckily teh other components don't have the same problem (fingers xed as I have only used a handful in DLLs). Instead of smoothbuttons I have had to use glassbuttons. They will do, I suppose.