DHeight:=SHeight-SHeight/k;
end;
procedure Tcil.Deform;
begin
inherited;
DOsnov:=2*sqrt(SHeight*sqr(SOsnov*0.5)/DHeight);
end;
procedure TZagot.Draw;
begin
with Form1.Image1.Canvas do Fillrect(ClipRect);
m:=SHeight;
if SOsnov>m then m:=SOsnov;
if DHeight>m then m:=DHeight;
if DOsnov>m then m:=DOsnov;
m:=250/m;
Show(m*DHeight,m*DOsnov,clRed);
Show(m*SHeight,m*SOsnov,clBlack);
end;
procedure TCil.Show(Heig: Real; Osn: Real; Zc: TColor);
begin
with form1.image1.canvas do
begin
Pen.color:=zc;
Ellipse(160-Round(Osn*0.5),10+Round(m*SHeight-Heig), 160+Round(Osn*0.5),10+Round(m*SHeight-Heig+Osn*0.3));
Arc(160-Round(Osn*0.5),10+Round(m*SHeight),160+Round(Osn*0.5), 10+Round(m*SHeight+Osn*0.3),160-Round(Osn*0.5), 10+Round(m*SHeight+Osn*0.15),160+Round(Osn*0.5), 10+Round(m*SHeight+Osn*0.15));
MoveTo(160-Round(Osn*0.5),10+Round(m*SHeight-Heig+Osn*0.15));
LineTo(160-Round(Osn*0.5),10+Round(m*SHeight+Osn*0.15));
MoveTo(160+Round(Osn*0.5),10+Round(m*SHeight-Heig+Osn*0.15));
LineTo(160+Round(Osn*0.5),10+Round(m*SHeight+Osn*0.15));
end;
end;
Вышеописанные процедуры были закодированы для работы с цилиндрической заготовкой. Аналогичным образом кодируются процедуры для работы с четырехугольной заготовкой. Один из вариантов такого рода процедур помещен ниже.
procedure TPar.Deform;
begin
inherited;
DOsnov:=sqrt(SHeight*sqr(SOsnov)/DHeight);
end;
procedure TPar.Show(Heig: Real; Osn: Real; Zc: TColor);
begin
with form1.image1.canvas do
begin
Pen.Color:=zc;
Polygon([point(220-Round(Osn*0.5),10+Round(m*SHeight-Heig)), Point(220+Round(Osn*0.5),10+Round(m*SHeight-Heig)), Point(220+Round(Osn*0.2),10+Round(m*SHeight-Heig+Osn*0.3)), Point(220-Round(Osn*0.8),10+Round(m*SHeight-Heig+Osn*0.3))]);
MoveTo(220-Round(Osn*0.8),10+Round(m*SHeight-Heig+Osn*0.3));
LineTo(220-Round(Osn*0.8),10+Round(m*SHeight+Osn*0.3));
LineTo(220+Round(Osn*0.2),10+Round(m*SHeight+Osn*0.3));
LineTo(220+Round(Osn*0.5),10+Round(m*SHeight));
LineTo(220+Round(Osn*0.5),10+Round(m*SHeight-Heig));
MoveTo(220+Round(Osn*0.2),10+Round(m*SHeight-Heig+Osn*0.3));
LineTo(220+Round(Osn*0.2),10+Round(m*SHeight+Osn*0.3));
end;
end;
Для того, чтобы в рабочем окне программы при ее запуске отображалось поле графического экрана, необходимо добавить обработчик события, связанный с активацией формы. Делается это следующим образом. В инспекторе объектов на вкладке Events в правой части поля против строки OnAcnivate устанавливаем текстовый курсор и делаем двойной щелчок левой клавишей мыши. В ответ на это получаем заготовку процедуры
procedure TForm1.FormActivate(Sender: TObject);
begin
|
end;
В то место, где находится текстовый курсор, вставляем строку:
Form1.Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
3.3. Создание интерфейсной части программы
Создание интерфейсной части программы в DELPHI сводится к размещению на оконной форме необходимых компонентов, таких как: однострочные редакторы, переключатель, кнопки, метки, всплывающий список и т.п., и изменению свойств этих компонентов.
В окне дизайнера форм создадим интерфейс будущей программы, внешний вид которой приведен на рисунке 3. Для этого разместим необходимые компоненты, таким образом, как показано на рисунке. Имена некоторых компонентов, к которым в дальнейшем будем обращаться из программы, рекомендуем изменить на более удобные названия. На рисунке новые имена приведены в круглых скобках, которые должны быть прописаны в поле Name в окне инспектора объектов.
Рисунок 3 – Вид окна формы приложения
3.4. Обработка событий
Напишите обработчик нажатия на кнопку «Выход» самостоятельно. Для кнопки «Расчет» обработчик будет выглядеть следующим образом:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.