powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проверка существования компонента на форме
7 сообщений из 7, страница 1 из 1
Проверка существования компонента на форме
    #39954043
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите как посмотреть, что компонент находится на нужной мне форме, а не на другой? (Есть проект с несколькими формами, я хочу посмотреть на какой форме находится компонент LastName: Tedit, т.е. получить название формы )
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954050
MBo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBo
Гость
FindComponent (для компонентов, которыми владеет форма)
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954053
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt
Здравствуйте, подскажите как посмотреть, что компонент находится на нужной мне форме, а не на другой?

Здравствуйте. Это крайне странная потребность, заставляющая предположить, что Вы выбрали плохой способ достижения своей цели. Опишите, что Вы делаете, как и зачем, и скорее всего, окажется, что это куда правильнее сделать другим путём.

neteurt
(Есть проект с несколькими формами, я хочу посмотреть на какой форме находится компонент)

Если компонент невизуальный, то он, в общем-то, вообще ни на какой форме не находится. У него есть владелец (свойство Owner), который может быть в том числе и формой (и для компонент, размещённых в дизайн-тайме на форме, именно так и происходит). Владелец может быть nil.

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

У визуальных компонент есть понятие Parent (родитель). Оно управляет размещением в том плане, что визуальный компонент с установленным Parent-ом размещается на родительском (у которого также есть Parent и так далее). Проследив цепочку Parent-ов, можно дойти до того визуального компонента, на котором всё это размещено, то есть до формы. В VCL для этого есть функция GetParentForm .
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954079
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то мне подсказывает, что ТС хочет найти компонент в редакторе, а не во время исполнения...
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954101
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt
Здравствуйте, подскажите как посмотреть, что компонент находится на нужной мне форме, а не на другой?


Просто поиск в *.dfm не подходит?
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954131
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure TfmTemplateOfInventory.SearchComponents(perComponent:TWinControl);    //в переменную передается объект в котором будем искать
var
i:integer;

begin
for i:=0 to perComponent.ControlCount-1 do
  begin
  if perComponent.Controls[i].Name='MyComponent' then 
	begin
	Memo1.Lines.Add('Объект найден ');
	exit;
	end;
  if not(perComponent.Controls[i]  is TLabel) then  //если не label 
    begin
    Memo1.Lines.Add('Ищем дочерние объекты ');
    SearchComponents(TWinControl(perComponent.Controls[i]));
    end;
  end;
end;
...
Рейтинг: 0 / 0
Проверка существования компонента на форме
    #39954140
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetParentForm
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проверка существования компонента на форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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