Показать сообщение отдельно
Старый 09.09.2011, 12:58   #3   
Registered User
 
Сообщений: 1,113
Регистрация: 23.06.2007
Возраст: 58

Hopkroft вне форума Не в сети
Цитата:
Сообщение от -=Женек=- Посмотреть сообщение
Господа, нужна помощь.
Работаю в Builder XE, использую для рисования графики GDI+.
На TImage нарисована сеточка, а на сеточке толстая линия. Хочу перемещать эту линию нажатием на ее концы. То есть при перемещении линия должная стираться и рисоваться в новом месте.

Как это сделать? Если я буду каждый раз перерисовывать фон, будет мерцание. Может есть какой-то способ рисовать линию создавая ее как объект с параметрами? Наверняка в GDI есть какая-то функция для этого.

Спасибо.
1. У формы ставишь DoubleBuffered ->true
2. Координаты того чего хочешь нарисовать хранишь в массиве.
3. Я рисовал всё на PaintBox. Вешаешь в обработчике OnPaint. то что хочешь нарисовать. И когда происходит его вызов делаешь следующее.
3.1. Очищаешь холст.
3.2. Рисуешь координатную сетку (или что там у тебя)
3.3 Рисуешь из массива свои линии. (Скорее всего у тебя, координаты и матрица смежности, в случае если они соединены).

Делал по такому принципу. Мерцаний не заметил. Есть ещё метод когда сначала создают массив TBitMap и рисуют там, потом его копируют на холст. Но я делал по 1-ому способу и было всё ок.