如何取得動態產生的Series的值?? |
尚未結案
|
lovewoman
一般會員 發表:4 回覆:7 積分:2 註冊:2003-09-18 發送簡訊給我 |
各位前輩大家好
本人正在用Delphi 6.0寫一個圖形程式
series1 是原始資料的曲線
series2 是series1原始資料的5日移動平均線
也就是Series2的值來源是由Series1產生
且程式也畫出Series2了!! series2是TeeChart Pro7的內建函式產生的
現在我寫的程式是當滑鼠放在Series1的某個點時
我想在某個Lebel顯示Series2在同一點相對映的值...
但我一直找不到取得Series2的值的方法 麻煩各位前輩告知一下....3Q 我的程式如下 procedure TKlineP.DBChart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var tmp,n5:integer;
begin
tmp:=series1.Clicked(x,y);
if tmp<>-1 then
with series1 do
begin
n5:=series2.????????????? <======不知要寫什麼東東......
Label1.Caption:='5日: ' CurrToStr(N5);
end; end; 發表人 - lovewoman 於 2004/06/15 23:12:51
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
hi lovewoman, 試試
n5:=series2.YValue[Tmp]
或參考
http://delphi.ktop.com.tw/topic.php?topic_id=50435
----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
lovewoman
一般會員 發表:4 回覆:7 積分:2 註冊:2003-09-18 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi lovewoman, 那你拉一個 Memo 試試以下語法(D7 + Tchart)
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var I,J : Integer; AValueIndex : Integer; TmpSeies : TChartSeries; begin Memo1.Lines.Clear; FOR I := 0 TO TChart(Sender).SeriesList.Count - 1 DO BEGIN TmpSeies := TChart(Sender).SeriesList.Series[I]; AValueIndex := TmpSeies.GetCursorValueIndex; IF AValueIndex > -1 THEN BEGIN FOR J := 0 TO TChart(Sender).SeriesList.Count - 1 DO BEGIN TRY Memo1.Lines.Add(FloatToStr(TChart(Sender).SeriesList.Series[J].YValue[AValueIndex])); EXCEPT END; END; TChart(Sender).Hint := FloatToStr(TmpSeies.YValue[AValueIndex]); TChart(Sender).ShowHint := True; EXIT; END ELSE BEGIN TChart(Sender).ShowHint := False; TChart(Sender).Hint := ''; END; END; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
lovewoman
一般會員 發表:4 回覆:7 積分:2 註冊:2003-09-18 發送簡訊給我 |
還是有問題
且是語法錯誤.... 錯誤如下
引言: Hi lovewoman, 那你拉一個 Memo 試試以下語法(D7 Tchart)procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var I,J : Integer; AValueIndex : Integer; TmpSeies : TChartSeries; begin Memo1.Lines.Clear; FOR I := 0 TO TChart(Sender).SeriesList.Count - 1 DO BEGIN TmpSeies := TChart(Sender).SeriesList.Series[I]; ----------=====>沒這個東東.... AValueIndex := TmpSeies.GetCursorValueIndex; IF AValueIndex > -1 THEN BEGIN FOR J := 0 TO TChart(Sender).SeriesList.Count - 1 DO BEGIN TRY Memo1.Lines.Add(FloatToStr(TChart(Sender).SeriesList.Series[J].YValue[AValueIndex])); EXCEPT END; END; TChart(Sender).Hint := FloatToStr(TmpSeies.YValue[AValueIndex]); TChart(Sender).ShowHint := True; EXIT; END ELSE BEGIN TChart(Sender).ShowHint := False; TChart(Sender).Hint := ''; END; END; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- >>< face="Verdana, Arial, Helvetica"> |
lovewoman
一般會員 發表:4 回覆:7 積分:2 註冊:2003-09-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |