Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свой объект для работы с графикой. 
:(
    Опции темы
Cheburek
  Дата 21.4.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужен свой класс для работы с графикой по типу TImage. Вообщем работать он должен так же просто только нужно поменять с-му координат при отображении точки и несколько очень спецефиеских методов добавить. Так же надо будет в него инкапсулировать некоторые данные к графике отношение вообще не имеющие. 

Другими словами помогите выбрать папу. И как это дело потом можно будет нарисовать на форме?? Что-то у меня нифига не получаеться(( 
PM MAIL   Вверх
quard
Дата 21.4.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

И как это дело потом можно будет нарисовать на форме


Создаёшь новый компонент 

Цитата

Другими словами помогите выбрать папу


Папа - TGraphicControl или сам TImage 
PM MAIL   Вверх
Cheburek
Дата 21.4.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(quard @  21.4.2006,  19:04 Найти цитируемый пост)
Создаёшь новый компонент 

ссори за глупый вопрос - но это как в кратце.. если не сложно  smile 


Цитата(quard @  21.4.2006,  19:04 Найти цитируемый пост)
Папа - TGraphicControl или сам TImage 

А что предпочтительнее?( Мне из методов и своиств TImage нужен минимум)


И вообще не хочу я создавать новый компонент..  можно ли как-нибуть работать с TImage внутри другого класса? И если можно то с какими ограниениями?
  

Это сообщение отредактировал(а) Cheburek - 21.4.2006, 19:30
PM MAIL   Вверх
quard
Дата 21.4.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

А что предпочтительнее?( Мне из методов и своиств TImage нужен минимум)

Ну если тебе нужен минимум то TGraphicControl
В нем есть тока Канвас и еще несколько методов. Практически будешь работать с TCanvas с изменяемыми размерами...Много ручками приёдется писать((
 
PM MAIL   Вверх
Cheburek
Дата 21.4.2006, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



quard, спасибо, но я наверно этим путем не пойду... не хочу принципиально создавать новый компенент, а класс нужен чисто для удобства.. попробую как-нибуть его обособить.. 
PM MAIL   Вверх
quard
Дата 21.4.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ок. Че не получится - спрашивай!))) smile  
PM MAIL   Вверх
Alexeis
Дата 25.4.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Cheburek, нужен класс для хранения или вывода графики или и для того и другого smile  


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Cheburek
Дата 25.4.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



alexeis1, реализует физическую модель - которую впоследствии нужно выводить на экране. Но дело в том, что все изображаемые примитвы должны так же изменять параметры физиеской модели. Т.Е. два эти понятия неразрывно связаны друг с другом и не плохо бы было бы написать свою реализацию функций TCanvas... но что-то у меня не получилось ... я пошел по другому пути ... я обстрагировал физику... и создал методы которые в качестве параметра имеют объект TImage ... все работает, но это оч. не удобно, когда по сути существет один объект TImage его приходиться вписывать как параметр в кучу методов, вопрос:Можно ли в качестве поля класса сделать указатель(или я не знаю что..), что бы обращаться к TImage напрямую внутри метода, а не так как у меня сделано?  
PM MAIL   Вверх
Alexeis
Дата 25.4.2006, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



далеко не все понятно например:

Цитата(Cheburek @  25.4.2006,  09:56 Найти цитируемый пост)
 все изображаемые примитвы должны так же изменять параметры физиеской модели
 примитив - пасивный отображаемый элемент - как он что-то может менять?

Цитата(Cheburek @  25.4.2006,  09:56 Найти цитируемый пост)
 написать свою реализацию функций TCanvas
 - чем родные не устраивают?


Цитата(Cheburek @  25.4.2006,  09:56 Найти цитируемый пост)
 ... я пошел по другому пути ... я обстрагировал физику
 - а вот это наилучший из возможных вариантов!!!

А следующее я вообще не могу понять, может как-нибудь по другому сказать...

Цитата(Cheburek @  25.4.2006,  09:56 Найти цитируемый пост)
Можно ли в качестве поля класса сделать указатель(или я не знаю что..), что бы обращаться к TImage напрямую внутри метода, а не так как у меня сделано?  


Может вы имели ввиду это Form1.Image1.picture.... - т.е. явно использовать имеющийся экземпляр Image1?
  

Это сообщение отредактировал(а) alexeis1 - 25.4.2006, 11:22


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Cheburek
Дата 25.4.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



рисуем мы примитив -"пасивный отображаемый элемент" - но одновременно этот примитив - являеться физическим объектом - и его тоже надо описать... а что бы не было таких ошибок, что физ. об. создан но на экране не отображаеться или на экране отображаеться но как таковой не существует делаю я эти действия(создания физ. об. и его рисование) делаються  одновременно, в одной фнкции(точнее методе, класса который реализует. физ. модель), для этого приходиться в качестве параметра использовать объект TImage (ну что бы это дело можно было нарисовать), и кстати оч. много таких примитивов, т.е и методов и в каждом приходиться в качестве параметра использовать об. TImage, как бы можно сделать так, то бы можно было сразу создавать ссылку но один объект TImage при создании класса описывающую  физ. модель, и далее при создании всех примитивов ссылаться сразу на cсылку на  TImage ... короче я запутался объяснять, надо примерчик будет написать.. 
PM MAIL   Вверх
Alexeis
Дата 26.4.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Cheburek, Если решается данная конкретная задача, то не за чем делать какие-то ссылки. Можно привязаться к уже созданному TImage. И рисавать на нем на прямую, например так
Form1.Image1.picture.bitmap.Canvas.LineTo(x, y);
Если не нравится так длинно то можно

Код

With Form1.Image1.picture.bitmap.Canvas 
do
  Begin
     LineTo(x, y);
     .............
  end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Парис
Дата 1.5.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

FAQ раздела лежит здесь!


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




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


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

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