線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1814
推到 Plurk!
推到 Facebook!

TChart 上的排序與反排序問題

答題得分者是:pedro
KFC123_60201
一般會員


發表:58
回覆:18
積分:15
註冊:2006-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-17 11:27:05 IP:139.78.xxx.xxx 訂閱
對於TChart,在通過向series加入數據後,經過下面幾行代碼可以對Y值進行排序


[code delphi]
Self.MyChart.Series[0].YValues.Order := loDescending;
Self.MyChart.Series[0].YValues.Sort;
Self.MyChart.Series[0].XValues.FillSequence;
Self.MyChart.Repaint;
[/code]

這沒有甚麼問題,但我想知道在排序後如何才能夠回到初始狀態(即沒排序前)?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-17 14:29:06 IP:60.248.xxx.xxx 未訂閱
試了一下,反排序的確沒反應,用另一個方法是,再重新給新的資料或許可行?

procedure TForm1.FormCreate(Sender: TObject);
var
idx: integer;
x,y:Integer;
begin
for idx :=0 to 19 do
begin
x:=idx;
y:=random(1000);
chart1.Series[0].AddXY(x,y,'',clGreen);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Chart1.Series[0].YValues.Order := loDescending;
Chart1.Series[0].YValues.Sort;
Chart1.Series[0].YValues.FillSequence;
Chart1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
idx: integer;
x,y:Integer;
begin
// Chart1.Series[0].YValues.Sort;
// Chart1.Series[0].YValues.FillSequence;
// Chart1.Repaint;
Chart1.Series[0].Clear;
for idx :=0 to 19 do
begin
x:=idx;
y:=random(1000);
chart1.Series[0].AddXY(x,y,'',clGreen);
end;
Chart1.Series[0].YValues.Order := loNone;
end;
KFC123_60201
一般會員


發表:58
回覆:18
積分:15
註冊:2006-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-17 14:53:15 IP:139.78.xxx.xxx 訂閱
謝謝。雖然可以,但我的data比較多,而且用戶需要多次在有序與原序data裡轉換,這樣太慢了,不知有沒有其它方法?謝謝


===================引 用 pedro 文 章===================
試了一下,反排序的確沒反應,用另一個方法是,再重新給新的資料或許可行?

procedure TForm1.FormCreate(Sender: TObject);
var
idx: integer;
x,y:Integer;
begin
for idx :=0 to 19 do
begin
x:=idx;
y:=random(1000);
chart1.Series[0].AddXY(x,y,'',clGreen);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Chart1.Series[0].YValues.Order := loDescending;
Chart1.Series[0].YValues.Sort;
Chart1.Series[0].YValues.FillSequence;
Chart1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
idx: integer;
x,y:Integer;
begin
// Chart1.Series[0].YValues.Sort;
// Chart1.Series[0].YValues.FillSequence;
// Chart1.Repaint;
Chart1.Series[0].Clear;
for idx :=0 to 19 do
begin
x:=idx;
y:=random(1000);
chart1.Series[0].AddXY(x,y,'',clGreen);
end;
Chart1.Series[0].YValues.Order := loNone;
end;
系統時間:2024-03-29 17:18:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!