![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 16
|
![]()
имеется:
форма с кнопкой запуска треда Код:
Код:
Код:
erorina.JPG Вопрос в том как показать эту форму правильно? Если туже форму показать по клику кнопки с первой формы - она отобразится правильно. Я так понимаю дело в наследовании свойств родителя, который в данном случае не визуальный, но что и как указать не знаю =( |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
synchronise procedure tred.Execute; begin synchronise( testform.Form3.Show ); end; Но! Sinchronise приостанавливает текущий поток и выполняет указанную в его параметрах процедуру в основном потоке. Полностью теряется смысл потока.
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#3 | ||
Пользователь
Регистрация: 27.09.2010
Сообщений: 16
|
![]() Цитата:
Вот блин.. это же элементарно! ![]() Цитата:
evg_m: огромное спасибо! |
||
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Код:
На мой взгляд логичнее сделать так: В основном потоке ждем ввода данных (через Form3 как я понимаю) и после того как данные (по мнению пользователя) готовы передаем данные в поток и запускаем его (например с помощью кнопки на form3). Пока данных нет поток нам просто не нужен и нет проблем с синхронизацией т.к. в потоке нет никаких форм, а есть только данные..
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 29.10.2010 в 12:10. |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 16
|
![]()
Да, это приведено для примера, сама суть так сказать.
|
![]() |
![]() |
![]() |
#6 | |
Регистрация: 12.08.2013
Сообщений: 5
|
![]() Цитата:
Код:
Последний раз редактировалось ColdCode; 12.08.2013 в 13:59. |
|
![]() |
![]() |
![]() |
#7 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Я для такого случая написал свою мини VCL. Она позволяет создавать формы (окна) прямо в потоке, при этом, управляющая петля будет крутиться самим потоком. Петля крутится пока существует хоть одно окно, то есть поток не будет ничего делать пока пользователь не завершит ввод. Если такой вариант вас устроит - могу поделиться исходниками.
PS Из минусов - нет визуального редактора и реализованы не все контролы. Сейчас есть: TGroupBox, TMemo, TEdit, TButton, TLabel и TImage. Не считая самой формы, конечно.
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
А зачем форму-то синхронизировать?
Она же только в потоке существует. Код:
|
![]() |
![]() |
![]() |
#9 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
А чего вы хотели. form.Show это "покажи и иди дальше". Цитата:
Цитата:
Потоку для вычислений не нужна форма, ему нужны данные! И предоставить ему их это задача основной программы(потока).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 13.08.2013 в 10:28. |
|||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закрыть и открыть форму | Swatch | Microsoft Office Access | 1 | 31.05.2010 23:04 |
Как открыть главную форму с нективным окном | recod | Win Api | 2 | 22.04.2010 21:39 |
Одну и ту же форму использовать как MDI-child форму и как модальную форму? | PrimaryPro | Общие вопросы Delphi | 2 | 10.03.2010 20:52 |
vb 2008 как открыть форму? | fize | Помощь студентам | 0 | 17.12.2009 21:18 |
С++. Открыть вторую форму | ЛУНА55 | Помощь студентам | 2 | 10.12.2009 11:35 |