Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание Edita, какое у него имя? 
V
    Опции темы
Teran
  Дата 25.5.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Этим кодом я создаю 10 Edit-ов на форме
Код

         for k:=0 to 10 do
          begin
           Edit:=TEdit.Create(nil);
           Edit.Top:=3;
           Edit.Left:=200;
           Edit.Width:=50;    
           Edit.Text:='Test';
           Edit.Parent:=Form1;
          ShowMessage( Edit.Name);



этим убиваю
Код

 while Form1.ControlCount>0 do
  Form1.Controls[0].Destroy;


но у созданных edit-ах я не могу получить имена Edit.Name?

Кто-нибудь знает как можно получить имя каждого чтобы потом можно было к нему обращаться?
 smile  smile  smile  


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Snowy
Дата 25.5.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Сначала их присвой.
Код

Edit.Name := 'Edit' + IntToStr(k);
 
PM MAIL   Вверх
Yanis
Дата 25.5.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



При создании присваивай ему имя. Что бы помнить заведи массив с индексами или постоянно пробегай по форме в поисках своих TEdit. Где-нибудь после Edit:=TEdit.Create(nil); напиши Edit.Name := 'желаемое имя'; 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Teran
Дата 25.5.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Цитата(Snowy @  25.5.2006,  18:25 Найти цитируемый пост)
Edit.Name := 'Edit' + IntToStr(k);

а как потом получить его

если в прграме напишу 'Edit5.Text; - программа не откомпилируется потому что такого edit -а на форме нет?

Добавлено @ 18:50 
Почему-то и так не помогает:
Код

 ShowMessage(TEdit(FindComponent('Edit_1')).Text);

выводит ''  - пусто (Хотя текст я туда задаю) 


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
skyboy
Дата 25.5.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



а символ "_" зачем? ты точно имя с этим подчёркиванием формируешь? ;) 
PM MAIL   Вверх
Teran
Дата 25.5.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



да 
содаю так:
Код

           Edit:=TEdit.Create(nil);
           Edit.Name:='Edit_'+IntToStr(k);
           Edit.Top:=TopLabel-3;
           Edit.Left:=200;
................
 


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Yanis
Дата 25.5.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Teran @  25.5.2006,  19:39 Найти цитируемый пост)
если в прграме напишу 'Edit5.Text; - программа не откомпилируется потому что такого edit -а на форме нет?
Так его действительно нету! Создаешь динамечески, то и обращайся "динамически". 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
McDevil
Дата 25.5.2006, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.12.2005
Где: Казахстан, Павлод ар

Репутация: 1
Всего: 3



Teran, а зачем динамически их создавать...
Может имеет смысл накидать их на форму и не мучиться...
При моем раскладе размер .exe увеличиться незначительно, а при твоем скушаешь немного лишней памяти...
 


--------------------
 мы знаем столько, сколько можем, а можем столько, сколь хотим... 

Тестируем программу: SPL-программа аналогов функций  
PM MAIL WWW ICQ   Вверх
Dimannn
Дата 25.5.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 14.4.2005
Где: Владимир

Репутация: нет
Всего: 1



Наверное, надо TEdit.Create(Form1);
 


--------------------
Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут?
Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru
PM MAIL ICQ   Вверх
Foley
Дата 25.5.2006, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Цитата(McDevil @  25.5.2006,  20:26 Найти цитируемый пост)
Может имеет смысл накидать их на форму и не мучиться...

да и потом обращаться к ним удобней, если тебе не все эдиты нужны, то можно и Visible у них поюзать... 
PM MAIL ICQ   Вверх
Teran
Дата 26.5.2006, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



 нет мне нужно создавать их именно - динамически из-за того что я заранее низнаю их колличества 


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
ElMichael
Дата 26.5.2006, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.5.2006
Где: г. Благовещенск ( Амур.обл.)

Репутация: нет
Всего: нет



Попробуй воспользоваться динамической структурой типа:
Код

type
     pEditS = ^tEditS;
     tEdits = record
        Edit: TEdit;
        Next: pEditS
     end;


P.S.: Извини, если обидел кодом ;) 
PM MAIL ICQ   Вверх
Teran
Дата 26.5.2006, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Уррра!  smile 
Цитата(Dimannn @  25.5.2006,  20:41 Найти цитируемый пост)
Наверное, надо TEdit.Create(Form1);


Совершенно верно.
Все заработало. 


--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
Yanis
Дата 26.5.2006, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



А я хотел пример настрочить... smile  


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunr1se
Дата 26.5.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 1.5.2006

Репутация: 6
Всего: 13



Можно создать глобальную переменную, динамический массив:
Код

var Edits: array of TEdit;

При создании Edit'а увеличивать размер массива на 1:
Код

SetLength(Edits, High(Edits)+2);

И затем вставляем в массив динамически созданный Edit:
Код

Edits[High(Edits)] := Edit;  //Edit - это динамически созданный объект

После можно обращаться к Edit'ам как к элементам массива. 
--------------------
IRC-канал Винграда 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1258 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.