![]() |
|
|
#1
|
||||
|
||||
|
Доброго дня всем.
Такой вопрос. Могу ли я изменить цвет столбца в графике с помощью 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
|
||||
|
||||
|
Для сохранения/восстановления настроек удобно применять специальные компоненты. Там указываешь, что надо сохранить - и всего делов.
|