|
#1
|
||||
|
||||
Chart
Доброго дня всем.
Такой вопрос. Могу ли я изменить цвет столбца в графике с помощью ColorDialog? Таким образом я получаю координаты: Код:
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var r :Real; r1, r2 :String; begin R := Chart1.Series[0].XScreenToValue(X); Edit01.Text:= FloatToStr(R); R1:=Edit01.Text; r2:=Copy(r1,1,Pos(',',r1)-1); Edit02.Text:=r2; if r2='1' then begin N1.Visible:=True; N2.Visible:=False; end; if r2='2' then begin N1.Visible:=False; N2.Visible:=True; end; |
#2
|
|||
|
|||
Ну, если ты умеешь определять серию, то вот простенький пример:
Код:
procedure TForm1.Button1Click(Sender: TObject); begin ColorDialog1.Color := Chart1.Series[0].SeriesColor; if colorDialog1.Execute Then Chart1.Series[0].SeriesColor := ColorDialog1.Color; end; procedure TForm1.FormCreate(Sender: TObject); var I : Integer; begin For I := 1 To 10 Do Chart1.Series[0].AddX(Random(100)); end; Вторая процедурка - просто случайные значения для отладки. |
#3
|
||||
|
||||
Слепил так. Возможно что костыли. Но работает. Меня устраивает. Читаю и сохраняю так настройки.
Код:
procedure TForm1.ReadP; var IniFile: TIniFile; begin; IniFile := TIniFile.Create('c:\Prog\Set.ini'); Label01.Color:=IniFile.ReadInteger('Chart_Color','Y1',Label01.Color); Label02.Color:=IniFile.ReadInteger('Chart_Color','Y2',Label02.Color); Label03.Color:=IniFile.ReadInteger('Chart_Color','Y3',Label03.Color); IniFile.Free; end; procedure TForm1.WriteP; var IniFile: TIniFile; begin; IniFile := TIniFile.Create('c:\Prog\Set.ini'); IniFile.WriteInteger('Chart_Color','Y1',Label01.Color); IniFile.WriteInteger('Chart_Color','Y2',Label02.Color); IniFile.WriteInteger('Chart_Color','Y3',Label03.Color); IniFile.Free; end; Таким образом передаю данные и цвет в график: Код:
begin Chart1.Series[0].Clear; Chart1.Series[0].AddXY(1,y1,n1,Label01.Color); Chart1.Series[0].AddXY(2,y2,n2,Label02.Color); Chart1.Series[0].AddXY(3,y3,n3,Label03.Color); Меняю цвет: Код:
procedure TForm1.N2Click(Sender: TObject); begin ColorDialog1.Color := Label02.Color; if ColorDialog1.Execute Then Label02.Color := ColorDialog1.Color; WriteP; ReadP; end; |
#4
|
||||
|
||||
Для сохранения/восстановления настроек удобно применять специальные компоненты. Там указываешь, что надо сохранить - и всего делов.
|