|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Крок 2. Написання коду для малювання лінійДеякі візуальні компоненти надають у розпорядження програміста полотно (Canvas), призначене для малювання. Наприклад, щоб намалювати на формі Form1 лінію з поточної позиції графічного курсору (PenPos) у точку (100, 100), необхідно записати: Form1.Canvas.LineTo(100, 100); Де LineTo є одним із методів вбудованого у форму полотна Canvas. Для того, щоб на полотні компонента залишався слід у процесі переміщення вздовж нього покажчика миші, необхідно згенерувати для компонента процедуру оброблення події OnMouseMove (при переміщенні миші). У дочірню форму нашого додатка вмонтований компонент Image, що також має полотно для малювання. Згенеруйте процедуру оброблення події OnMouseMove для компонента Image і вставте туди наступний рядок: Image.Canvas.LineTo(X, Y); Перегляньте результати програмування. Зверніть увагу, як параметри X і Y (координати миші) передаються в згенеровану процедуру оброблення ImageMouseMove. Ще одним параметром процедури ImageMouseMove є Shift: TShiftState, тобто набір, що містить стан натиснутих кнопок миші та клавіатури. Якщо необхідно, щоб лінія малювалася при натиснутій лівій кнопці миші, то процедуру оброблення події OnMouseMove треба змінити на наступну: If ssLeft in Shift Then Image.Canvas.LineTo(X, Y); Операція in перевіряє, чи міститься елемент ssLeft у наборі Shift, тобто, чи була натиснута ліва кнопка миші. Для того, щоб змінити колір лінії при малюванні на полотні, треба вибрати олівець (Pen): Image.Canvas.Pen.Color:= clRed; Цей запис встановлює колір (Color) олівця (Pen) у червоний (clRed). Додайте цей рядок в процедуру оброблення і перегляньте результати програмування. Після цього видаліть рядок. Примітка. Зверніть увагу, що у випадку необхідності компонент Image самостійно перерисовує (відновлює) зображення: наприклад, якщо форму згорнути та розгорнути, то малюнок компонента Image зберігається. Це і є основною перевагою використання компонента Image для малювання (при малюванні на полотні інших компонентів зображення треба відновлювати програмно при виникненні події OnPaint). Крок 3. Малювання графічних примітивів Додайте на панель інструментів ще одну кнопку швидкого доступу, назвіть її Circle (коло). Властивість GroupIndex установіть в 1: тепер кнопка кольору Color і кнопка малювання кола Circle відносяться до різних груп і їх поведінка незалежна. Властивість AllowAllUp установіть в true, що дозволить використовувати кнопку Circle як перемикач (натиснутий/віджатий стан). Натискання кнопки Circle переводить програму в режим малювання кола, що здійснюється при натисканні лівої кнопки миші на рисунку. Введіть у модулі ChildUnit дві нові глобальні змінні, які визначать координати кола: xc, yc: Integer; Згенеруйте для Image процедуру оброблення події OnMouseDown і введіть туди наступний код: //Якщо натиснута кнопка Circle Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |