Page 1 of 2

!!Help Error transferring internal using BitBlt

Posted: Mon Mar 21, 2011 8:22 am
by 16658337
Environment: WindowXp
Program language : VC++ / vs2008
pop a messagebox (error transferring internal bitmap using bitblt
d:\steema\root\teechartvcl\sources9\tecanvas.pas , line 6483)
how can i solution this porblem ?

Re: !!Help Error transferring internal using BitBlt

Posted: Mon Mar 21, 2011 11:58 am
by yeray
Hello,

It seems to be the same that was discussed here:
http://www.teechart.net/support/viewtop ... =3&t=11828

Re: !!Help Error transferring internal using BitBlt

Posted: Thu Mar 24, 2011 3:14 am
by 16658337
only hanppend when i add series as "scCircularGauge",
code:
m_GaugeTotal.Create(NULL, WS_CHILD|WS_VISIBLE, rtClient, this, 300);
//Round Blue Border
m_GaugeTotal.GetPanel().GetBorder().SetVisible(FALSE);
//No Background dark 3D shadow
m_GaugeTotal.GetPanel().SetBevelOuter(0);
m_GaugeTotal.GetPanel().SetBevelInner(0);

//Set Gradient
m_GaugeTotal.GetPanel().GetShadow().SetVisible(FALSE);
m_GaugeTotal.GetPanel().SetColor(Color::Transparent);
m_GaugeTotal.GetPanel().GetGradient().SetVisible(FALSE);

//No 3D Effect
m_GaugeTotal.GetAspect().SetView3D(FALSE);
//Use GDI+
m_GaugeTotal.GetAspect().GetGDIPlus().SetActive(TRUE);
//No Walls
//m_GaugeTotal.GetWalls().SetVisible(FALSE);
//m_GaugeTotal.GetWalls().GetBack().SetVisible(FALSE);
//No Title
m_GaugeTotal.GetHeader().SetVisible(FALSE);
m_GaugeTotal.GetWalls().GetBack().SetTransparency(50);
m_GaugeTotal.AddSeries(scCircularGauge);
m_GaugeTotal.Series(0).GetAsCircularGauge().SetCircled(TRUE);
m_GaugeTotal.Series(0).GetAsCircularGauge().SetTotalAngle(GAUGE_ROTATE_ANGLE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFace().SetColor(RGB(255, 255, 255));
m_GaugeTotal.GetAxis().GetBottom().GetLabels().GetFont().SetColor(RGB(0, 0, 0));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFace().GetGradient().SetVisible(FALSE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFace().SetTransparency(0);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetGreenLine().SetStartValue(25);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetGreenLine().SetEndValue(100);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetRedLine().SetStartValue(0);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetRedLine().SetEndValue(25);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().SetCircled(TRUE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().SetWidth(GAUGE_FRAME_WIDTH);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetOuterBrush().SetBackColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetOuterBrush().SetColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetOuterBrush().GetGradient().SetVisible(FALSE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetMiddleBrush().SetBackColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetMiddleBrush().SetColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetMiddleBrush().GetGradient().SetVisible(FALSE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetInnerBrush().SetBackColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetInnerBrush().SetColor(RGB(0, 0, 255));
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetInnerBrush().GetGradient().SetVisible(FALSE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetFrame().GetShadow().SetVisible(FALSE);

m_GaugeTotal.Series(0).GetAsCircularGauge().GetAxis().SetVisible(TRUE);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetAxis().GetLabels().GetFont().SetSize(8);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetAxis().SetMinorTickCount(4);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetMinorTicks().SetHorizontalSize(2);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetTicks().SetVerticalSize(12);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetTicks().SetHorizontalSize(3);
m_GaugeTotal.Series(0).GetAsCircularGauge().GetMinorTicks().SetVerticalSize(2);
m_GaugeTotal.Series(0).GetAsCircularGauge().SetMinorTickDistance(0);
m_GaugeTotal.Series(0).GetAsCircularGauge().SetRotateLabels(TRUE);

Re: !!Help Error transferring internal using BitBlt

Posted: Mon Mar 28, 2011 9:53 am
by yeray
Hello MXSoft,

I'm not able to reproduce the problem here. Could you please arrange a simple example we can run as-is to reproduce the problem here?

Re: !!Help Error transferring internal using BitBlt

Posted: Tue Mar 29, 2011 2:02 am
by 16658337
int CTCHART2010View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
m_GaugeTotal.Create(NULL, WS_VISIBLE| WS_CHILD, CRect(0,0, 300, 400), this, 900);
SetTimer(1, 500, NULL);
}

void CTCHART2010View::OnTimer(UINT_PTR nIDEvent)
{
if (m_nValue>100)
{
m_nValue = 100;
}
m_GaugeTotal.Series(0).GetAsCircularGauge().SetValue((m_nValue++)%100);

CView::OnTimer(nIDEvent);
}

when the window minimize on the remote computer.
hope u will get it.

Re: !!Help Error transferring internal using BitBlt

Posted: Thu Mar 31, 2011 10:29 am
by yeray
Hello,
MXSoft wrote:when the window minimize on the remote computer.
hope u will get it.
I'm afraid I still don't understand you concrete situation. It would be very helpful if you could try to arrange a simple example project we can run "as-is" to reproduce the problem and debug it here.
Also, please tell us what exact TeeChart version are you using and what exact steps should we follow to reproduce the problem in your application to reproduce the problem.
Thanks in advance.

Re: !!Help Error transferring internal using BitBlt

Posted: Fri Apr 01, 2011 9:23 am
by 16658337
version info:
9th November 2010
TeeChart Pro Activex Control v2010
v2010.0.0.2 Release
-----------------------------
test on the remote Desktop !!!

Re: !!Help Error transferring internal using BitBlt

Posted: Fri Apr 01, 2011 12:01 pm
by narcis
Hi MXSoft,

Thanks for the example project but I'm not able to reproduce it as some classes are missing, for example:

Error 1 error C2504: 'CWinAppEx' : base class undefined c:\tmp\tchart2010\tchart2010\tchart2010.h 18 1 TCHART2010
Error 3 error C2504: 'CWinAppEx' : base class undefined c:\tmp\tchart2010\tchart2010\tchart2010.h 18 1 TCHART2010
Error 4 error C2504: 'CFrameWndEx' : base class undefined c:\tmp\tchart2010\tchart2010\mainfrm.h 8 1 TCHART2010


Anyway, if this occurs when minimizing application mots likely this will be TV52015296 which Yeray pointed you at the beginning of this discussion. Can you please confirm this only occurs when using CircularGauge or happens with other series styles as well?

Thanks in advance.

Re: !!Help Error transferring internal using BitBlt

Posted: Sat Apr 02, 2011 6:07 am
by 16658337
not just CircularGauge
include scFastLine, scBar,scFastLine
Does TV52015296 fixed?

Re: !!Help Error transferring internal using BitBlt

Posted: Mon Apr 04, 2011 7:17 am
by narcis
Hi MXSoft,

Thanks for your feedback. I'm sorry but we still don't have a solution for this bug.

Re: !!Help Error transferring internal using BitBlt

Posted: Mon Apr 04, 2011 10:03 pm
by 16558153
We are also seeing this problem, but we are only using FastLine and Area series.

In most cases everything works just fine, but if I leave the system during the night I often find messageboxes on the screen in the morning saying the following:

Error transferring internal Bitmap using BitBlt (H:\Steema\TChartPro2010\Sources\TeCanvas.pas, line 6464)

So far I have only seen this on Windows XP, never on Vista or Windows 7.
Delphi XE is our development environment, and the TChart version is TChartPro 2010 from October 2010.

I have not done anything special to customize the chart, The only event we are using is OnGetLegendPos.

Also, in most cases everything works just fine, which of course makes this very hard to fix.
Our code is alsmost 1 million lines of code, and unfortunately I do not have a small demo that can reproduce the error.
I just downloaded the feb 2011 version, will try that out tonight.

Re: !!Help Error transferring internal using BitBlt

Posted: Tue Apr 05, 2011 7:13 am
by narcis
Hi MagFly,

So far we have been able to reproduce this issue minimizing application's window with remote desktop or switching users in the machine where the application is running. Does the error occurs in any of those circumstances at your end?

Thanks in advance.

Re: !!Help Error transferring internal using BitBlt

Posted: Tue Apr 05, 2011 9:06 am
by 16558153
No, it happens when no one interact with the application..
The only thing that takes place is that the application keeps filling the series.
There is also a chance that the error comes when a computer enters some kind of energy saving mode?

BTW, we are also using the TAntiAlias "Tool" on the chart.

Re: !!Help Error transferring internal using BitBlt

Posted: Tue Apr 05, 2011 9:12 am
by narcis
Hi MagFly,

Thanks for the info. I have increased issues' priority in the defect list to be investigated ASAP.
No, it happens when no one interact with the application..
The only thing that takes place is that the application keeps filling the series.
In that case it would be very helpful if you could arrange a simple example project we can run "as-is" and let us know the exact steps we should follow to reproduce the problem here.
There is also a chance that the error comes when a computer enters some kind of energy saving mode?
Is this under those circumstance that you get the exception?

Re: !!Help Error transferring internal using BitBlt

Posted: Tue Apr 05, 2011 9:54 am
by 16558153
I think that the best chance to reproduce this error is on Windows XP, using the TAntiAlias tool on a TChart and when the computer enters some kind of energysaving during the night when no one use the computer.
So far I have only seen the error in the morning when the system has been idle for a while, and it's always two error dialogs showing the same message (as I specified above in my first post).