p align="justify">// Встановлюємо колір та товщина Лінії границі зерен
// Заборона побудова Кіл, ЯКЩО смороду Прокуратура: за зону области побудова
if (x-radius) <0 then exit; (x + radius)> Image1.ClientWidth then exit; (y-radius) <0 then exit; (y + radius)> Image1.ClientHeight then exit;. Canvas.Brush.Style: = bsClear; Button = mbLeft then // ЯКЩО натиснута ліва клавіша ведмедики
image1.canvas.Ellipse (x-radius, y-radius, x + radius, y + radius); // будуємо коло з заданими параметрами
cxMemo1.Lines.Add (inttostr (j +1) + '. X =' + inttostr (x) + '; Y =' + inttostr (y) + '; R = '+ inttostr (radius)); // виводимо данні в текстовому вікні
j: = j +1; // підраховуємо кількість створеня центрів крісталізаціїї
x1 [j]: = x; y1 [j]: = y; r1 [j]: = radius; r [j]: = r1 [j]; // заносимості до відповідніх масівів координат та центрі та радіусів побудованіх Кіл
end;
При переміщені курсору в области побудова в StatusBar відображаються Поточні координати перехрестя.
procedure Tmain.Image1MouseMove (Sender: TObject; Shift: TShiftState; X,: Integer);. HairLinePos: = X; // визначення координат та х
RsRuler2.HairLinePos: = y; // визначення координат та y
StatusBar1.Panels [0]. Text: = Format ('X =% d, Y =% d pt', [X, Y]);. Panels [1]. Text : = Format ('X =% d, Y =% d мм', [round (X/96 * 25.4), round (X/96 * 25.4)]); // вивід значення на панель в пікселях та міліметрах
end;
Зміна одиниць вімірювання відбувається Наступний чином.
procedure Tmain.RsRulerCorner1Click (Sender: TObject); RsRulerCorner1.Units = ruPixel then // ЯКЩО Поточна одиниця - пікселі
begin.Units: = ruMilli;. Units: = ruMilli;. Units: = ruMilli; // ЯКЩО Поточна одиниця - міліметрі
begin.Units: = ruPixel;. Units: = ruPixel;. Units: = ruPixel;;;
Зміна інтервалу зростанню зерен відбувається за помощью наступної процедури.
procedure Tmain.dxBarSpinEdit2CurChange (Sender: TObject);. Interval: = round (dxBarSpinEdit2.Value * 1000); // встановлюємо Інтервал таймером
end;
За очищенням области побудова відповід...