Inc(Days);
end;
{... а теперь вертикальную}
Canvas.TextOut(Width div 2 + 3, (Height div 2) - 2*PixelStep + 1, '+50%');
Canvas.TextOut(Width div 2 + 3, (Height div 2) - 4*PixelStep + 1, '+100%');
Canvas.TextOut(Width div 2 + 3,
(Height div 2) + 2*PixelStep - Canvas.TextHeight('-50%'),
'-50%');
Canvas.TextOut(Width div 2 + 3,
(Height div 2) + 4*PixelStep - Canvas.TextHeight('-100%'),
'-100%');
{Восстанавливаем значения шрифта}
Canvas.Font := svFont;
end;{with aBitmap}
end;
{*******************************************************************************
Процедура pbImagePaint
Назначение: Основная процедура создания графиков биоритмов
Параметры:
Нет.
*******************************************************************************}
procedure TfrmMain.pbImagePaint;
Var DayToDayPix : integer;
PicBio : TBitmap;
const point_size = 7;
begin
{Создаем "холст", на котором будем рисовать}
PicBio := TBitmap.Create;
try
{устанавливаем размеры "холста"}
{...ширина}
PicBio.Width := pbImage.Width; //350 pix
{...и высота}
PicBio.Height := pbImage.Height; //250 pix
with PicBio do begin
{будем использовать 2-х недельный интервал (14 дней)}
{... расстояние в пикселях между днями на графике}
DayToDayPix := Width div 14;
{Рисуем рамку вокруг графика}
{...рисовать будем сплошной линией}
Canvas.Pen.Style := psSolid;
{...и черным цветом}
Canvas.Pen.Color := clBlack;
{...с использованием примитива "прямоугольник"}
Canvas.Rectangle(0,0,Width,Height);
{------------------------------------------------------------------------}
{Рисуем оси и градуировку}
DrawAxis(PicBio, DayToDayPix);
{Рисуем справочную информацию}
DrawLegend(PicBio);
{Строим сами графики биоритмов }
DrawBioritm(PicBio, DayToDayPix);
{------------------------------------------------------------------------}
end; {end with PicBio}
{Отображаем в окне построенную картинку}
pbImage.Picture.Bitmap.Assign(PicBio);
finally
{Объект "холст" нам больше не нужен - уничтожаем его}
PicBio.Free;
end;{try - finally}
end;
{*******************************************************************************
Процедура btnSaveClick
Назначение: Обработка события при нажатии пользователем кнопки "Сохранить"
*******************************************************************************}
procedure TfrmMain.btnSaveClick(Sender: TObject);
begin
ExportPictureToFile;
end;
{*******************************************************************************
Процедура ChangeEvent
Назначение: Обработка события при изменении пользователем любого из
параметров:
- Имя пользователя
- Дата рождения
- Дата расчета
- Цвета отрисовки синусоид
*******************************************************************************}
procedure TfrmMain.ChangeEvent(Sender: TObject);
begin
pbImagePaint;