Tchart(Series)內 每點型態(style) 如何設不同的style? |
尚未結案
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 什麼是 QCSeries 啊?沒見過耶!Third Party Tools !? TLineSeries 的 OnGetPointerStyle 可以更改該 TLineSeries 的 TSeriesPointerStyle,不知是否合乎你的需求?
function TForm1.Series2GetPointerStyle(Sender: TChartSeries; ValueIndex: Integer): TSeriesPointerStyle; var I : Integer; begin I := ValueIndex mod 7; case I of 0 : Result := psRectangle; 1 : Result := psCircle; 2 : Result := psTriangle; 3 : Result := psDownTriangle; 4 : Result := psCross; 5 : Result := psDiagCross; 6 : Result := psStar; else Result := psRectangle end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
TQC Series 是 Tchart內的管製圖series啦
定義及描述如下:
Plots Quality controls charts.
--------------------------------------------------------
Unit
StatSeries
--------------------------------------------------------
Declaration
TQCSeries = class(TLineSeries)
--------------------------------------------------------
Description
The TQCSeries can be used to plot Quality Control Charts (variable and attribute charts). It inherits all TLineSeries properties/methods and introduces some new properties.
--------------------------------------------------------
Category
Control charts
-------------------------------------------------------- 大大你post的程式碼
我不知道要如何使用 ?? 該我把點都已經繪製完後
如何用迴圈 更改某些點的pointerstyle
|
No-where
一般會員 發表:31 回覆:53 積分:16 註冊:2002-09-05 發送簡訊給我 |
使用Fishman的方法
假設超過 UCL,LCL 的點為紅色-->畫圈
否為原本樣子 function TForm1.Series1GetPointerStyle(Sender: TChartSeries;
ValueIndex: Integer): TSeriesPointerStyle;
begin
if Sender.ValueColor[ValueIndex] = clRed then Result := psCircle
else Result := psRectangle;
end;
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 1.該 Series.Pointer.Visible 必須被設為 True;
Series.Pointer.Visible := True;2.該 TLineSeries 的 TSeriesPointerStyle 簡化程式碼如下 function TForm1.Series2GetPointerStyle(Sender: TChartSeries; ValueIndex: Integer): TSeriesPointerStyle; var I : Integer; begin I := ValueIndex mod 9; Result := TSeriesPointerStyle(I); end;3.TSeriesPointerStyle 只有九種 Type,如何做到完全不一樣? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 只要 Series.Pointer.Visible 設為 True 時,當 TLineSeries 重繪時,會自動呼叫該 Function(),因此只要在該 Function 中加入程式碼,並經過你的程式判斷後,對 Result 給值即可!
例如 Series1 當其值大於 100 時 PointerStyle 為圓形否則為三角形,程式碼如下:
function TForm1.Series1GetPointerStyle(Sender: TChartSeries; ValueIndex: Integer): TSeriesPointerStyle; begin IF TLineSeries(Sender).YValue[ValueIndex] > 100 then Result := psCircle ELSE Result := psTriangle; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |