Shift: TShiftState);

begin

HCursor := 1;
end;
procedure TFPlot.ACalcExecute(Sender: TObject);
// Вызов "Калькулятора"

begin

ShellExecute(Handle, 1 open 1, 1Calc1,nil,nil,SW_RESTORE);
end;
procedure TFPlot.ASaveBMPExecute(Sender: TObject);

// Сохранят график в формате .bmp

begin

with SaveDialogl do begin DefaultExt:='bmp'; FilterIndex:=1; if(SaveDialogl.Execute)

then Chartl.SaveToBitmapFile(SaveDialogl.FileName);
end;
end;
procedure TFPlot.ASaveWMFExecute(Sender: TObject);

// Сохранят график в формате .wmf

begin

with SaveDialogl do begin DefaultExt:='wmf'; FilterIndex:=3; if(SaveDialogl.Execute)

then Chartl.SaveToMetafile(SaveDialogl.FileName);
end;
end;
procedure TFPlot.ASaveEMFExecute(Sender: TObject);

// Сохранят график в формате .emf

begin

with SaveDialogl do begin DefaultExt:=1emf'; Filterlndex:=2; if(SaveDialogl.Execute)

then Chartl.SaveToMetafileEnh(SaveDialogl.FileName) end;
end;

procedure TFPlot.ACopyBMPExecute(Sender: TObject); // Копирует график в Clipboard в формате .bmp begin

Chartl.CopyToClipboardBitmap;
end;

procedure TFPlot.ACopyWMFExecute(Sender: TObject); // Копирует график в Clipboard в формате .wmf begin

Chartl.CopyToClipboardMetafile(false);
end;

procedure TFPlot.ACopyEMFExecute(Sender: TObject); // Копирует график в Clipboard в формате .emf begin

Chartl.CopyToClipboardMetafile(true);
end;

procedure TFPlot.APrintPExecute(Sender: TObject); // Печать графика var i: integer; begin

if (PrintDialogl.Execute) then for i:=l to PrintDialogl.Copies do if (Sender = APrintP)

then Chartl.PrintPortrait else Chartl.PrintLandscape;
end;
procedure TFPlot.ChartlDblClick(Sender: TObject);

// Восстановление масштаба по умолчанию

begin

Chartl.UndoZoom;
end;
procedure TFPlot.AExitExecute(Sender: TObject);

// Завершение работы приложения

begin

Application.Terminate;
end;
procedure TFPlot.AHelpExecute(Sender: TObject);

// Вызов справки

begin

Application.HelpCommand(HELP_FINDER,0);
end;

procedure TFPlot.FormClose(Sender: TObject; var Action: TCloseAction); begin

if(ACursors.Checked or ACursMouse.Checked) then FCoord.Close;
end;

procedure TFPlot.FormCreate(Sender: TObject); begin

Seriesl.XValues.Order := loNone;
end;

end.

Начнем рассмотрение кода с основных процедур модуля BeginPlot, AddPoint, NullPoint, которые обеспечивают занесение точек в график. Но сначала надо пояснить хранение информации об областях недопустимых значений. Эта информация хранится в динамическом массиве ABad в виде пар чисел, определяющих нижние и верхние границы областей. В дальнейшем будет показано, как эта информация используется для рисования областей недопустимых значений.

Процедура BeginPlot подготавливает рисование нового графика, уничтожая информацию о прежнем графике. Сначала серия Seriesl очищается методом Clear от данных прежнего графика. Затем функцией SetLength обнуляется массив ABad, содержащий информацию об областях недопустимых значений прежнего графика. Сбрасывается в false глобальная переменная Bad, которая, как это будет видно далее, показывает, является ли предыдущая точка графика недопустимой. Значение false соответствует тому, что предыдущая точка допустимая. Последний оператор процедуры восстанавливает методом UndoZoom масштаб, если он был изменен пользователем при работе с предыдущим графиком.


⇐ Предыдущая страница| |Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Июнь
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31