| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как узнать имя компонента, создан- |
| Автор: -Сергей- 24.6.2004, 17:57 | ||
Компоненты создаю так:
|
| Автор: _hunter 24.6.2004, 18:04 |
| ну вопервых ты не компонент создаеш а во вторых чем тебе Name не нравится ( или ты под именем что-то другое подразумеваеш? )? |
| Автор: -Сергей- 25.6.2004, 06:46 |
| Как раз мне Name и нужен. Как я потом к ним обращаться буду?. Только через FindComponent. |
| Автор: Illusion Dolphin 25.6.2004, 09:13 |
| А если приблизительно так: TabSheets = array of TTabSheet; ... Setlength(TabSheets , cv) TabSheets [i-1]:= TTabSheet.Create(Self); With TabSheets [i-1] do begin PageControl := Form2.PageControl1; TabVisible := True; Caption := '№ ' + IntToStr(PageIndex); end; ... А потом обращаешься как к элементу массива... P.S. А можно и в том же With... do у тебя влепить что-то вроде Name:='MyTabSheet'+inttostr(cv)... |
| Автор: -Сергей- 25.6.2004, 09:51 | ||||
Я уже так пробовал. Не помогает.
Тоже не помогает. |
| Автор: _hunter 25.6.2004, 15:54 |
| чем тебе массив не подходит? что значит не помогает? |
| Автор: -Сергей- 26.6.2004, 08:34 |
| Допустим так: TabSheets [1].Caption:='Вкладка'; Не работает. А если ShowMessage(TabSheets [1].Name); То вылетает ошибка. |
| Автор: z-END 26.6.2004, 09:33 | ||
| -Сергей- Какая ошибка-то? и причем здесь Caption и Name? это же разные вещи... Caption - это есть заголовок, а Name - имя компонента.
|
| Автор: _hunter 26.6.2004, 11:17 |
| он имеет в вид, что обращение к элементу массива не эквивалентно обращению к объекту ( устновка / чтение свойств не прходит ) -Сергей-, не помню как с этим в Delphi дело обстоит, но в Buiolder' e для этих целей нужно было массив указателей на объекты создавать а не масив объектов может поможет |
| Автор: -Сергей- 26.6.2004, 11:20 | ||||
nJIaKca.spb, ты не правильно понял.
И так тоже выдаёт Exception.
|
| Автор: _hunter 26.6.2004, 11:27 |
| причем тут Exception при отсутствии имени? отсутсвие имени это просто пустая строка и она без проблем выводится. смотри мой предыдущийй пост |
| Автор: z-END 26.6.2004, 12:49 | ||||
| Толи у меня лыжи не едут, толи не сезон просто Объясните мне плиз, в чем проблемма-то, Зачем вообще к TabSheet'ам обращаться через FindComponent (ИМХО через сию ф-цию его никогда и ненайдешь, т.к. искать надо у предка в Controls[xx]) ?! Ведь к ним можно обращаться просто так:
И чего там неработает?! сделал как посоветовал Illusion Dolphin:
Или я совсем не про то? |
| Автор: _hunter 26.6.2004, 12:54 |
| про то |
| Автор: Marriage 26.6.2004, 21:44 |
| Я могу ошибаться, но ... Когда создается компонент на форме, его можно узнать его имя так : Form1.Components[Form1.ComponentCount-1].Name; (если создаешь на форме) Или я чего то не понял ... |
| Автор: -Сергей- 27.6.2004, 05:08 | ||
nJIaKca.spb , вот это что надо:
Добавлено @ 05:12 Всем спасибо за участие! Тема закрыта. |