This crash happens only when the component is compiled in 64 bit mode and has a 3D series in it. It happens 100% of the time when you connect via remote desktop, disconnect and reconnect to the desktop that run the application. The teechart VCL code always raises an exception from this assert on line 8219 in the VCLTee.TeCanvas:
Assert(tmpRes,'Error transferring internal Bitmap using BitBlt');
I am using the latest teechart from December 2013. Below is the stack trace. Any ideas on how to fix it?
System._RaiseAtExcept(???,???)
System.SysUtils.AssertErrorHandler(???,???,0,$FFFFFFFF8E013285)
System._Assert(???,???,???)
VCLTee.TeCanvas.TTeeCanvas3D.TransferBitmap(0,0,$5551850)
VCLTee.TeCanvas.TTeeCanvas3D.ShowImage($5551850,$5551850,(0, 0, 741, 212, (0, 0), (741, 212)))
VCLTee.TeeGDIPlus.TGDIPlusCanvas.ShowImage($5551850,$5551850,(0, 0, 741, 212, (0, 0), (741, 212)))
VCLTee.TeeProcs.InnerDraw
VCLTee.TeeProcs.TCustomTeePanel.Draw($5551850,(0, 0, 741, 212, (0, 0), (741, 212)))
VCLTee.TeeProcs.TCustomTeePanel.Draw
VCLTee.TeeProcs.TCustomTeePanel.Paint
Vcl.Controls.TCustomControl.PaintWindow(8791756461717)
Vcl.Controls.TWinControl.PaintHandler($386BA80)
Vcl.Controls.TWinControl.WMPaint($7FEFD853DC0)
Vcl.Controls.TCustomControl.WMPaint(???)
System.TObject.Dispatch(???)
Vcl.Controls.TControl.WndProc(???)
Vcl.Controls.TWinControl.WndProc(nil)
VCLTee.TeeProcs.TCustomTeePanel.WndProc($12EC60)
Vcl.Controls.TControl.Perform(???,???,???)
Vcl.Styles.DrawControlBackground($FFFFFFFF8E013285,0)
Vcl.Styles.TCustomStyle.DoDrawParentBackground(???,???,???,False,nil)
Vcl.Themes.TCustomStyleServices.DrawParentBackground(???,???,???,True,$6CC5ED)
Vcl.Themes.TCustomStyleServices.DrawParentBackground(???,???,???,True,(407291720, 1, -1991767061, -225883943, (407291720, 1), (-1991767061, -225883943)))
Vcl.ComCtrls.TTrackBar.WMEraseBkGnd(???)
System.TObject.Dispatch(???)
Vcl.Controls.TControl.WndProc(???)
Vcl.Controls.TWinControl.WndProc($85)
Vcl.Controls.TWinControl.MainWndProc($6D45FE)
System.Classes.StdWndProc(???,???,???,???)
Crash in 3d series chart
Re: Crash in 3d series chart
Hello,
Please, send us a simple example project and some step-by-step instructions we can follow to reproduce the problem here.
Here is what I've done, and worked without problems:
- Create a new VCL Delphi application with XE5, with TeeChart Pro v2013.09 installed, in a Windows 7 x64 machine.
- Drop a TChart on the form
- Drop a TButton on the form
- Drop a TTeeCommander on the form
- Add a TBarSeries to the Chart1
- Put the following code:
- Change the Target platform from 32bit Windows to 64bit Windows.
- Run the application, still in the same machine.
- Go to a Win7 32bit machine and connect with the "Remote Desktop Connection" to the Win7 64bit machine where the 64bit application is running.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Open the remote session again.
- Do some zoom and scroll operations. Click the button some times.
- Open the editor. Remove the TBarSeries. Add a TSurfaceSeries. Add some random values to it. Close the editor.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Open the remote session again.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Go to the 64bit machine.
I see no error anywhere.
Please, send us a simple example project and some step-by-step instructions we can follow to reproduce the problem here.
Here is what I've done, and worked without problems:
- Create a new VCL Delphi application with XE5, with TeeChart Pro v2013.09 installed, in a Windows 7 x64 machine.
- Drop a TChart on the form
- Drop a TButton on the form
- Drop a TTeeCommander on the form
- Add a TBarSeries to the Chart1
- Put the following code:
Code: Select all
procedure TForm1.Button1Click(Sender: TObject);
begin
Chart1.Draw;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Series1.FillSampleValues;
end;
- Run the application, still in the same machine.
- Go to a Win7 32bit machine and connect with the "Remote Desktop Connection" to the Win7 64bit machine where the 64bit application is running.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Open the remote session again.
- Do some zoom and scroll operations. Click the button some times.
- Open the editor. Remove the TBarSeries. Add a TSurfaceSeries. Add some random values to it. Close the editor.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Open the remote session again.
- Do some zoom and scroll operations. Click the button some times.
- Close the remote session.
- Go to the 64bit machine.
I see no error anywhere.
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |