Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 14:47   #1
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию Редактирование программно созданых Edit-ов

На форме 64 компонента TEdit. Дабы не захламлять код лишними объявлениями, создаю их все программно циклом. Потом циклом же пытаюсь из текстового файла их заполнить. И почему то тишина. Даже компилятор не ругается. Просто не заполняется ничего. Я подозреваю что с их именами что то не так я сделал, но что именно не знаю.
вот создание двух рядков таких компонент
Код:
e: TEdit;
.......
for j:= 0 to 1 do
 for i:= 0 to 15 do
 begin
 e:=TEdit.Create(nil);
 e.Text:='1';
 e.Width:=45;
 e.Left:=145+j*250;
 e.Top:=32+i*24;
 e.Name:='Edit'+IntToStr(j*16+i+1);
 e.Parent:=MasterValuesForm;
а вот заполнение этих компонент из файла:
Код:
mstrlist: TStringList;
........
begin
mstrlist:=TStringList.Create;
mstrlist.LoadFromFile('c:\xx\zz\mstr.ini');
for i:= 0 to 31 do
TEdit(MasterValuesForm.FindComponent('Edit'+IntToStr(i+1))).Text:=Copy(mstrlist.Strings[i],Pos('min@',mstrlist.String[i]),7);
end;
упреждая - файл прочитался, я из него строчку в ватч листе вижу.

Последний раз редактировалось BoozZzilla; 17.03.2011 в 14:54.
BoozZzilla вне форума Ответить с цитированием
Старый 17.03.2011, 15:41   #2
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

проперти .Tag любого визуального компонента и .ComponentCount + .Components[x]
с проверкой (... is TEdit) и номером по тэгу
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 17.03.2011, 15:54   #3
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

Прошу меня извинить, можно как то удалить топик?
Проблема не стоила выеденого яйца - при создании компонент вмето TEdit.Create(nil) указал TEdit.Create(Self), сразу все эдиты стали искаться и находиться.
Я как обезьяна с гранатой, вычитал в другом примере на другом форуме. Не понимаю пока даже что за параметр такой.
BoozZzilla вне форума Ответить с цитированием
Старый 17.03.2011, 16:21   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

параметр указывает на компонент, который, грубо говоря, отвечает за удаление создаваемого компонента из памяти. Указывайте экземпляр класса главной формы.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 18.03.2011, 11:16   #5
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

читал, читал и читал
и всё равно недопонимаю - зачем мы при создании кнопке даём этот указатель если потом мы прописываем родительскую форму
ясно что это как бы не одно и то же если не сработало сразу, но вот непонятно почему.
Я вроде понял что этот указатель компоненте нужен, но почему после объявления родителя компоненты этот указатель сам не берётся?
Может кто то доступно объяснит?
Пошлите меня куда нибудь где несложно всё это описано.
BoozZzilla вне форума Ответить с цитированием
Старый 18.03.2011, 11:25   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

родитель и владелец это разные вещи, в конструкторе указываеться второе
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.03.2011, 12:02   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

1. Findcomponent F1
Indicates whether a given component is owned by the component.
See Also Owner property
Use Owner to find the owner of a component. The Owner of a component is responsible for two things:
See Also ....

2.findcontrol F1
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.03.2011, 14:27   #8
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Родитель - это, грубо говоря, контрол, внутри которого (визуально и программно) располагается твой контрол.
Владелец - это контрол, который отвечает за память твоего контрола. Прописывай главную форму (если твои контролы располагаются на ней) и не парься. А вот если, к примеру, эдиты располагаются в ГрупБоксе, и предполагается удалять этот групбокс из памяти - то ставь владельцем этот групбокс.

Ещё грубее говоря - указываешь тот компонент, при удалении которого удалятся твои контролы.

Пока делай так, а со временем разберешься.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 18.03.2011, 15:22   #9
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

Спасибо, всё потихоньку выстраивается в голове, до понимания я думаю далеко, но уже не так страшно про всё это читать
BoozZzilla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к константе Kingcss Общие вопросы Delphi 3 02.03.2011 09:51
Обращение к структуре jey7 Общие вопросы C/C++ 2 07.01.2010 22:44
обращение к RDM FireHawK Работа с сетью в Delphi 0 21.04.2009 16:04
Обращение Акашаев Нурлан Общие вопросы Delphi 5 26.06.2008 16:02