|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.09.2011, 22:47 | #1 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 24
|
Проблема с FindComponent
Процедура нормально работает, но только с формы, на которой размещена. С других форм вызывается, но FindComponent компонент не находит. Компонент создается динамически. В чем причина?
Код:
|
26.09.2011, 22:57 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
self.FindComponent ищет на той форме где расположен, в данном случае frmMain
хотите на другой искать - вместо Self - указатель на другую форму ? зачем дважды проверку на <>nil
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.09.2011 в 23:02. |
26.09.2011, 22:58 | #3 | |
Пользователь
Регистрация: 27.05.2011
Сообщений: 24
|
Пробовал
Цитата:
|
|
26.09.2011, 23:06 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я правильно понял - вы хотите эту процедуру использовать для поиска компонент только на frmMain, но вызывать ее с других форм? Или для поиска в т.ч. на других формах?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.09.2011, 23:09 | #5 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 24
|
frmMain - материнская форма, там же и находятся искомые компоненты. С других форм процедура успешно вызывается, но компоненты не находит
|
26.09.2011, 23:29 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В логике процедуры после первого обращения и удаления pnlLabelWindow1 остальные обращения всегда будут давать "'pnlLabelWindow1 not found!". Так задумано?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.09.2011 в 23:33. |
26.09.2011, 23:44 | #7 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 24
|
Предварительно создаю компоненты, а Эта процедура удаляет те, которые нужно удалить, а другие при этом изменяют свое местоположение. С mainForm все работает без проблем
|
26.09.2011, 23:52 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну вот вы обратились первый раз:
DestroyWindowLabel('Caption1'); допустим pnlLabelWindow1.Caption='Caption1' Эта панель удалится. Обращаетесь второй раз с любым параметром. для i=1 имя 'pnlLabelWindow1' сразу же не найдется, поскольку уже удалена эта панель. Что получите? Посмотрите по-шагово add Обратите внимание - начальное значение delIndex перед циклом не присвоено, можете вырулить на него при сравнении. Присвойте 11 например
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.09.2011 в 23:58. |
27.09.2011, 00:22 | #9 | |
Пользователь
Регистрация: 27.05.2011
Сообщений: 24
|
Смотрим так
Цитата:
|
|
27.09.2011, 03:55 | #10 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
fftopic
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FindComponent | WOLFak | Общие вопросы Delphi | 9 | 07.07.2012 23:29 |
FindComponent | Enclounter | Windows Forms | 14 | 26.04.2012 22:45 |
findcomponent и tedit | zotox | Общие вопросы Delphi | 12 | 30.05.2010 04:37 |
FindComponent | StartMis | Общие вопросы Delphi | 3 | 15.12.2009 20:03 |
В чем я ошибся? FindComponent | zotox | Помощь студентам | 5 | 29.09.2009 02:27 |