Steema Issues Database

Note: This database is for bugs and wishes only. For technical support help, if you are a customer please visit our online forums;
otherwise you can use StackOverflow.
Before using this bug-tracker we recommend a look at this document, Steema Bug Fixing Policy.



Bug 974

Summary: XE7: TChart on FMX TabControl hangs using "slide" animation
Product: FireMonkey TeeChart Reporter: yeray alonso <yeray>
Component: ChartAssignee: Steema Issue Manager <issuemanager>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: Normal    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows   
URL: http://www.teechart.net/support/viewtopic.php?f=17&t=15236
Chart Series: --- Delphi / C++ Builder RAD IDE Version:
Attachments: test error

Description yeray alonso 2014-10-22 05:36:41 EDT
Created attachment 311 [details]
test error

"Using the attached demo, make sure "TabItem1" is the selected tab at design-time; Run the app; click "Button2" to active "TabItem2" with the "Slide" animation;

If the "Chart1" is made visible by either setting "TabItem2" as selected at design-time, or by clicking "TabItem2" directly at run-time, then the "slide" transition will work (won't hang the app) from then on."

Using the actual sources, the app crashes at TTeeCanvas3D.ReDrawBitmap the second time it's called. FCanvas isn't nil (it was with v2014.12),  TTeeCanvas3D.TransferBitmap is called and it crashes in the line:

  ACanvas.DrawBitmap(FBitmap,RectF(0,0,FBitmap.Width,FBitmap.Height),

     RectF(ALeft,ATop,
           ALeft+{$IFDEF FMXSCALE}Round(FBitmap.Width/ACanvas.Scale){$ELSE}FBitmap.Width{$ENDIF},
           ATop +{$IFDEF FMXSCALE}Round(FBitmap.Height/ACanvas.Scale){$ELSE}FBitmap.Height{$ENDIF}),

     1 {AbsoluteOpacity},
     True);

Call Stack:

System._ROUND
:00407253 System::__linkproc__ ROUND()
FMXTee.Canvas.TTeeCanvas3D.ReDrawBitmap
FMXTee.Procs.TCustomTeePanel.Paint
FMX.Controls.TControl.PaintInternal

The problem may be ACanvas.Scale value: 7.81101302442025e-35; the first time TTeeCanvas3D.ReDrawBitmap is called Scale value is 1 and it works fine.