Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нарисовать редактируемый примитив 
:(
    Опции темы
terek111
Дата 14.2.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



Вообщем нужно сделать прогу типо графического редактора с единственной назначением, это рисование редактируемого  примитива. Т.е. допустим примитив у нас квадрат, мы мышкой растягиваем его, отпускаем, и его размер фиксируеться, но еще  нужна возможность что бы этот же квадрат можно было растянуть или уменьшить.


Если кто знает как это примерно сделать можно, может какие есть стандартные функции. 

Помогите плз
PM MAIL   Вверх
_hunter
Дата 14.2.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



функции есть -- MoveTo/LineTo (или сразу квадрат тянуть)
как примерно сделать... примерно так:
http://forum.vingrad.ru/topic-124357.html
(вместо DC -- TCanvas, вместо линии -- примитив)



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
terek111
Дата 14.2.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



ок, с кое чем разобрался, но новый трабл всплыл, как сделать какой нибудь анти рефлеш, а то я рисую а при обновлении окна все исчезает

Это сообщение отредактировал(а) terek111 - 14.2.2007, 20:31
PM MAIL   Вверх
Klin
Дата 14.2.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Проверь правильность последовательности действий. Возможно нужно поправить значение Parent.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
_hunter
Дата 15.2.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



Цитата(terek111 @  14.2.2007,  19:55 Найти цитируемый пост)
 как сделать какой нибудь анти рефлеш

надеюсь что сделать нужно антирефреш...
тогда просто в OnPaint того, на канве чего рисуеш, рисуй свои примитивы...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
terek111
Дата 15.2.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



Цитата(_hunter @ 15.2.2007,  11:24)
Цитата(terek111 @  14.2.2007,  19:55 Найти цитируемый пост)
 как сделать какой нибудь анти рефлеш

надеюсь что сделать нужно антирефреш...
тогда просто в OnPaint того, на канве чего рисуеш, рисуй свои примитивы...


Все спасибо все работает )



Это сообщение отредактировал(а) terek111 - 16.2.2007, 22:58
PM MAIL   Вверх
terek111
Дата 19.2.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



Еще возник вопросо по поводу перемещение нарисованного на канве изображение. Надо что бы тыркая по ри сунку изображение двигалось синхронно мышке,  пишу вот так:
все это прописано в событие OnMouseMove

В этом куске есть нарисованный квадрат и первым IF  мы проверяем находитьс ли мышка на контуре квадрата, если да то поидее он должен двигатьс за мышкой, зажатие кнопки мыши фиксируеться, координаты начала передвижения соотвественно равно x и y 
Код

if(g[i][0]==x||g[i][1]==y||g[i][2]==x||g[i][3]==y)  //Проверяем наведена мышка на контур квадрата или нет
                 {
                  //закрашиваем старый квадрат
                 Canvas->Pen->Style=psSolid;  
                 Canvas->Pen->Color=clWhite;
                 Canvas->Rectangle(g[i][0],g[i][1],g[i][2],g[i][3]);


               //Смотрим как изменяеться координаты мыши, вычисляем разность между новыми и старыми координатами, и изменяем старые координаты
                 if(y<Y)
                   {g[i][1]=g[i][1]+Y-y;
                    g[i][3]=g[i][3]+Y-y;
                    }
                  else {
                        g[i][1]=g[i][1]-y+Y;
                        g[i][3]=g[i][3]-y+Y;
                        }
                  if(x<X)
                   {g[i][0]=g[i][0]+X-x;
                     g[i][2]=g[i][2]+X-x;
                     }
                  else {
                        g[i][0]=g[i][0]-x+X;
                        g[i][2]=g[i][2]-x+X;
                          }

 //Перерисовываем новый перемещенный квадрат
                 Canvas->Pen->Color=clLime;
                 Canvas->Rectangle(g[i][0],g[i][1],g[i][2],g[i][3]);
                  }
 Но в результате этого квадрат перемещаеться не плавно как мышка а как то рывками, короче не перемещение а бред. Может кто знает как сделать правильно, может я изночально что то не так делаю.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.