Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компонент Delphi Button




Begin

Begin

Begin

With Series1 do

Begin

Var

Const

Procedure

Implementation

Var

Procedure

Unit

Begin

Var

Const

A1 = 155;

A2 = 251;

A3 = 203;

A4 = 404;

i: word;

beginWith Series1 dobegin Clear;

Add(A1, 'Цех 1', clYellow);

Add(A2, 'Цех 2', clBlue);

Add(A3, 'Цех 3', clRed);

Add(A4, 'Цех 4', clPurple);

end;

Series2.Clear;

Series3.Clear;

for i:= 0 to 100 do

Series2.AddXY(0.02 * Pi * i, sin(0.02 * Pi * i), '', clRed);

Series3.AddXY(0.02 * Pi * i, cos(0.02 * Pi * i), '', clBlue);

end;

end;

Операторы Clear нужны, если в процессе работы приложения нужно обновлять данные. без этих операторов повторное выполнение методов Add и AddXY только добавит новые точки, не удалив прежние.
Если для данных, отображаемых в диаграмме предусмотрены две серии разных видов Pie и Bar: Series1 и Series4, то в событие OnClick диаграммы Chart1 можно ввести процедуру, изменяющую по требованию пользователя тип диаграммы.
Для того, чтобы загрузить данные в Series4 и сделать эту диаграмму в первый момент невидимой, можно вставить в конце приведенной ранее процедуры операторы:
Series4.Assign(Series1);//переписывает данные из Series1 в Series4
Series4.Active:=false;//делает невидимой Series4
Смена типа диаграммы делает процедура:
procedure TForm1.Chart1Click(Sender: TObject);
begin
Series1.Active:= not Series1.Active;
Series4.Active:= not Series4.Active;
end;
Для компонента Chart2 свойства AllowPanning и AllowZoom установлены в true, что позволяет прокрычивать наблюдаемую часть графика вовремя выполнения, нажимая правую кнопку мыши, и изменять во время выполнения масштаб изображения, вырезая фрагменты диаграммы или графика курсором мыши.
Компонент Chart также имеет метод Print, обеспечивющий печать. Предварительно может быть выполнен метод PrintPortrait, задающий книжную (вертикальную) ориентацию бумаги, или метод PrintLandscape, задающий альбомную (горизонтальную) ориентацию. Масштабировать размер печатаемого графика можно, вызвав предварительно метод PrintRect:
procedure PrintRect (Const R: TRect);
в котрором параметр R определяет размер области принтера, в которой осуществляется печать.

UChart;

interfaceusesWindows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, Series, TeEngine, TeeProcs, Chart,

ExtCtrls;

typeTForm1 = class (TForm)Panel1: TPanel;

Panel2:

TPanel;

Chart1: TChart;

Chart2: TChart;

Series1:

TPieSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4:

TBarSeries;

procedure FormCreate(Sender: TObject);

Chart1Click(Sender: TObject);

private { Private declarations}

public { Public declarations }

end;

Form1: TForm1;

 

{$R *.DFM}

 

TForm1.FormCreate(Sender: TObject);

A1 = 155;

A2 = 251;

A3 = 203;

A4 = 404;

i: word;

Clear;

Add(A1, 'Цех 1', clYellow);

Add(A2, 'Цех 2 ', clBlue);

Add(A3, ' Цех 3 ', clRed);

Add(A4, ' Цех 4', clPurple);

end;

Series4.Assign(Series1);

Series4.Active:= false;

Series2.Clear;

Series3.Clear;

for i:= 0 to 100 do

Series2.AddXY(0.02 * Pi * i, sin(0.02 * Pi * i), '', clRed);

Series3.AddXY(0.02 * Pi * i, cos(0.02 * Pi * i), '', clBlue);

end;

end;

 

procedure TForm1.Chart1Click(Sender:

TObject);

Series1.Active:= not Series1.Active;

Series4.Active:= not Series4.Active;

end;

end.

 

Компонент Delphi Button это простая командная кнопка. Командная кнопка Delphi Button используется для реализации в программе команд с помощью обработчика события OnClick этого компонента.

Один и тот же обработчик может обрабатывать события нескольких компонентов TButton (да и не только TButton, но и даже компонентов других типов). Для определения того, событие какого именно компонента нужно обрабатывать, используется встроенная переменная Sender типа TObject, обозначающая объект, вызвавший данное событие. Для иллюстрации этой возможности рассмотрим простую процедуру, определяющую нажатую кнопку.

Создадим обработчик кнопки Button1, а для Button2 и Button3 в Инспекторе Объектов на вкладке Events выберем событие OnClick, и из выпадающего списка выберем появившийся там обработчик Button1Click. Теперь он обрабатывает нажатие всех трёх кнопок.

 

  procedure TForm1.Button1Click(Sender: TObject); begin Form1.Caption:=(Sender as TButton).Caption; end;


Конструкция Sender as TButton позволяет работать со свойствами объекта Sender как со свойствами кнопки. Непосредственно же различить кнопку как объект можно обычным оператором сравнения:

if (Sender = Button1) then
Form1.Caption:=Button1.Caption;


Иногда события инициированы даже компонентами разных типов. В таком случае, проверить компонент какого типа вызвал событие, можно таким образом:

if (Sender is TButton) then
Form1.Caption:='Кнопка';

 




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 680; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.