是否可以在指定BCB中的Tchart圖表區間的顏色 |
|
ayaotu
一般會員 發表:2 回覆:3 積分:1 註冊:2006-10-13 發送簡訊給我 |
|
ayaotu
一般會員 發表:2 回覆:3 積分:1 註冊:2006-10-13 發送簡訊給我 |
===================引 用 文 章=================== 小弟要在Y軸地方用顏色來區分...0-10? 紅色 11-20 藍色 21-40 綠色..請問大大能在BCB中TChart圖表區分顯示出來嗎? 謝謝大大..小弟感恩.. ////////////////////////////////////////////////////////////////////////////////////////////////////////////// void __fastcall TForm1::Chart1BeforeDrawAxes(TObject *Sender) { //問題在黃色區域沒有顯示出來..請問那裡有出錯!? float p1,p2,p3,p4,t,T ; TRect tmpRect; TRect tmpRect1; p1=StrToFloat(Edit2->Text); // 下限 設定0 p2=StrToFloat(Edit3->Text); // 上限 設定10 //p1-p2區域顯示藍色 p3=StrToFloat(Edit4->Text); // 下限 設定11 p4=StrToFloat(Edit5->Text); // 上限 設定20 //p3-p4區域顯示黃色 if( p1 > p2 || p3 > p4 ) { T=p2; p2=p1; p1=T; t=p4; p4=p3; p3=t; } tmpRect = Chart1->ChartRect; Chart1->Canvas->Brush->Style=bsSolid; //設定線條樣式 Chart1->Canvas->Pen->Style=psClear; //設定填滿樣式 //adjust the rectangle dimension if ((p1 < Chart1->LeftAxis->Minimum) && (p2 > Chart1->LeftAxis->Minimum)) p1 = Chart1->LeftAxis->Minimum; if ((p1 < Chart1->LeftAxis->Maximum) && (p2 > Chart1->LeftAxis->Maximum)) p2 = Chart1->LeftAxis->Maximum; tmpRect.Bottom = Chart1->LeftAxis->CalcYPosValue(p1); tmpRect.Top = Chart1->LeftAxis->CalcYPosValue(p2); //set the brush color Chart1->Canvas->Brush->Color = clBlue; // 顏色 //paint !!! if(((p1 > Chart1->LeftAxis->Minimum) && (p1 < Chart1->LeftAxis->Maximum)) || ((p2 > Chart1->LeftAxis->Minimum) && (p2 < Chart1->LeftAxis->Maximum)) || ((p1 <= Chart1->LeftAxis->Minimum) && (p2 >= Chart1->LeftAxis->Maximum))) { Chart1->Canvas->Rectangle(tmpRect.Left Chart1->Width3D, tmpRect.Top - Chart1->Height3D, tmpRect.Right Chart1->Width3D, tmpRect.Bottom - Chart1->Height3D); } //以下黃色區域沒有顯示 tmpRect1 = Chart1->ChartRect; Chart1->Canvas->Brush->Style=bsSolid; //設定線條樣式 Chart1->Canvas->Pen->Style=psClear; //設定填滿樣式 if ((p3 < Chart1->LeftAxis->Minimum) && (p4 > Chart1->LeftAxis->Minimum)) p3= Chart1->LeftAxis->Minimum; if ((p3 < Chart1->LeftAxis->Maximum) && (p4 > Chart1->LeftAxis->Maximum)) p4= Chart1->LeftAxis->Maximum; tmpRect1.Bottom = Chart1->LeftAxis->CalcYPosValue(p3); tmpRect1.Top = Chart1->LeftAxis->CalcYPosValue(p4); Chart1->Canvas->Brush->Color = clYellow; // 顏色 //paint !!! if(((p3 > Chart1->LeftAxis->Minimum) && (p4 < Chart1->LeftAxis->Maximum)) || ((p3 > Chart1->LeftAxis->Minimum) && (p4 < Chart1->LeftAxis->Maximum)) || ((p3 <= Chart1->LeftAxis->Minimum) && (p4 >= Chart1->LeftAxis->Maximum))) { Chart1->Canvas->Rectangle(tmpRect1.Left Chart1->Width3D, tmpRect1.Top - Chart1->Height3D, tmpRect1.Right Chart1->Width3D, tmpRect1.Bottom - Chart1->Height3D); } } 請大大賜教與意見...小弟感激不盡.. |
ayaotu
一般會員 發表:2 回覆:3 積分:1 註冊:2006-10-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |