Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Взаимодействие компонентов   Найти похожие ветки 

 
Валерыч   (2003-01-05 03:23) [0]

Уважаемые мастера. Прошу помочь разобраться с проектированием новых комопонентов (а может объектов). Задача такая:
- нужен объект / компонент / запись или что-то другое как элемент некой картинки со свойствами: номер цвета из палитры для основного цвета клетки, четыре номера цветов из палитры для границ клетки
- нужен массив таких элементов как картинка, скорее всего оформленный как компонент, потому как хочется иметь набор методов по обработке картинки
- нужет компонент, умеющий нарисовать эту картинку и воспринимающий изменения, происходящие с ней, т.е. получающий соответствующие уведомления, если я чего-то даже програмно меняю в любой точке (предполагал отталкиваться от DrawGrid). желательно, чтобы он имел свойство, ссылающееся на картинку.
Я новичок и не понимаю как правильно выбрать где использовать компоненты, а где объекты, как правильно передавать уведомления об изменении свойств точки (элемента) компоненту отрисовки.
Заранее спасибо.


 
Валерыч   (2003-01-05 07:47) [1]

мастерааа...


 
Валерыч   (2003-01-08 04:18) [2]

всех с прошедшими празниками. кто-нибудь уже в состоянии мыслиить?


 
Валерыч   (2003-01-09 05:45) [3]

Ладно, попробую изменить вопрос.
Допустим я оформляю элемент как компонент с соответствующими свойствами, методами и событиями, среди которых есть OnChange
Затем я делаю компонент картинки, который имеет свое событие OnChange, при этом записывает в событие OnChange элемента свой обработчик, чтобы отлавливать изменения оного.
Далее я делаю компонент отображения, который должен ссылаться на компонент картинку и уметь перехватывать его OnChange. Но я хочу также оставить программеру (т.е. себе :))) возможность обрабатвыать паралельно данное событие. Значит я не имею права в компоненте отображения устанавливать обработчик OnChange картинки на свою процедуру, а должен сделать это как-то по другому. Вопрос КАК???
И еще. Для картинки как лучше выполнить хранилище элементов - динамический массив или какими-нибудь списками а ля в StringGride


 
Думкин   (2003-01-09 06:54) [4]

Еще немного измени вопрос и тебе помогут.

> Для картинки как лучше выполнить хранилище элементов - динамический
> массив или какими-нибудь списками а ля в StringGride

Каких элементов - какое хранилище?


 
Валерыч   (2003-01-10 05:05) [5]

Ладно, как говорится, осташиеся карты на стол. Хочу нарисовать жене небольшую прогу для вышивки крестом. Соответственно картинка - набор квадратиков, раскрашенных разными цветами из набора. Каждый такой квадратик - элемент картинки, который помимо основного цвета может быть ограничен каким-то дополнительным цветом с любой стороны (которых четыре). Картинка соответственно прямоугольная. Вот собственно и все.


 
Думкин   (2003-01-10 07:25) [6]

1.Я с DrawGrid не работал - но там есть возможность отрисовки каждой клетки, поэтому вроде можно и через него.
У тебя видимо проблема в том откуда брать и где хранить инфу для отрисовки каждго квадратика?
2. Можно создать свое.
а)Создаешь класс с картинкой и нужными свойствами и чтобы реагировал на изменения - какие?
б)Создаешь класс контейнер. Элементы класса а) держать можно по разному - ты и сам прописал возможности.
С onChange проблем не должно быть, только надо пояснить про какой Change идет речь, и как он должен влиять на класс контейнер.


 
Roma ©   (2003-01-10 15:46) [7]

Лучше TStringGrid (TDrawGrid - его прямой предок). Все необходимые события у него есть. Информацию о ячейках (какую хочешь) можно хранить в свойстве Objects. Надо только спроектировать свой объект, описывающий отдельную ячейку...
Не надо выдумывать (и делать) велосипеды (новые компоненты) - "все уже украдено до нас"... ;)


 
Валерыч   (2003-01-13 09:16) [8]

TStringGrid, конечно, очень хорошо, НО мне хотелось бы иметь возможность иметь картинку в чистом виде как компонент (объект) в программе, чтобы с ней манипулировать (изменять) без визуализации (например картинка за кадром). Т.е. компонент, который ее отображает на экране должен содержать ссылку на компонент самой картинки. Ну типа есть TStringList и TListBox.

По поводу событий на изменение: если я имею отдельный объект - картинку + компонент, который ее может отображать, то хочется иметь возможность реагировать компонентом отрисовки на изменение компонента картинки. Предположим я у картинки создаю событие OnChange, генерирующееся при любых изменениях оной. Первая мысль - компонент отображения цепляется к этому событию и реагирует. Тогда для программиста данное событие становится недоступно или потеряется связь с компонентом отображения. Т.е. картинка должна знать, отображает ли ее некий другой компонент, и, если отображает, уведомлять его при изменениях, оставляя программисту OnChange для своих нужд.


 
Думкин   (2003-01-13 09:25) [9]

Надо из объекта при изменении послать сообщение об этом.
Осталось разобраться - кому и куда.


 
KSergey ©   (2003-01-13 09:55) [10]

Может посмотреть как это реализовано для DataSource/DBGrid и т.п.? Как-то же там реализована именно такая механика.



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-72324
diks
2003-01-15 20:29
2003.01.23
checkbox


3-72105
Ozone
2002-12-27 10:26
2003.01.23
SQL запрос - как??????


14-72464
SerB
2003-01-05 11:54
2003.01.23
ActiveX в качестве ресурса


14-72484
VEG
2003-01-04 02:17
2003.01.23
html & JavaScript


1-72204
БурЖуй
2003-01-11 20:38
2003.01.23
определенее нажатия кнопки DEL в stringgrid