![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Cheburek |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.3.2006 Репутация: нет Всего: 1 |
Нужен свой класс для работы с графикой по типу TImage. Вообщем работать он должен так же просто только нужно поменять с-му координат при отображении точки и несколько очень спецефиеских методов добавить. Так же надо будет в него инкапсулировать некоторые данные к графике отношение вообще не имеющие.
Другими словами помогите выбрать папу. И как это дело потом можно будет нарисовать на форме?? Что-то у меня нифига не получаеться(( |
|||
|
||||
quard |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Создаёшь новый компонент
Папа - TGraphicControl или сам TImage |
||||
|
|||||
Cheburek |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.3.2006 Репутация: нет Всего: 1 |
ссори за глупый вопрос - но это как в кратце.. если не сложно ![]() А что предпочтительнее?( Мне из методов и своиств TImage нужен минимум) И вообще не хочу я создавать новый компонент.. можно ли как-нибуть работать с TImage внутри другого класса? И если можно то с какими ограниениями? Это сообщение отредактировал(а) Cheburek - 21.4.2006, 19:30 |
|||
|
||||
quard |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Ну если тебе нужен минимум то TGraphicControl В нем есть тока Канвас и еще несколько методов. Практически будешь работать с TCanvas с изменяемыми размерами...Много ручками приёдется писать(( |
|||
|
||||
Cheburek |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.3.2006 Репутация: нет Всего: 1 |
quard, спасибо, но я наверно этим путем не пойду... не хочу принципиально создавать новый компенент, а класс нужен чисто для удобства.. попробую как-нибуть его обособить..
|
|||
|
||||
quard |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Ок. Че не получится - спрашивай!)))
![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Cheburek, нужен класс для хранения или вывода графики или и для того и другого
![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Cheburek |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.3.2006 Репутация: нет Всего: 1 |
alexeis1, реализует физическую модель - которую впоследствии нужно выводить на экране. Но дело в том, что все изображаемые примитвы должны так же изменять параметры физиеской модели. Т.Е. два эти понятия неразрывно связаны друг с другом и не плохо бы было бы написать свою реализацию функций TCanvas... но что-то у меня не получилось ... я пошел по другому пути ... я обстрагировал физику... и создал методы которые в качестве параметра имеют объект TImage ... все работает, но это оч. не удобно, когда по сути существет один объект TImage его приходиться вписывать как параметр в кучу методов, вопрос:Можно ли в качестве поля класса сделать указатель(или я не знаю что..), что бы обращаться к TImage напрямую внутри метода, а не так как у меня сделано?
|
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
далеко не все понятно например:
- чем родные не устраивают? - а вот это наилучший из возможных вариантов!!! А следующее я вообще не могу понять, может как-нибудь по другому сказать...
Может вы имели ввиду это Form1.Image1.picture.... - т.е. явно использовать имеющийся экземпляр Image1? Это сообщение отредактировал(а) alexeis1 - 25.4.2006, 11:22 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Cheburek |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.3.2006 Репутация: нет Всего: 1 |
рисуем мы примитив -"пасивный отображаемый элемент" - но одновременно этот примитив - являеться физическим объектом - и его тоже надо описать... а что бы не было таких ошибок, что физ. об. создан но на экране не отображаеться или на экране отображаеться но как таковой не существует делаю я эти действия(создания физ. об. и его рисование) делаються одновременно, в одной фнкции(точнее методе, класса который реализует. физ. модель), для этого приходиться в качестве параметра использовать объект TImage (ну что бы это дело можно было нарисовать), и кстати оч. много таких примитивов, т.е и методов и в каждом приходиться в качестве параметра использовать об. TImage, как бы можно сделать так, то бы можно было сразу создавать ссылку но один объект TImage при создании класса описывающую физ. модель, и далее при создании всех примитивов ссылаться сразу на cсылку на TImage ... короче я запутался объяснять, надо примерчик будет написать..
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Cheburek, Если решается данная конкретная задача, то не за чем делать какие-то ссылки. Можно привязаться к уже созданному TImage. И рисавать на нем на прямую, например так
Form1.Image1.picture.bitmap.Canvas.LineTo(x, y); Если не нравится так длинно то можно
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Парис |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
Я когда-то сделал примерно так: I_Physical = INTERFACE{интерфейс объекта, как физического} {описывем только то, что отностися к физике} END; I_Graphics = INTERFACE{интерфейс объекта, как графического} {описывем только то, что отностися к отрисовке} END; C_Physical = CLASS(TInterfacesObject, I_Physical){класс, физического объекта} {реализация физики} END; C_OurObject = CLASS(C_Physical, I_Graphics){результирующий класс} {реализация графики} PROCEDURE Paint(Canvas: TCanvas); END; то есть в качестве папы взял бы TInterfacesObject, а потом наращивал бы на него всё, что мне надо. Так как множество этих объектов, как физических объединено во что-то, на чём их надо отображать (например, если C_OurObject - это бильярдный шар, то множество этих шаров объединяет бильярдный стол), то был бы создан класс, состоящий в клиентском отношении с C_OurObject: С_OurSuperObject = CLASS ({А тут любой класс, который больше навится.}){тот самый "бильярдный стол"} OurObjects = Array Of C_OurObject; PROCEDURE Paint;{отрисовывает себя на своей же канве и говорит, чтобы OurObjects перерисовались на его канве. Что - то вроде Self.OurObjects[0].Paint(Self.Canvas)} END; Это сообщение отредактировал(а) Парис - 1.5.2006, 16:04 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |