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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множественное редактирования, Определение одинаковых значений свойств 
:(
    Опции темы
Vas
Дата 13.2.2013, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как определить одинаковое значение свойства у нескольких объектов?

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

Пока мысль такая:
Просто перебором в цикле строить массив с встречающимися свойствами и ставить флаг видимости если есть оно у всех перебранных или невидимости если хоть у одного объекта его нет, в конце перебора получим массив свойств и значения флагов visible - true/false. 
А вот как сравнивать  значения? Обычным раавенством? Но как хранить текущее общее значение, ведь свойства могут содержать любые значения (ссылки, числа, строки), испоьзовать variant или выделять память и хранить указатели? Что-то как то с трудом себе представляю. 
Все-таки может есть какие-то более грамотные решения, а то какая то каша в голове. Ну или где почитать, ткните носом, поисковик отказывается меня понимать :(


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DarkProg
Дата 13.2.2013, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Просто пройдитесь по всем объектам искомого типа и выставьте соответствующее свойство.

Или я не понимаю что вы хотите  smile редактор что-ли с возможностью множественного выбора?


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Vas
Дата 13.2.2013, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(DarkProg @  13.2.2013,  14:52 Найти цитируемый пост)
редактор что-ли с возможностью множественного выбора? 

Именно так, причем при одинаковых значениях свойства - это значение должно быть в редакторе, а при разных значениях должна быть пустота.
Пример: на форме Label и Button
свойство Caption у обоих 'Бла-бла-бла', а свойство Visible у одного True у второго False. Так вот при одноврменном выделении обоих объектов в испекторе должны отображаться только свойства, присутствующие у обоих объектов, а значение соответсвенно быть выставлены для Caption 'Бла-бла-бла', а для Visible - пустое значение.

Это сообщение отредактировал(а) Vas - 13.2.2013, 15:03


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DarkProg
Дата 13.2.2013, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Ну так просто же можно smile

1-й выделенный забивает редактор своими значениями, потом выделяете второй и опять пытаетесь заполнить редактор, только где-то ставите флаг, что есть один выделенный(или массив отдельный бьёте содержащий выделенные в текущий момент элементы), проходитесь по редактору и если есть отличные значения, то вместо значения пишите пустоту и т.д. по всем свойствам, выделяете третий и следующие там смотрите есть ли разница, а если пустота вообще игнорируете свойство и всё smile

Вроде бы я теперь правильно понял smile


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Akella
Дата 13.2.2013, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Нужно во время исполнения программы показывать инспектор объектов? Может взять готовое решение, например, от Greatis.
PM MAIL   Вверх
Vas
Дата 14.2.2013, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  13.2.2013,  21:07 Найти цитируемый пост)
Нужно во время исполнения программы показывать инспектор объектов? Может взять готовое решение, например, от Greatis.

Почти, но больше нужно не готовое решение, а именно свое, под свои нужды, хотел посмотреть Greatis, скачал, а исходников нет :(

Цитата(DarkProg @  13.2.2013,  20:59 Найти цитируемый пост)
1-й выделенный забивает редактор своими значениями, потом выделяете второй и опять пытаетесь заполнить редактор, только где-то ставите флаг, что есть один выделенный(или массив отдельный бьёте содержащий выделенные в текущий момент элементы), проходитесь по редактору и если есть отличные значения, то вместо значения пишите пустоту и т.д. по всем свойствам, выделяете третий и следующие там смотрите есть ли разница, а если пустота вообще игнорируете свойство и всё

Понял правильно, но еще нужно показывать только одинаковые свойства. 

Видимо нет путевых решений, окромя перебора, ну ниче буду перебирать .


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
gesper
Дата 14.2.2013, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


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

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



В инспекторе свойств отображаются только имеющиеся у обоих параметры.

Можно разбить на отдельные фунции.

1. Если все объекты относятся к Классу родительскому, то включаем функцию показа свойств этого класса
2. Если и дальше по уровням.. какие совпадения в родительских классах. Если все относятся к одному классу, то включаем функцию загрузки свойств конкретно этого класса.

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

Это сообщение отредактировал(а) gesper - 14.2.2013, 13:25
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Vas
Дата 14.2.2013, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В принципе алгоритм немного набросал.

1. Берем выделенный объект и грузим его свойства и их значения в массив.
2. Далее запускаем цикл со следующего выделенного.
3. Перебираем свойства
4. Если свойство объекта входит в массив, то берем его значение.
5. Если значение свойства не пустое, то сравниваем, одинаковые - запоминаем, разные - обнуляем.

Ну собственно и все за исключением нюансов. В принципе с учетом того, что пользователь не сможет выделить сразу много объектов (тысяч 10), то думаю что на парсинг много времени уходить не будет.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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