Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Графический редактор


Автор: rthsobakas 3.3.2008, 20:15
Вообщем, я хочу сделать графический редактор типа Схематика в Пи Каде(если кто юзал). Вопрос в том  что я не знаю какие компоненты юзать? Можно канву использовать и прямо на дочерней форме рисовать,но это крайний случай. Может есть уже какий нить спец компоненты? Мне всего то надо форматки делать, размещать логический элементы(конънкторы дизъюнкторы и тд) и документации составлять. В чем лучше делать, вернее как ичто использовать(компоненты)?
Или хотя бы скажите канву какого элемента обычно программисты используют для таких случаев? просто рисовать на конве формы как то странно наверно...

Автор: VICTAR 3.3.2008, 21:32
Думаю PaintBox подойдет

Автор: Sanchezzz 3.3.2008, 21:38
тут выбор богат Tpaintbox, Timage из сторонних компонентов самый лучший пакет graphics32  быстрая от рисовка поддержка слоев. есть полный контроль над графикой если потрудится то можно второй фотошоп создать. 

Автор: lukas 3.3.2008, 21:44
помоему TImage с такой задачей справляется лучше чем TPaintBox, потому что во втором случае все что было нарисовано стирается с холста если окно было деактивировано...  smile 

Автор: THandle 3.3.2008, 21:48
А мне кажется что лучше использовать TPaintBox, хотя сам я юзаю graphics32, но не поработав с PaintBox/Image мне кажется туда лезть не стоит smile 

Автор: VICTAR 3.3.2008, 23:44
Цитата(lukas @  3.3.2008,  21:44 Найти цитируемый пост)
помоему TImage с такой задачей справляется лучше чем TPaintBox, потому что во втором случае все что было нарисовано стирается с холста если окно было деактивировано...  smile

Совершенно не согласен. У PaintBox есть OnPaint.
Image использовать крайне не рекомендую. 

Автор: ivan219 4.3.2008, 00:11
Рисуем в BitMap а потом на PaintBox в OnPaint отрисовываем.

Автор: lukas 4.3.2008, 18:07
VICTAR, 

почему же, ну и что есть OnPaint, у любого контрола можно прикрутить это событие при желании, а постоянно следить за тем чтоб твой рисунок не стерся при сворачивании окошка (конечно можно перекрыть Paint в TPaintBox, посмотреть что он там делает и переделать под себя). 

P.S. А почему не рекомендуешь?... потому что не логично?... Все логично  Image1.Canvas (это практически тотже PaintBox, который хранит в памяти TBitmap). Или ты хочешь сам следить за хранением картинки?

Автор: VICTAR 4.3.2008, 19:18
Цитата(lukas @  4.3.2008,  18:07 Найти цитируемый пост)
а постоянно следить за тем чтоб твой рисунок не стерся при сворачивании окошка

Если код отрисовки в OnPaint, то не надо ни за чем следить.
Цитата(lukas @  4.3.2008,  18:07 Найти цитируемый пост)
А почему не рекомендуешь?... потому что не логично?...

Как правило изображения получаются намного больше самого холста, TImage глупо пытается отрисовать все изображение, затрачивая при этом ресурсы. А используя TPaintBox мы можем контролировать какую часть изображения нам стоит отрисовать в данный момент.
Цитата(lukas @  4.3.2008,  18:07 Найти цитируемый пост)
Или ты хочешь сам следить за хранением картинки?

Именно так и делаю. В моем нынешнем проекте отображаются довольно большие изображения (более 2000 на 2000), которые при этом надо скроллировать и т.д. TImage с этой задачей не справляется.

Автор: rthsobakas 4.3.2008, 19:56
Цитата

тут выбор богат Tpaintbox, Timage из сторонних компонентов самый лучший пакет graphics32  быстрая от рисовка поддержка слоев. есть полный контроль над графикой если потрудится то можно второй фотошоп создать. 

заинтересовал!
Tpaintbox, Timage знаю их, а  самый лучший пакет graphics32 -не слыхал. Если не трудно поподробней что это за пакет? Дополнительный компонент что ли?

Автор: VICTAR 4.3.2008, 20:00
Да, это сторонний компонент. http://www.google.ru/search?hl=ru&q=graphics32&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f

Автор: rthsobakas 4.3.2008, 21:28
 я ни разу компонентов не устанавливал ещё. Графикс32 скачал. потом в делфи component->install component  вышло окно , перешел на вкладку into new component(типо новый компонент), потот в строке Package file name выбрал из папки графикс32 выбрал gr32_d5 (там много их какой выбирать хз)... Потом он мне написал Do you want replace it?(типо он уже exist)   Я нажимаю ok потом какая то форма вылазить с 3 checkbox`ами  Create Form . Create Unit. Create Text
и все! короче я че то не то делаю наверно в палитре компонентов где его искать?

Автор: Sanchezzz 5.3.2008, 19:40
не знаю куда ты его установил но должно на быть палитре "Graphics32" . выбирай нужный пакет из папке Packages для твоей версии и устанавливай. У меня никаких проблем с установкой не было.

Автор: ivan219 5.3.2008, 20:40
Их там два пакета.
GR32_DSGN_D7
GR32_D7
Установи оба.

Автор: rthsobakas 6.3.2008, 12:07
Цитата

Их там два пакета.
GR32_DSGN_D7
GR32_D7
Установи оба.

ага... спасиб

Автор: MaXL 6.3.2008, 12:59
Я бы всё таки порекомендовал использовать именно TPaintBox.
1) Неболее как пол года назад, писал на нём простенький графический редактор, с возможностями почти как у Пэинта, встроенного в винду. Неплохо получилось, даже рисовал, и не было никаких затупов.
2) При рисовании на TImage рисование немножко поттупает, хотя ожет быть это были глюки реализации, но вот с TPaintBox всё шло как по маслу.
3) Препод принял работу  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)