Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.08.2014, 18:41
Shevalye Shevalye вне форума
Прохожий
 
Регистрация: 03.08.2014
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
Печаль Проблема с динамич. компонентами

Подскажите пожалуйста. У меня есть n форм, и их имена. Мне нужно добавить компонент в определенную форму (зная имя формы). Как это сделать. У меня код:

Код:
meb:=tshape.Create(self);
meb.parent:=(findcomponent('Имя формы') as TForm); (Проблема в этом. Я не знаю, как назначить родителем динам. форму, зная ее имя)
meb.left:=0;
meb.top:=0;
meb.width:=100;
meb.height:=100;
...
MAD: теги

Если я назначал
meb.parent:=formvalue; (при formvalue=переменна дин. форм. То компонент добавлялся в последнюю созданную форму)

Последний раз редактировалось M.A.D.M.A.N., 03.08.2014 в 19:54.
Ответить с цитированием
  #2  
Старый 03.08.2014, 19:05
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
  with TButton.Create(Self) do
  begin
    Parent:=Application.FindComponent('Form2') as TForm;
  end;
работает 100%
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 03.08.2014, 21:28
Shevalye Shevalye вне форума
Прохожий
 
Регистрация: 03.08.2014
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

NumLock , у меня не выходит. Наверное руки кривые, вот мой код:
Form:
Код:
form:=tform.Create(scrollbox1);
form.parent:=scrollbox1;
form.left:=10;
form.top:=10;
form.width:=150;
form.height:=150;
form.BorderIcons:=[biMinimize,biMaximize];
form.Name:='Имя формы';
form.Show;
Shape
Код:
meb:=tshape.Create(self);
meb.parent:=Application.FindComponent('Имя формы') as TForm;
meb.left:=0;
meb.top:=0;
meb.width:=50;
meb.height:=50;
meb.Name:='Имя фигуры';

Но в форму shape так и недобавляеться...
Ответить с цитированием
  #4  
Старый 03.08.2014, 21:35
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

В чем выражается это "недобавляеться"?
Если не видно, то первое, что приходит в голову - meb.Visible := true.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 03.08.2014, 21:42
Shevalye Shevalye вне форума
Прохожий
 
Регистрация: 03.08.2014
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
В чем выражается это "недобавляеться"?
Если не видно, то первое, что приходит в голову - meb.Visible := true.

Выражается в том, что ничего не происходит. Ошибок не выдает, но и компонента на форме нету. Visible не помогает.
Ответить с цитированием
  #6  
Старый 04.08.2014, 02:14
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Родительская форма фигуры не "видна" приложению т.к. она относится к скроллбоксу, нужно искать везде
Код:
...
meb.Parent:= FindComponent('Имя формы') as TForm;
...
З.Ы. или ещё лучше делать так
Код:
with TShape.Create(self) do
 begin
  Parent:= ScrollBox1.FindChildControl('Имя формы') as TForm;
  Left:= 0;
  Top:= 0;
  Width:= 50;
  Height:= 50;
  Name:= 'Имя фигуры';
 end;
4250
__________________
Помогаю платно.
Помогаю иногда бесплатно.

Последний раз редактировалось @Rafa3L, 04.08.2014 в 03:03.
Ответить с цитированием
  #7  
Старый 04.08.2014, 16:58
Shevalye Shevalye вне форума
Прохожий
 
Регистрация: 03.08.2014
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

@Rafa3L , спасибо вам большое! Все работает..
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025