Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
ВнизДинамические окна Найти похожие ветки
← →
Артём (2009-10-16 17:53) [0]Привет всем. Интересует вопрос, в котором хотелось бы чтоб кто-нибудь помог? Создаю формы в разрабатываемом приложении в режиме run-time. На главной форме находится кнопка Button и поле Edit, примерный обработчик Button на событие оnClick привожу ниже.
var
newForm: array [1..100] of TForm;
n: integer;
begin
n:=n+1;
newForm[n] :=TForm.Create(nil);
newForm[n].name :="NewForm"+IntToStr(n);
newForm[n].OnClick :=ClickPOforme;
newForm[n].show;
Суть заключается в следующем когда запускаешь программу и создаёшь 3 окна 3. При клике на newForm[1] в поле Edit находящееся на главной форме передаётся newForm[3].caption а не newForm[1].
← →
anonims (2009-10-16 18:24) [1]И где мы должны искать код заполнения поля Edit главной формы
← →
Артём (2009-10-16 18:47) [2]
> И где мы должны искать код заполнения поля Edit главной
> формы
form1.edit1.text :=newForm[n].caption;
← →
Юий Зотов (2009-10-16 18:50) [3]Переменная n всегда равна индексу последней формы в массиве, поэтому newForm[n] - это всегда последняяя форма в массиве. Вот ее Caption и поступает в Edit1, удивляться нечему.
← →
Артём (2009-10-16 19:21) [4]
> Переменная n всегда равна индексу последней формы в массиве,
> поэтому newForm[n] - это всегда последняяя форма в массиве.
> Вот ее Caption и поступает в Edit1, удивляться нечему.
Понятно.... А как тогда узнать индекс предыдущей формы?
← →
anonims (2009-10-16 19:29) [5]индекс предыдущей = индекс текущей -1
← →
Германн © (2009-10-16 19:38) [6]2 LVT
Признаю свою ошибку. Совет использовать массивы нельзя было давать на этом форуме :(
Уже второй подобный вопрос за чуть более часа.
← →
Артём (2009-10-16 19:38) [7]
> индекс предыдущей = индекс текущей -1
понял я.... что вы имеете ввиду.... но это не то что нужно мне..... Принцип по идее должен быть такой что пользователь может перещёлкнуть с третьей формы допустим на вторую со второй на 5 форму. А это я уже и сам поробывал...
← →
Медвежонок Пятачок © (2009-10-16 20:58) [8]Inc(n);
newForm[n] :=TForm.Create(nil);
newForm[n].name :="NewForm"+IntToStr(n);
newForm[n].OnClick :=ClickPOforme;
newForm[n].Tag := n;
newForm[n].show;
В обработчике используем таг оунера(формы) как индекс массива
Хотя прямее было бы без извратов:
form1.edit1.text := TForm(Sender.Owner).caption;
← →
Медвежонок Пятачок © (2009-10-16 21:00) [9]Точнее TForm(Sender).caption; если кликают по форме
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c