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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2016, 18:16   #1
factually
Пользователь
 
Регистрация: 24.10.2016
Сообщений: 21
Сообщение Через поток создать элементы на форме

Как?
Создал процедуру в потоке
Код:
procedure MagicThread.paneladd;
begin
  // panel:=TsPanel.create(form4.sTabSheet2);
   btn:=TsButton.create(form4.stabsheet2);
        btn.Left:=80;
        btn.Top:=80;
        btn.Width:=75;
        btn.Height:=25;
        btn.Caption:='gggggo ';
        btn.TabOrder:=1;
        btn.SkinData.SkinSection:='BUTTON';
end;
В потоке в нужном мне месте пишу
Код:
Synchronize(paneladd);
И по идеи должна создаваться кнопка в stabsheet2, но ничего не происходит. Что я делаю не так?
factually вне форума Ответить с цитированием
Старый 25.10.2016, 18:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

родителя не присвоили.
Owner и Parent это разное
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.10.2016, 18:43   #3
factually
Пользователь
 
Регистрация: 24.10.2016
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
родителя не присвоили.
Owner и Parent это разное
ага, уже разобрался
Код:
   btn:=TsButton.create(form4);
   btn.parent:=form4.sTabSheet2;
а как в потоке теперь обращаться к новым элементам, которые создаются когда программа запущена?
Например мне в sPanel2 (которая будет создана в процессе исполнения кода) нужно будет добавить картинку. Как это сделать?

upd: в принципе сам уже разберусь, как это сделать примерно понял.

Последний раз редактировалось factually; 25.10.2016 в 19:29.
factually вне форума Ответить с цитированием
Старый 25.10.2016, 22:31   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
а как в потоке теперь обращаться к новым элементам,
сделать этот элемент полем класса потока.
Код:
MyThread =class(Thread)
private
   sPanel2: TPanel;
.....
end;

sPanel2:=TPanel.Create(xxx);

simg:=TImage.Create(xxx);
img.Parent:=sPanel2;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 25.10.2016, 22:36   #5
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

идея швах, во первых это чревато, во вторых бессысленно
come-on вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать поток rostik123 Win Api 3 13.10.2012 07:36
создать форму на форме разработать меню и создать кнопки конец и о программе Андрей_И Помощь студентам 1 23.05.2011 23:42
Создать двоичный файл, записать n целых чисел. Из файла создать массив, элементы числа-палиндромы (на C) Simak63 Помощь студентам 0 30.03.2011 21:06
Поток. Не получается создать поток. Выдает ошибки при запуске bigory Общие вопросы по Java, Java SE, Kotlin 3 23.09.2010 00:40
Как создать поток record222 Помощь студентам 1 07.04.2010 01:09