Delphi уроки - перетворюємо shape на м’яч
У цьому уроці я покажу вам як з легкістю зробити літаючу кульку у себе на формі. Ну, що відкриваємо Delphi, створюємо новий проект. Нам знадобиться компонент Shape із закладки Additional та компонент Timer із закладки System. Кидаємо їх на форму, клацаємо по компоненту shape і змінюємо властивість shape на ctCircle тепер замість квадрата компонент набуде форми кола. Усі на цьому попередні приготування завершені починаємо кодувати.
Після ключового слова var оголошено 4 глобальні змінні типу single
PosX, Posy, VelX, Vely: single;
Створюємо обробник подій на формі (OnCreate) простий клацнувши по ній 2 рази мишкою. Міжbegin end ; пишемо:
На цьому етапі ми присвоюємо раніше оголошеним змінним необхідні значення.
Далі нам доведеться створити одну невелику процедуру. Після ключового словаprivate пишемо
procedure shar();
Натискаємо клавіші Ctrl+Shift+C і Delphi автоматично згенерує заготівлю для нашої майбутньої процедури. Забігаючи вперед, відкрию вам не великий секрет, саме ця процедура і відповідатиме за політ кульки. Добре трохи відволіклися, вставляємо нижче наведений код між словами begin end у нашій процедурі.
// Поточна координата кульки + швидкість PosX: = PosX + VelX; PosY:= PosY+VelY;
// Що б кулька не вилітала за межі поля за шириною // Якщо X координата кульки більше ширини форми - ширини самої //кульки тоif PosX > ClientWidth - Shape1.Widththenbegin // X координата кульки надасть значення ширина форми - ширина //кулька PosX:= ClientWidth - Shape1.Width ; // Включаємо задню швидкість) або змінюємо значення швидкості на мінус VelX:= - VelX;endelseif PosX // Тут за аналогією тільки працюємо з Y координатоюif PosY > ClientHeight - Shape1.Widththenbegin POsY:= ClientHeight - Shape1.Width; VelY:= - VelY;endelseif PosY // Переміщуємо кульку у просторі Shape1.Left:= Round(PosX); Shape1.Top: = Round (PosY);
Змінні PosX та PosY зберігають координати положення кульки у просторі, VelX та VelY відповідають за швидкість його переміщення. ClientWidth, ClientHeight - ширина та висота форми. Shape1.Width ширина кульки.
Ну що впоралися з процедурою?! Добре їмо далі властивість Interval у таймера ставимо 10, а властивість Enabled = true. Клікаємо по компоненту timer двічі і в обробнику подій пишемо ім'я нашої процедури
На цьому все запускаємо проект і насолоджуємося результатом. А ось що вийшло у мене: