2012-10-08 70 views
1

我有一個DBChart與5 PieSerie就可以了。 注意如何截斷最後一個餅圖。我能做些什麼來避免這種情況?我正在使用TeeChart Standard v2011.03.32815 VCL;除了改變顏色主題之外,我還沒有改變圖表的任何屬性。 When 5 charts are drawn together When only the chart in question is visible是什麼導致TeeChart PieSerie被截斷?

這裏是幀的DFM含有DBChart

object frmAdminStats: TfrmAdminStats 
    Left = 0 
    Top = 0 
    Width = 730 
    Height = 610 
    BiDiMode = bdRightToLeft 
    DoubleBuffered = True 
    ParentBiDiMode = False 
    ParentDoubleBuffered = False 
    TabOrder = 0 
    object DBChart1: TDBChart 
    Left = 0 
    Top = 0 
    Width = 730 
    Height = 610 
    AllowPanning = pmNone 
    Foot.Font.Name = 'Tahoma' 
    SubFoot.Font.Name = 'Tahoma' 
    SubTitle.Font.Name = 'Tahoma' 
    Title.Font.Name = 'Tahoma' 
    Title.Text.Strings = (
     '') 
    Title.Visible = False 
    BottomAxis.LabelsFont.Name = 'Tahoma' 
    BottomAxis.Title.Font.Name = 'Tahoma' 
    DepthAxis.LabelsFont.Name = 'Tahoma' 
    DepthAxis.Title.Font.Name = 'Tahoma' 
    DepthTopAxis.LabelsFont.Name = 'Tahoma' 
    DepthTopAxis.Title.Font.Name = 'Tahoma' 
    LeftAxis.LabelsFont.Name = 'Tahoma' 
    LeftAxis.Title.Font.Name = 'Tahoma' 
    Legend.Font.Name = 'Tahoma' 
    Legend.ResizeChart = False 
    Legend.TextStyle = ltsPlain 
    Legend.Title.Font.Name = 'Tahoma' 
    Legend.Transparent = True 
    Legend.Visible = False 
    Panning.MouseWheel = pmwNone 
    RightAxis.LabelsFont.Name = 'Tahoma' 
    RightAxis.Title.Font.Name = 'Tahoma' 
    TopAxis.LabelsFont.Name = 'Tahoma' 
    TopAxis.Title.Font.Name = 'Tahoma' 
    View3DOptions.Elevation = 315 
    View3DOptions.Orthogonal = False 
    View3DOptions.Perspective = 0 
    View3DOptions.Rotation = 360 
    Zoom.Allow = False 
    OnAfterDraw = DBChart1AfterDraw 
    OnBeforeDrawChart = DBChart1BeforeDrawChart 
    Align = alClient 
    TabOrder = 0 
    OnClick = DBChart1Click 
    ColorPaletteIndex = 13 
    object Series1: TPieSeries 
     LegendTitle = #1580#1606#1587#1740#1578 
     Cursor = crHandPoint 
     Marks.Arrow.Visible = True 
     Marks.Callout.Brush.Color = clBlack 
     Marks.Callout.Arrow.Visible = True 
     Marks.Visible = True 
     Title = #1580#1606#1587#1740#1578 
     XValues.Order = loAscending 
     YValues.Name = 'Pie' 
     YValues.Order = loNone 
     OnClick = Series1Click 
     ExplodeBiggest = 15 
     Frame.InnerBrush.BackColor = clRed 
     Frame.InnerBrush.Gradient.EndColor = clGray 
     Frame.InnerBrush.Gradient.MidColor = clWhite 
     Frame.InnerBrush.Gradient.StartColor = 4210752 
     Frame.InnerBrush.Gradient.Visible = True 
     Frame.MiddleBrush.BackColor = clYellow 
     Frame.MiddleBrush.Gradient.EndColor = 8553090 
     Frame.MiddleBrush.Gradient.MidColor = clWhite 
     Frame.MiddleBrush.Gradient.StartColor = clGray 
     Frame.MiddleBrush.Gradient.Visible = True 
     Frame.OuterBrush.BackColor = clGreen 
     Frame.OuterBrush.Gradient.EndColor = 4210752 
     Frame.OuterBrush.Gradient.MidColor = clWhite 
     Frame.OuterBrush.Gradient.StartColor = clSilver 
     Frame.OuterBrush.Gradient.Visible = True 
     Frame.Visible = False 
     Frame.Width = 4 
     OtherSlice.Legend.Visible = False 
     PiePen.Visible = False 
     RotationAngle = 75 
    end 
    object Series2: TPieSeries 
     Cursor = crHandPoint 
     Marks.Arrow.Visible = True 
     Marks.Callout.Brush.Color = clBlack 
     Marks.Callout.Arrow.Visible = True 
     Marks.Visible = True 
     SeriesColor = clRed 
     Title = #1576#1740#1605#1607' '#1711#1586#1575#1585#1575#1606 
     XValues.Order = loAscending 
     YValues.Name = 'Pie' 
     YValues.Order = loNone 
     OnClick = Series1Click 
     ExplodeBiggest = 15 
     Frame.InnerBrush.BackColor = clRed 
     Frame.InnerBrush.Gradient.EndColor = clGray 
     Frame.InnerBrush.Gradient.MidColor = clWhite 
     Frame.InnerBrush.Gradient.StartColor = 4210752 
     Frame.InnerBrush.Gradient.Visible = True 
     Frame.MiddleBrush.BackColor = clYellow 
     Frame.MiddleBrush.Gradient.EndColor = 8553090 
     Frame.MiddleBrush.Gradient.MidColor = clWhite 
     Frame.MiddleBrush.Gradient.StartColor = clGray 
     Frame.MiddleBrush.Gradient.Visible = True 
     Frame.OuterBrush.BackColor = clGreen 
     Frame.OuterBrush.Gradient.EndColor = 4210752 
     Frame.OuterBrush.Gradient.MidColor = clWhite 
     Frame.OuterBrush.Gradient.StartColor = clSilver 
     Frame.OuterBrush.Gradient.Visible = True 
     Frame.Visible = False 
     Frame.Width = 4 
     OtherSlice.Legend.Visible = False 
     PiePen.Visible = False 
     RotationAngle = 75 
    end 
    object Series3: TPieSeries 
     LegendTitle = #1576#1740#1605#1607' '#1711#1586#1575#1585#1575#1606' '#1605#1705#1605#1604 
     Cursor = crHandPoint 
     Marks.Arrow.Visible = True 
     Marks.Callout.Brush.Color = clBlack 
     Marks.Callout.Arrow.Visible = True 
     Marks.Visible = True 
     Title = #1576#1740#1605#1607' '#1711#1586#1575#1585#1575#1606' '#1605#1705#1605#1604 
     XValues.Order = loAscending 
     YValues.Name = 'Pie' 
     YValues.Order = loNone 
     OnClick = Series1Click 
     ExplodeBiggest = 15 
     Frame.InnerBrush.BackColor = clRed 
     Frame.InnerBrush.Gradient.EndColor = clGray 
     Frame.InnerBrush.Gradient.MidColor = clWhite 
     Frame.InnerBrush.Gradient.StartColor = 4210752 
     Frame.InnerBrush.Gradient.Visible = True 
     Frame.MiddleBrush.BackColor = clYellow 
     Frame.MiddleBrush.Gradient.EndColor = 8553090 
     Frame.MiddleBrush.Gradient.MidColor = clWhite 
     Frame.MiddleBrush.Gradient.StartColor = clGray 
     Frame.MiddleBrush.Gradient.Visible = True 
     Frame.OuterBrush.BackColor = clGreen 
     Frame.OuterBrush.Gradient.EndColor = 4210752 
     Frame.OuterBrush.Gradient.MidColor = clWhite 
     Frame.OuterBrush.Gradient.StartColor = clSilver 
     Frame.OuterBrush.Gradient.Visible = True 
     Frame.Visible = False 
     Frame.Width = 4 
     OtherSlice.Legend.Visible = False 
     PiePen.Visible = False 
     RotationAngle = 75 
    end 
    object Series4: TPieSeries 
     Cursor = crHandPoint 
     Marks.Arrow.Visible = True 
     Marks.Callout.Brush.Color = clBlack 
     Marks.Callout.Arrow.Visible = True 
     Marks.Visible = True 
     Title = #1662#1586#1588#1705#1575#1606 
     XValues.Order = loAscending 
     YValues.Name = 'Pie' 
     YValues.Order = loNone 
     OnClick = Series1Click 
     ExplodeBiggest = 15 
     Frame.InnerBrush.BackColor = clRed 
     Frame.InnerBrush.Gradient.EndColor = clGray 
     Frame.InnerBrush.Gradient.MidColor = clWhite 
     Frame.InnerBrush.Gradient.StartColor = 4210752 
     Frame.InnerBrush.Gradient.Visible = True 
     Frame.MiddleBrush.BackColor = clYellow 
     Frame.MiddleBrush.Gradient.EndColor = 8553090 
     Frame.MiddleBrush.Gradient.MidColor = clWhite 
     Frame.MiddleBrush.Gradient.StartColor = clGray 
     Frame.MiddleBrush.Gradient.Visible = True 
     Frame.OuterBrush.BackColor = clGreen 
     Frame.OuterBrush.Gradient.EndColor = 4210752 
     Frame.OuterBrush.Gradient.MidColor = clWhite 
     Frame.OuterBrush.Gradient.StartColor = clSilver 
     Frame.OuterBrush.Gradient.Visible = True 
     Frame.Visible = False 
     Frame.Width = 4 
     OtherSlice.Legend.Visible = False 
     PiePen.Visible = False 
     RotationAngle = 75 
    end 
    object Series5: TPieSeries 
     Cursor = crHandPoint 
     Marks.Arrow.Visible = True 
     Marks.Callout.Brush.Color = clBlack 
     Marks.Callout.Arrow.Visible = True 
     Marks.Visible = True 
     Title = #1576#1582#1588' '#1607#1575 
     XValues.Order = loAscending 
     YValues.Name = 'Pie' 
     YValues.Order = loNone 
     OnClick = Series1Click 
     ExplodeBiggest = 15 
     Frame.InnerBrush.BackColor = clRed 
     Frame.InnerBrush.Gradient.EndColor = clGray 
     Frame.InnerBrush.Gradient.MidColor = clWhite 
     Frame.InnerBrush.Gradient.StartColor = 4210752 
     Frame.InnerBrush.Gradient.Visible = True 
     Frame.MiddleBrush.BackColor = clYellow 
     Frame.MiddleBrush.Gradient.EndColor = 8553090 
     Frame.MiddleBrush.Gradient.MidColor = clWhite 
     Frame.MiddleBrush.Gradient.StartColor = clGray 
     Frame.MiddleBrush.Gradient.Visible = True 
     Frame.OuterBrush.BackColor = clGreen 
     Frame.OuterBrush.Gradient.EndColor = 4210752 
     Frame.OuterBrush.Gradient.MidColor = clWhite 
     Frame.OuterBrush.Gradient.StartColor = clSilver 
     Frame.OuterBrush.Gradient.Visible = True 
     Frame.Visible = False 
     Frame.Width = 4 
     OtherSlice.Legend.Visible = False 
     PiePen.Visible = False 
     RotationAngle = 75 
    end 
    end 
    object qStats: TADOQuery 
    Connection = dmLabData.ADOConnection 
    ExecuteOptions = [eoAsyncExecute] 
    Parameters = <> 
    Left = 48 
    Top = 40 
    end 
    object tmAdminStats: TJvTimer 
    Enabled = False 
    Interval = 5000 
    OnTimer = tmAdminStatsTimer 
    Left = 48 
    Top = 112 
    end 
end 
+0

一些代碼如何可以重現 –

+0

@DavidHeffernan實際上沒有代碼。每個餅圖都直接從查詢中繪製出來。類似於'SELECT COUNT(TestID)AS [Cnt],PatientTestSections.Name FROM PatientTests,PatientTestSections WHERE PatientTests.Sec = PatientTestSections.SecID AND PatientTests.PID = PatientTestSections.PID GROUP BY PatientTestSections.Name' for last chart –

+0

@DavidHeffernan I忘記。我在'AfterDraw'中有這樣的代碼來編寫每個系列的標題:'var i,X,Y:Integer; 開始 對於i:= 0至DBChart1.SeriesCount - 1做 與(DBChart1.Series [I]作爲TPieSeries),DBChart1.Canvas做 如果可見然後 開始 X:= CircleXCenter - (文本寬度(標題)DIV 2); Y:= CircleRect.Top +(CircleRect.Bottom - CircleRect.Top)div 2; TextOut(X,Y,Title); 結束; 結束; ' –

回答

1

恐怕這是一個已知的問題,因爲你可以閱讀here。這不是一個微不足道的問題,可能需要對系列進行徹底的重新設計才能得到修復。

+0

對不起聽說 –

+0

但是,它可能會與OpenGL很好地工作:http://www.teechart.net/support/viewtopic.php? F = 3&T = 11921&p = 51107#p52331 – Yeray