Page 1 of 1

TeeChart AV on changing ChartTool's name

Posted: Tue Sep 28, 2010 2:13 am
by 16556662
Hello

BDS2006+TeeChart2010.

At design time, I am adding four TColorBandTool to a Chart, and when I try to rename their name from automatically generated "ChartTool[2,3,4,5]" into meaningful: "WarningBand, MinorBand, MajorBand, CriticalBand" through BDS IDE (BTW, ChartEditor does not allow me to change the ChartTool's name), TeeChart have AV error with following stack:
+ $B[4224B7C3]{Tee910.bpl } Chart.TCustomChart.AxisTitleOrName + $B
+ $0[20006D23]{rtl100.bpl } System.System.@HandleAnyException (Line 9963, "sys\system.pas" + 13) + $0
+ $37[7C903275]{ntdll.dll } RtlConvertUlongToLargeInteger + $37
+ $9[7C90E485]{ntdll.dll } KiUserExceptionDispatcher + $9
+ $E[20FD7C98]{vclide100.bpl} PropBox.PropBox.TCustomPropListBox.DrawPropItem (Line 827, "propbox.pas" + 212) + $E
+ $2C[20FD8168]{vclide100.bpl} PropBox.PropBox.TCustomPropListBox.CNDrawItem (Line 976, "propbox.pas" + 7) + $2C
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $6[200FE4E7]{vcl100.bpl } StdCtrls.StdCtrls.TCustomListBox.WndProc (Line 4790, "StdCtrls.pas" + 43) + $6
+ $C[2013C1B4]{vcl100.bpl } Controls.Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
+ $11[201407F7]{vcl100.bpl } Controls.Controls.DoControlMsg (Line 7353, "Controls.pas" + 6) + $11
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $6[2013FDD0]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $F3[7E41D056]{USER32.dll } EnumDisplayMonitors + $F3
+ $17F[7E41B4BB]{USER32.dll } DefWindowProcW + $17F
+ $15D[7E44FCBD]{USER32.dll } CreateMDIWindowA + $15D
+ $10[7C90E470]{ntdll.dll } KiUserCallbackDispatcher + $10
+ $44[7E41B8FE]{USER32.dll } SendMessageW + $44
+ $46E[7E43CDA8]{USER32.dll } SetDlgItemTextA + $46E
+ $5DD[7E43CF17]{USER32.dll } SetDlgItemTextA + $5DD
+ $50F[7E43CE49]{USER32.dll } SetDlgItemTextA + $50F
+ $9B[7E43C9D5]{USER32.dll } SetDlgItemTextA + $9B
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $14A[7E418811]{USER32.dll } GetDC + $14A
+ $9C[7E41C63A]{USER32.dll } IsWindowUnicode + $9C
+ $16[7E41F658]{USER32.dll } CallWindowProcA + $16
+ $17[201407A3]{vcl100.bpl } Controls.Controls.TWinControl.DefaultHandler (Line 7334, "Controls.pas" + 23) + $17
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $6[200FE4E7]{vcl100.bpl } StdCtrls.StdCtrls.TCustomListBox.WndProc (Line 4790, "StdCtrls.pas" + 43) + $6
+ $6[2013FDD0]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $14A[7E418811]{USER32.dll } GetDC + $14A
+ $17F[7E41B4BB]{USER32.dll } DefWindowProcW + $17F
+ $1CD[7E41B509]{USER32.dll } DefWindowProcW + $1CD
+ $10[7C90E470]{ntdll.dll } KiUserCallbackDispatcher + $10
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $5[20159E7F]{vcl100.bpl } Forms.Forms.TCustomForm.WndProc (Line 3512, "Forms.pas" + 136) + $5
+ $6[2013FDD0]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $14A[7E418811]{USER32.dll } GetDC + $14A
+ $17F[7E41B4BB]{USER32.dll } DefWindowProcW + $17F
+ $1CD[7E41B509]{USER32.dll } DefWindowProcW + $1CD
+ $10[7C90E470]{ntdll.dll } KiUserCallbackDispatcher + $10
+ $8[530BFAD1]{exceptiondiag100.bpl} ExceptionDiagReg.ExceptionDiagReg.TExceptionHandler.HandleException (Line 211, "ExceptionDiagReg.pas" + 53) + $8
+ $B[0041586D]{bds.exe } AppMain.AppMain.TAppBuilder.MenuBarPopup (Line 6295, "ui\AppMain.pas" + 7) + $B
+ $7[201D16B8]{vcl100.bpl } AppEvnts.AppEvnts.TCustomApplicationEvents.DoException (Line 189, "appevnts.pas" + 2) + $7
+ $14[18124910]{ExceptionExpert10.bpl} ECommon.ECommon.TEurekaApp.ExceptionNotify (Line 212, "ECommon.pas" + 22) + $14
+ $F[20162A45]{vcl100.bpl } Forms.Forms.TApplication.HandleException (Line 8256, "Forms.pas" + 6) + $F
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $F3[7E41D056]{USER32.dll } EnumDisplayMonitors + $F3
+ $17F[7E41B4BB]{USER32.dll } DefWindowProcW + $17F
+ $15D[7E44FCBD]{USER32.dll } CreateMDIWindowA + $15D
+ $10[7C90E470]{ntdll.dll } KiUserCallbackDispatcher + $10
+ $44[7E41B8FE]{USER32.dll } SendMessageW + $44
+ $46E[7E43CDA8]{USER32.dll } SetDlgItemTextA + $46E
+ $5DD[7E43CF17]{USER32.dll } SetDlgItemTextA + $5DD
+ $87[7E43B193]{USER32.dll } DialogBoxParamA + $87
+ $10CA[7E463042]{USER32.dll } GetKBCodePage + $10CA
+ $1EA2[7E4355EE]{USER32.dll } WINNLSGetIMEHotkey + $1EA2
+ $9B[7E43C9D5]{USER32.dll } SetDlgItemTextA + $9B
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $14A[7E418811]{USER32.dll } GetDC + $14A
+ $9C[7E41C63A]{USER32.dll } IsWindowUnicode + $9C
+ $16[7E41F658]{USER32.dll } CallWindowProcA + $16
+ $17[201407A3]{vcl100.bpl } Controls.Controls.TWinControl.DefaultHandler (Line 7334, "Controls.pas" + 23) + $17
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $6[200FE4E7]{vcl100.bpl } StdCtrls.StdCtrls.TCustomListBox.WndProc (Line 4790, "StdCtrls.pas" + 43) + $6
+ $6[2013FDD0]{vcl100.bpl } Controls.Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E418731]{USER32.dll } GetDC + $6A
+ $14A[7E418811]{USER32.dll } GetDC + $14A
+ $122[7E4189C8]{USER32.dll } GetWindowLongW + $122
+ $A[7E4196C2]{USER32.dll } DispatchMessageA + $A

Re: TeeChart AV on changing ChartTool's name

Posted: Wed Sep 29, 2010 10:17 am
by narcis
Hi Liang,

I'm not able to reproduce this here using TeeChart VCL 2010.01 non-stable release available at the client area. Does this solve the problem at your end? If the problem persists please attach a simple example project we can run "as-is" to reproduce the problem here.

Thanks in advance.

Re: TeeChart AV on changing ChartTool's name

Posted: Thu Sep 30, 2010 7:33 am
by 16556662
Hello

As the stack indicates, this AV is related to the setting of the Axis.

If I leave the Axis empty, this AV will happen.

How can I upload a zipx or rar file? Seems that this forum will not allow me to do so

Re: TeeChart AV on changing ChartTool's name

Posted: Thu Sep 30, 2010 7:40 am
by narcis
Hello Liang,

Rename your file to another supported extension and let us know to which extension should we change it or post your files at the upload page.

Thanks in advance.

Re: TeeChart AV on changing ChartTool's name

Posted: Thu Sep 30, 2010 7:42 am
by 16556662
Hello

To reproduce the error:

1. Open ChartEditor
2. Add a ColorBand, leave Axis empty
3. Close ChartEditor
4. In the BDS IDE's component structure tree, click to select the ColorBand -->AV raised.

As far as I have set the Axis, there will be no AV.

Re: TeeChart AV on changing ChartTool's name

Posted: Thu Sep 30, 2010 7:46 am
by 16556662
just uploaded file name:

movie.rar

It contain two movies, one for AV, one for no AV

Re: TeeChart AV on changing ChartTool's name

Posted: Thu Sep 30, 2010 1:37 pm
by narcis
Hello Liang,

Thanks for the videos. I have been able to reproduce the issue here and added it (TV52015181) to the defect list to be fixed.

Re: TeeChart AV on changing ChartTool's name

Posted: Tue Oct 19, 2010 7:56 am
by narcis
Hi Liang,

Just wanted to let you know that TV52015181 has been fixed for next maintenance release. If you are a source code customer you can fix this implementing TAxisToolEditor.FormShow at TeeAxisToolEdit.pas as shown here:

Code: Select all

procedure TAxisToolEditor.FormShow(Sender: TObject);
begin
  AxisTool:=TTeeCustomToolAxis(Tag);

  if Assigned(AxisTool) then
  begin
    TeeAddAxes(AxisTool.ParentChart,CBAxis.Items,IncludeDepthAxes);

    With AxisTool do
    begin
      BPen.Enabled:=True;
      BPen.LinkPen(Pen);

      CBAxis.Enabled:=Assigned(ParentChart);

      if Assigned(ParentChart) then
      With ParentChart,CBAxis do
      if Axis=LeftAxis then ItemIndex:=0 else
      if Axis=RightAxis then ItemIndex:=1 else
      if Axis=TopAxis then ItemIndex:=2 else
      if Axis=BottomAxis then ItemIndex:=3 else
         ItemIndex:=Axes.IndexOf(Axis)-DepthAxesOffset;

      if (CBAxis.ItemIndex<0) and  (CBAxis.Items.Count>0) then
      begin
        CBAxis.ItemIndex:=0;
        CBAxisChange(CBAxis);
      end;
    end;

    {$IFDEF D5}
    if not IsPublishedProp(AxisTool,'Pen') then // do not localize
       BPen.Hide;    // <--- Bug, this does not work, Button is not hidden
    {$ENDIF}
  end
  else
    EnableControls(False, [BPen, CBAxis]);
end;