powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти компоненты с определённым property
13 сообщений из 38, страница 2 из 2
Найти компоненты с определённым 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
13 сообщений из 38, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Найти компоненты с определённым property
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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