dbchart的錯誤訊息 |
缺席
|
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
請問各位前輩
當我資料只有一筆時去動態新增series為何會出現invalid pointer operation
只要大於一筆資料就不會有錯誤訊息這是什麼原因,要如何解決
資料如下
cname,date_,value
jvc,2004/5/1,55000
var myseries:TLineSeries; begin myseries:=TLineSeries.Create(DBChart1); myseries.ParentChart:=DBChart1; ADOQuery2.Open; myseries.DataSource:=ADOQuery2; myseries.XValues.ValueSource:='dt'; myseries.YValues.ValueSource:='val'; MySeries.Pointer.Visible:=true; MySeries.Pointer.Style:=psRectangle; DBChart1.AddSeries(myseries); end; |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi BOSS, 改為下列寫法試試
var myseries:TLineSeries; begin myseries:=TLineSeries.Create(Self); myseries.ParentChart:=DBChart1; ADOQuery2.Open; myseries.DataSource:=ADOQuery2; myseries.XValues.ValueSource:='dt'; myseries.YValues.ValueSource:='val'; MySeries.Pointer.Visible:=true; MySeries.Pointer.Style:=psRectangle; // DBChart1.AddSeries(myseries); end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi Boss, Sorry !! 剛剛試了,那個語法一樣不 work
原因似乎是出在你的欄位 DT 為日期格式(我猜的),若為數值狀態會正常
否則
procedure TForm1.Button1Click(Sender: TObject); var MySeries:TLineSeries; begin MySeries:=TLineSeries.Create(self); MySeries.ParentChart:=DBChart1; Query1.Close; Query1.Open; MySeries.DataSource:=Query1; Myseries.XValues.DateTime := True; Myseries.XValues.ValueSource:='DT'; Myseries.YValues.ValueSource:='Val2'; MySeries.Pointer.Visible:=true; MySeries.Pointer.Style:=psRectangle; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi BOSS, Check 你的 ADOQuery2 在 Open 以後有資料,以避免產生該錯誤訊息
procedure TForm1.Button1Click(Sender: TObject); var MySeries:TLineSeries; begin ADOQuery2.Close; ADOQuery2.Open; IF NOT ADOQuery2.IsEmpty then begin MySeries:=TLineSeries.Create(self); MySeries.ParentChart:=DBChart1; MySeries.DataSource:=ADOQuery2; Myseries.XValues.DateTime := True; Myseries.XValues.ValueSource:='DT'; Myseries.YValues.ValueSource:='Val'; MySeries.Pointer.Visible:=true; MySeries.Pointer.Style:=psRectangle; end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
Fishman兄
照你的方式去改了還是會出現錯誤,但是我若將Myseries.YValues.ValueSource:='Val'這行mark
就不會錯誤,怎會這樣 後來我將teechart更新到v5.02就不會有錯誤訊息不過那是試用版
procedure TForm1.Button1Click(Sender: TObject); var MySeries:TLineSeries; begin ADOQuery2.Close; ADOQuery2.Open; IF NOT ADOQuery2.IsEmpty then begin MySeries:=TLineSeries.Create(self); MySeries.ParentChart:=DBChart1; MySeries.DataSource:=ADOQuery2; Myseries.XValues.DateTime := True; Myseries.XValues.ValueSource:='DT'; // Myseries.YValues.ValueSource:='Val'; MySeries.Pointer.Visible:=true; MySeries.Pointer.Style:=psRectangle; end; end; |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi BOSS, 這個範例給你參考看看 D7 with TeeChart Standard 4.04 http://delphi.ktop.com.tw/loadfile.php?TOPICID=16277578&CC=364042 Good Luck !!
----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |