powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти компоненты с определённым property
38 сообщений из 38, показаны все 2 страниц
Найти компоненты с определённым property
    #39917585
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано:
Проект
Какая-то проперция

//дефолтные проперции не отображаются в dfm

Найти:
Все компоненты в Проекте у которых есть эта проперция(даже наследников)

зы: знаю как тут любят ребят любящих готовые решения - я не претендую.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917588
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egor555,

нельзя.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917590
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
egor555
Дано:
Проект
Какая-то проперция

//дефолтные проперции не отображаются в dfm

Найти:
Все компоненты в Проекте у которых есть эта проперция(даже наследников)

зы: знаю как тут любят ребят любящих готовые решения - я не претендую.

открываешь FAR, и в поиске указываешь искать DFM с этой твоей "проперцию"
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917591
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

так дефолтных нет в dfm'ках

заработался поди
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917593
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эксперт.
Перебираем все файлы проекта и по очереди открываем формы.
Перебираем все компоненты на форме и у каждого выискиваем "проперцию"
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917599
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

Во-прервых: проектов много
Во-вторых: я так и делал

НООО - это не кошерно и не фэншуйно
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917601
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВо-прервых: проектов много
Во-вторых: я так и делал

Неважно количество проектов.
Так и делал ? То есть написал Эксперт, который ищет вашу "проперцию"

Тогда в чём вопрос то ?
Может быть в незнании что такое Эксперт ?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917602
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Што за "проперция"? Свойство чтоле?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917604
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

Слово Эксперт понял как твой ранг на sql.ru(думал советуешь ручками)
Делал вручную на одном из проектов
Я не настолько хороший программер, чтоб понять куда лезть - чего парсить
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917605
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, Properties на Object inspector
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917606
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egor555
Я не настолько хороший программер, чтоб понять куда лезть - чего парсить

Если не можешь написать программу, которая монотонно будет делать работу за тебя, то остаётся делать всё самому.

Упрощённый вариант - найти список компонентов у которых есть есть эта "проперция", а затем найти все файлы, где эти компоненты встречаются.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917607
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egor555
Найти:
Все компоненты в Проекте у которых есть эта проперция(даже наследников)

0. Научиться нормально говорить по-русски.
1. Вписать, например, в метод Loaded компонента простенький код типа "если свойство имеет такое значение, скинуть в файлик имена компонента и формы/фрейма"
2. Поочерёдно открыть все файлы проекта (при большом количестве можно за пять минут навалять код, который делает это через api, а ещё проще, наверное, через команду for командой строки)
3. Прочитать записанный файл с именами
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917609
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

1, 2 , 3 попробую(потом ибо времени мало), а 0 комментировать не буду ибо верю - пересечеися.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917611
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egor555
Во-прервых: проектов много

Вот гложит меня смутная мысль. А нафига?
Нафига нужно в туевой хуче проектов (неизвестно откуда взявшихся) искать компоненты с неким свойством?
Не могу никак себе представить реальную потребность в такой задаче.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917613
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener,

готовимся прыгнуть с D2007 на RIO
пользуем Девок
подопытными мышами было обнаружено, что ScrollbarMode(в D2007 по дефолту) им RIO'Девячий дефолт не подходит и они нас забодают
они нашли в cxGrid - я готовля один из проектов обнаружил(как это ни страно), что Scrollbar'ы используются не только там.....
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917614
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egor555
northener,

готовимся прыгнуть с D2007 на RIO
пользуем Девок
подопытными мышами было обнаружено, что ScrollbarMode(в D2007 по дефолту) им RIO'Девячий дефолт не подходит и они нас забодают
они нашли в cxGrid - я готовля один из проектов обнаружил(как это ни страно), что Scrollbar'ы используются не только там.....

И вас волнует только одна конкретная "проперция" у Девок???
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917615
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener,

у нас ERP - тупой EXE, который может дергать функции из DLL.
А у каждого программера DLL свой=проект.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917616
egor555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener
egor555
northener,

готовимся прыгнуть с D2007 на RIO
пользуем Девок
подопытными мышами было обнаружено, что ScrollbarMode(в D2007 по дефолту) им RIO'Девячий дефолт не подходит и они нас забодают
они нашли в cxGrid - я готовля один из проектов обнаружил(как это ни страно), что Scrollbar'ы используются не только там.....

И вас волнует только одна конкретная "проперция" у Девок???


Геммороя будет много, надо по максимуму устранить.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917617
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egor555
northener,

у нас ERP - тупой EXE, который может дергать функции из DLL.
А у каждого программера DLL свой=проект.

Это мне мало что объясняет. Разве что обоснование наличия кучи проектов.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917635
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egor555
подопытными мышами было обнаружено, что ScrollbarMode(в D2007 по дефолту) им RIO'Девячий дефолт не подходит и они нас забодают

Найти все dfm где есть cxGrid и вставить LookAndFeel.ScrollbarMode = sbmClassic
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917668
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конструктор грида вставить LookAndFeel.ScrollbarMode = sbmClassic
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917689
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egor555
Найти:
Все компоненты в Проекте у которых есть эта проперция(даже наследников)

Т.е. нужно написать программу, которая будет парсить DFM?
загружаем содержимое файла в текстовую переменную и с помощью регулярок ищем объекты
object qUsers: TUniQuery
object qUsersID: TIntegerField
object qUsersNAME: TWideStringField
После двоеточия - название класса А теперь - что сложного найти у класса TWideStringField нужные свойства?

Или я не понял задачу?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917697
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Или я не понял задачу?

Не понял.
ТС нужно найти "проперция" которая по дефолту отсутствует в DFM
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917701
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr
ТС нужно найти "проперция" которая по дефолту отсутствует в DFM

ТС-у это не нужно. ТС-у нужно обеспечить определённое значение свойства у всех таких компонент в рантайме. Но он этого пока не понимает.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917727
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
egor555
Найти:
Все компоненты в Проекте у которых есть эта проперция(даже наследников)

Т.е. нужно написать программу, которая будет парсить DFM?
загружаем содержимое файла в текстовую переменную и с помощью регулярок ищем объекты
object qUsers: TUniQuery
object qUsersID: TIntegerField
object qUsersNAME: TWideStringField
После двоеточия - название класса А теперь - что сложного найти у класса TWideStringField нужные свойства?

Или я не понял задачу?

Почти, только искать определенный класс (TcxGrid) - или классы - и вставить первой строчкой нужное значение `проперции`. Первой - чтобы не погрязнуть в поиске end при наличии вложенных объектов. Потом при сохранении файла из среды свойство само переместится на нужное место

А вообще при наличии большого количества контролов одного класса в одной софтине рациональнее их общий конфиг свести в одно место. Это м.б. потомок с предопределенными свойствами либо общая функция типа Init(grid)
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917769
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2
А вообще при наличии большого количества контролов одного класса в одной софтине рациональнее их общий конфиг свести в одно место. Это м.б. потомок с предопределенными свойствами либо общая функция типа Init(grid)

Ещё рациональнее сразу сделать своего наследника от этого класса и использовать его. Тогда в случае подобных задач всё, что потребуется - дописать в этого наследника несколько строк. Прикладные программисты чаще всего и не заметят вносимых изменений - ну кроме того, что программа начала работать там, где раньше не работала.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917941
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
DimaBr
ТС нужно найти "проперция" которая по дефолту отсутствует в DFM

ТС-у это не нужно. ТС-у нужно обеспечить определённое значение свойства у всех таких компонент в рантайме. Но он этого пока не понимает.


т.е. нужно в DFM дописать это свойство и задать ему нужное значение?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917942
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2
Почти, только искать определенный класс (TcxGrid) - или классы - и вставить первой строчкой нужное значение `проперции`. Первой - чтобы не погрязнуть в поиске end при наличии вложенных объектов. Потом при сохранении файла из среды свойство само переместится на нужное место


И что мешает программно редактировать DFM?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917945
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
И что мешает программно редактировать DFM?

Отсутствие программиста
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917951
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
т.е. нужно в DFM дописать это свойство и задать ему нужное значение?

Совершенно не обязательно. Я бы даже сказал, что это довольно кривой путь решения задачи.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917953
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как задать сразу у сотни сеток на разных формах нужное значение свойству? Как проинициализировать сетку?
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917955
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.01.2020 16:14, X11 пишет:
>
> А как задать сразу у сотни сеток на разных формах нужное значение свойству? Как проинициализировать сетку?
>

либо одно из двух(трёх):
1. компонент-наследник
2. компонент-хелпер
3. самописная тулза, шелестящая dfm-ы

либо секретный способ:
0. CnPack, в котором есть "корректор свойств"

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917961
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
либо одно из двух(трёх):
1. компонент-наследник
2. компонент-хелпер
3. самописная тулза, шелестящая dfm-ы

4. В ран-тайме, например, на уровне базового класса формы.
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917965
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.01.2020 16:26, softwarer пишет:
> В ран-тайме, например, на уровне базового класса формы.

тоже можно.
но все эти способы имеют один существенный недостаток - тут программист нужен...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39917978
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

2. компонент-хелпер
3. самописная тулза, шелестящая dfm-ы

либо секретный способ:
0. CnPack, в котором есть "корректор свойств"

0, емнип, работает только при сохранении, то есть надо открывать, изменять и сохранять все формы
2 не даст прицепиться к конструктору, т.е. придется добавлять вызов метода во все исходники
3 - не обязательно тулза, можно обойтись одним или несколькими (если есть классы-наследники) regexp

5 (развитие варианта наследника) - трюк с подменой класса. Плюс в том, что не надо инсталлировать пакет с компонентом
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
type
TCustomizedGrid = class(someunit.TGrid)
... // здесь в конструкторе присваивать пропёрции
end;

type
  TGrid = TCustomizedGrid;

  TForm1 = class(TForm)
    grid: TGrid
  end;



Правда, опять же менять исходники. Зато при следующем изменении придется менять только в одном месте
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39918000
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.01.2020 16:45, Василий 2 пишет:
>
> 0, емнип, работает только при сохранении, то есть надо открывать, изменять и сохранять все формы

нет.
в новой версии есть пакетный режим.

> 2 не даст прицепиться к конструктору, т.е. придется добавлять вызов метода во все исходники

конструктор нахрен не нужен.
в компоненте-хелпере делаешь
Код: pascal
1.
2.
3.
4.
  protected
    procedure Loaded; override;
    ...
  end;


и в нём, меняй любые проперти любого компонета этой формы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39918052
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

конструктор нахрен не нужен.
в компоненте-хелпере делаешь
Код: pascal
1.
2.
3.
4.
  protected
    procedure Loaded; override;
    ...
  end;


и в нём, меняй любые проперти любого компонета этой формы.

Уверен?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
type
  tbase = class
    procedure dosmth; virtual;
  end;

  tbasehlp = class helper for tbase
    procedure dosmth; override;
  end;



[DCC Error] Unit1.pas(1318): E2137 Method 'dosmth' not found in base class

Кагбэ хелперы не всесильны, они просто сахар
...
Рейтинг: 0 / 0
Найти компоненты с определённым property
    #39918054
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.01.2020 18:38, Василий 2 пишет:
> class helper

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


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти компоненты с определённым property
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]