Доброго времени суток, уважаемые пользователи!
Помогите разработать приложение, рисующее при нажатии левой кнопки мыши на форме красную горизонтальную линию, перемещающуюся при нажатии клавиш y,g,h,j с зажатой клавишей ctrl. Клавиша z — очистка формы.
Спасибо за внимание!
Устройства ввода
Что именно непонятно?
Рисование линии - модуль graph.
Отслеживание нажатия клавиш - модуль crt или wincrt, функция, если не ошибаюсь, readkey.
Если readkey возврадает y,g,h,j - начертить линию цветом фона поверх старой (затереть старую), изменить координаты, начертить новую
Рисование линии - модуль graph.
Отслеживание нажатия клавиш - модуль crt или wincrt, функция, если не ошибаюсь, readkey.
Если readkey возврадает y,g,h,j - начертить линию цветом фона поверх старой (затереть старую), изменить координаты, начертить новую
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 6
- Зарегистрирован: 01 окт 2013, 01:06
Хыиуду писал(а):Что именно непонятно?
Рисование линии - модуль graph.
Отслеживание нажатия клавиш - модуль crt или wincrt, функция, если не ошибаюсь, readkey.
Если readkey возврадает y,g,h,j - начертить линию цветом фона поверх старой (затереть старую), изменить координаты, начертить новую
LineTo не подойдет?
Буквенно-цифровые клавиши не работают при написании констант vk. Нужно их заменять на ord?
Что такое readkey?
LineTo - подойдет.
Что такое константы vk? Вообще проще всего сначала сделать небольшую вспомогательную программку, которая будет читать код пришедшей клавиши и его выдавать.
readkey - читает символ из буфера клавиатуры и возвращает его код
Что такое константы vk? Вообще проще всего сначала сделать небольшую вспомогательную программку, которая будет читать код пришедшей клавиши и его выдавать.
readkey - читает символ из буфера клавиатуры и возвращает его код
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 6
- Зарегистрирован: 01 окт 2013, 01:06
Константы vk_xxx - это виртуальные коды клавиш или же уникальный числовой идентификатор клавиши.
Не получается нарисовать горизонтальную линию.
При нажатии левой кнопки на мыше линии возникают в произвольном порядке - иногда горизонтально, иногда со сдвигом на диагональ.
Как исправить это?
Не получается нарисовать горизонтальную линию.
Код: Выделить всё
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Form1.Canvas.Brush.Style:=bsSolid;
Form1.Canvas.Brush.Color:=clBtnFace;
Form1.Canvas.FillRect(Rect(0,0,Form1.ClientWidth,Form1.ClientHeight));
Form1.Canvas.Pen.Color:=clRed;
Form1.Canvas.Brush.Style:=bsHorizontal;
Form1.Canvas.Brush.Color:=clred;
Form1.Canvas.LineTo(100,y);
Form1.Canvas.MoveTo(500,y);
end;
Как исправить это?
Сначала MoveTo, потом LineTo.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.