General information
Category:
ActiveX controls in VFP
if I use the repinat property how can I say to Mschart he has to repaint the chart again.
is it something like this or is there a method (I can't find one) ?
thisform.mschart.repaint=.F.
**fill the charg with data
thisform.mschart.repaint=.T.
if thisform.mschart.rowcount>0 and thisform.mschart.clomuncount>0
thisform.mschart.row=1
thisform.mschart.column=1
thisform.mschart.data=thisform.mschart.data
endif
>You can use the repaint property to stop this.
>
>Mace
>
>>Because, (If I'm not wrong)
>>everytime you set a datapoint from the MSChart-object, MSchart is repainting the Graph; if you set the it with an array the chart is painted in one time.
>>
>>I'm not sure about this because I can't test it.
>>>>Still no tricks.
>>>>
>>>>But, why don't you just create a wrapper method on your wrapper class?
>>>>This is quite a clean solution.
>>>>
>>>>Eg:
>>>>
>>>>LOCAL loObject AS oleChart
>>>>LOCAL loForm AS Form
>>>>LOCAL laMyArray[5]
>>>>
>>>>loForm = CREATEOBJECT( "FORM")
>>>>loForm.NewObject( "oleChart", "oleChart")
>>>>loObject = loForm.oleChart
>>>>
>>>>loObject.MySetData( @laMyArray)
>>>>
>>>>RETURN
>>>>
>>>>DEFINE CLASS oleChart AS OLEControl
>>>> OLEClass = "MSChart20Lib.MSChart.2"
>>>>
>>>>PROCEDURE MySetData
>>>>LPARAMETERS taDataArray
>>>>LOCAL lnRow, lnColumn
>>>>
>>>>EXTERNAL ARRAY taDataArray
>>>>
>>>>THIS.ColumnCount = ALEN( taDataArray,2)
>>>>THIS.RowCount = ALEN( taDataArray,1)
>>>>
>>>>FOR lnColumn = 1 TO THIS.ColumnCount
>>>> FOR lnRow = 1 TO THIS.RowCount
>>>> THIS.Column = lnColumn
>>>> THIS.Row = lnRow
>>>> THIS.Data = taDataArray[ lnRow, lnColumn]
>>>> ENDFOR
>>>>ENDFOR
>>>>
>>>>ENDDEFINE
>>>>
>>>>
>>>>>Thanks for your reply,
>>>>>I hope someone can help me and tell me if there's a trick for this, It would make my code (MsChart-wrapper) a lot cleaner.
>>>>>
Previous
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only