Нд, 28.05.2017, 00:12
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво
Безлимитный хостинг, бесплатный домен, бесплатный хостинг, Хостинг, dedicated, сервер, хостинг в Европе, хостинг в Германии, выделенный сервер

Сторінка 6 з 14«12456781314»
Модератор форуму: НІКОЛЯ, Ktara, Bandalak, volevikt 
Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.10 Вільне програмне забезпечення » Інтегроване середовище розробки Lazarus
Інтегроване середовище розробки Lazarus
Bandalak Дата: Ср, 15.02.2017, 22:06 | Повідомлення № 76
Лідер форуму
Повідомлень: 5125
Нагороди: 33
Рейтинг: 236
Цитата alex ()
Шановні колеги. 
Це повідомлення для тих хто використовує Підручник 8 клас автори РивкіндЙ.Я. Лисенко Т.І.  Чернікова  В.В. Шакотько.

Це тому, що програмування і ІКТ пишуть одні і ті ж автори. Якби Інформатику поділили на 2 предмети - таких проблем би не було!
volodschool2 Дата: Пн, 20.02.2017, 18:47 | Повідомлення № 77
Досвідчений учасник
Повідомлень: 1300
Нагороди: 12
Рейтинг: 242
Десь тут gromko запропонував проект з кнопочками-машинками, які мають їздити туди-сюди. Сьогодні на уроці робили, в деяких учнів навіть непогано вийшло. Замість кнопок ставили Image, підкинули в них зображення автомобільчиків (Делфі не розуміє png, виявилось, що лазарус розуміє). Учням не сподобалось керувати "пішоходом" кнопками на формі, хочуть керувати стрілками управління на клавіатурі. Пообіцяв на наступному уроці реалізувати такий варіант. Пробую удома це зробити, начебто все працює, код такий:

Код
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  case key of
  37:Shape2.Left:=Shape2.Left-10;
  38:Shape2.Top:=Shape2.Top-10;
  39:Shape2.Left:=Shape2.Left+10;
  40:Shape2.Top:=Shape2.Top+10;
end;
end;

У властивостях форми KeyPreview=>true. Але є одне але - при натискуванні на стрілки активуються по черзі контроли на формі. Може хтось підкаже, як позбутися цього ефекту.


Відредаговано: volodschool2 - Пн, 20.02.2017, 18:47
gry Дата: Пн, 20.02.2017, 20:51 | Повідомлення № 78
Наполегливий учасник
Повідомлень: 970
Нагороди: 2
Рейтинг: 90
Цитата volodschool2 ()
Учням не сподобалось
"Класні" у Вас учні....

Додано (20.02.2017, 19:51)
---------------------------------------------
Цитата volodschool2 ()
в деяких учнів навіть непогано вийшло


Відредаговано: gry - Пн, 20.02.2017, 20:52
sidaleks Дата: Пн, 20.02.2017, 21:13 | Повідомлення № 79
Новий користувач
Повідомлень: 1
Нагороди: 0
Рейтинг: 0
Цитата volodschool2 ()
Але є одне але - при натискуванні на стрілки активуються по черзі контроли на формі. Може хтось підкаже, як позбутися цього ефекту.
А якщо зробити через KeyPress

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  case Key of
    '4':s1.Left:=s1.left-10;
    '8':s1.top:=s1.top-10;
    '6':s1.left:=s1.left+10;
    '2':s1.top:=s1.top+10;
  end;
  end
Пилипчук_О_П Дата: Пн, 20.02.2017, 22:17 | Повідомлення № 80
Ветеран спілкування
Повідомлень: 3523
Нагороди: 27
Рейтинг: 256
Цитата volodschool2 ()
Делфі не розуміє png, виявилось, що лазарус розуміє
В такі моменти бажано зазначати версії продуктів. Не перевіряв, але маю сумнів, що сучасна версія Delphi не має засобів для роботи з png. Lazarus справді працює з png нормально (в межах того, що я випробовував :) )
volodschool2 Дата: Пн, 20.02.2017, 23:04 | Повідомлення № 81
Досвідчений учасник
Повідомлень: 1300
Нагороди: 12
Рейтинг: 242
Цитата sidaleks ()
А якщо зробити через KeyPress
Так то воно працює, але ж як задіяти саме кнопки з стрілочками?
Пилипчук_О_П Дата: Вт, 21.02.2017, 01:36 | Повідомлення № 82
Ветеран спілкування
Повідомлень: 3523
Нагороди: 27
Рейтинг: 256
Цитата volodschool2 ()
Так то воно працює, але ж як задіяти саме кнопки з стрілочками?
Тут: http://wiki.freepascal.org/LCL_Key_Handling написано, що стрілки генерують тільки події KeyDown/KeyUp. Тому KeyPress для стрілок не пройде. Якщо на формі немає інших елементів керування, то працює такий код (за умови підключення модуля lcltype):
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case key of
   VK_LEFT :S1.Left:=S1.Left-10;
   VK_UP   :S1.Top:=S1.Top-10;
   VK_RIGHT:S1.Left:=S1.Left+10;
   VK_DOWN :S1.Top:=S1.Top+10;
  end;
end;

За наявності інших елементів керування ще потрібно розібратись. Виявляється, така проста річ, як натискання кнопки, породжує достатньо складний процес...

swetikccc Дата: Вт, 21.02.2017, 12:14 | Повідомлення № 83
Ветеран спілкування
Повідомлень: 3699
Нагороди: 23
Рейтинг: 322
В шарпі поки що рух 1 об'єкту

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up)
                pictureBox1.Location = new Point(pictureBox1.Left, pictureBox1.Top - 10);
            if (e.KeyCode == Keys.Down)
                pictureBox1.Location = new Point(pictureBox1.Left, pictureBox1.Top + 10);
            if (e.KeyCode == Keys.Left)
                pictureBox1.Location = new Point(pictureBox1.Left-10, pictureBox1.Top );
            if (e.KeyCode == Keys.Right)
                pictureBox1.Location = new Point(pictureBox1.Left+10, pictureBox1.Top );
            
        }
volodschool2 Дата: Вт, 21.02.2017, 15:14 | Повідомлення № 84
Досвідчений учасник
Повідомлень: 1300
Нагороди: 12
Рейтинг: 242
Цитата Пилипчук_О_П ()
Якщо на формі немає інших елементів керування, то працює такий код
Тому то сьогодні з іншою паралеллю не використовували жодного контрала, тільки Image та Shape.
Цитата Пилипчук_О_П ()
За наявності інших елементів керування ще потрібно розібратись.
Для 8-го класу достньо і того, що є, а для себе можна спробувати розібратись.
Цитата Пилипчук_О_П ()
за умови підключення модуля lcltype
Не підключав, працює і без нього. "Зіткнення" не зробили, спробуємо наступного тижня.


Відредаговано: volodschool2 - Вт, 21.02.2017, 15:26
gromko Дата: Вт, 21.02.2017, 17:09 | Повідомлення № 85
Лінуксоїд
Повідомлень: 2363
Нагороди: 19
Рейтинг: 273
Ще одна "цікавинка".
Створюється форма розміром 600х500 (можна й більшу), при запуску на ній одна велика кнопка "Розпочати", при натиску на неї вона зникає, натомість у довільному місці форми з'являється маленька кнопочка, яку треба натиснути за 1,5 секунди. Встиг - тобі додається очко, не встиг - ні, але кнопка щезає і з'являється у новому місці.
Дуже хороша гра на реакцію і моторику руки. Код дуже простий.
Пилипчук_О_П Дата: Вт, 21.02.2017, 17:40 | Повідомлення № 86
Ветеран спілкування
Повідомлень: 3523
Нагороди: 27
Рейтинг: 256
Цитата volodschool2 ()
Цитата Пилипчук_О_П ()за умови підключення модуля lcltype

Не підключав, працює і без нього. "Зіткнення" не зробили, спробуємо наступного тижня.
В модулі LCLType описані константи VK_LEFT, VK_UP та інші, які я використав у своєму зразку. Тому цей модуль має бути підключений. Мені це довелось зробити вручну.
volodschool2 Дата: Вт, 21.02.2017, 19:10 | Повідомлення № 87
Досвідчений учасник
Повідомлень: 1300
Нагороди: 12
Рейтинг: 242
Цитата Пилипчук_О_П ()
VK_LEFT, VK_UP
Я використовував chr-коди, тому в мене працювало без модуля LCLType. Думаю, трохи зарано у 8-му класі пояснювати підключення сторонніх модулів, простіше пояснити, що кожній кнопці клавіатури відповідає числовий код.
Пилипчук_О_П Дата: Вт, 21.02.2017, 19:16 | Повідомлення № 88
Ветеран спілкування
Повідомлень: 3523
Нагороди: 27
Рейтинг: 256
Цитата volodschool2 ()
Я використовував chr-коди, тому в мене працювало без модуля LCLType.
При написанні програми, якщо це можливо, намагаюсь уникати "магічних" чисел. Це, як мінімум, робить текст читабельнішим.

Подібних констант багато: lazarus-ccr.sourceforge.net/docs/lcl/lcltype/index-2.html


Відредаговано: Пилипчук_О_П - Вт, 21.02.2017, 19:17
volodschool2 Дата: Вт, 21.02.2017, 19:23 | Повідомлення № 89
Досвідчений учасник
Повідомлень: 1300
Нагороди: 12
Рейтинг: 242
Ну, як кажуть, всі фломастери мають різний колір і смак  :Q
swetikccc Дата: Вт, 21.02.2017, 20:12 | Повідомлення № 90
Ветеран спілкування
Повідомлень: 3699
Нагороди: 23
Рейтинг: 322
Цитата gromko ()
Дуже хороша гра на реакцію і моторику руки. Код дуже простий.
Простий то він простий.
Потрібно розказати про таймер.
Подія тік таймера.
Врахувати ширину і висоту кнопки при генерації координат.
Виділити метод для перемалювання кнопки(бо одне й теж при події натисненя кнопки і події Тік)
Розказати як створити метод.
Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.10 Вільне програмне забезпечення » Інтегроване середовище розробки Lazarus
Сторінка 6 з 14«12456781314»
Пошук:


© Форум інформатиків України, 2007-2017.