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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 01:44   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Не отображаются компоненты на форме

Доброго времени суток.
Ситуация такая: Программа в потоке читает данные с прибора по com-порту и пишет их в БД. Нужно при получении определенного сообщения вывести его в отдельную форму. Я делаю отдельную форму, помещаю на нее компоенты Button и StringGrid, потом в отдельном потоке запускаю проверку

Код:
...
G_COLOR:=COLOR;
Td:=ShowAllert.Create(true);
Td.FreeOnTerminate:=true;
Td.Priority:=tpLower;
Td.Resume;
...
Код:
procedure ShowAllert.Execute;
begin
cr.Enter;
if G_COLOR='G' then
  begin
    with FmAlert do
      begin
        Show;
      end;
  end;
cr.Leave;
end;
Форма FmAlert показывается, а компонентов Button и StringGrid на ней не видно, проверил свойства VISIBLE, все вроде стоит true, где я ошибся?
tarakan1983 вне форума Ответить с цитированием
Старый 18.11.2013, 01:52   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

формы надо показывать из основного потока
eval вне форума Ответить с цитированием
Старый 18.11.2013, 01:54   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

И никак это по другому не решить?
tarakan1983 вне форума Ответить с цитированием
Старый 18.11.2013, 02:00   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чего это? это закон можно сказать, его исполняют а не решают
eval вне форума Ответить с цитированием
Старый 18.11.2013, 02:04   #5
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Дело в том что у меня чтение с com-порта и запись в БД идет в отдельном потоке, даже если я вызываю эту форму в том-же потоке, то все равно их не видно, как мне поступить правильно???
tarakan1983 вне форума Ответить с цитированием
Старый 18.11.2013, 02:17   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чего не понятно в 1 ответе?
еще раз - формы создают и показывают из ОСНОВНОГО потока, и хоть мульен потоков

тем более что ваш код по отображению неправильный.

Последний раз редактировалось Stilet; 18.11.2013 в 16:08.
eval вне форума Ответить с цитированием
Старый 18.11.2013, 15:45   #7
Unique_Maks
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 89
По умолчанию

используйте synchronize
и зачем одну строчку превращать вот в это:
Код:
    with FmAlert do
      begin
        Show;
      end;
Unique_Maks вне форума Ответить с цитированием
Старый 18.11.2013, 16:05   #8
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Unique_Maks, дело в том, что там планировалось много еще чего делать с формой, а застрял только на этом
tarakan1983 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каждый момент на форме отображаются только два списка с именами и фамилиями Johny91 Помощь студентам 4 08.11.2013 14:44
не появляются компоненты на форме в Eclipse betirsolt Общие вопросы по Java, Java SE, Kotlin 8 17.08.2012 16:52
Не показывать компоненты на форме MyLastHit Общие вопросы Delphi 5 03.12.2010 02:12
ShowWindow: не отображаются компоненты на форме MyasNick Win Api 4 24.02.2009 18:20
В IE7.0 не отображаются некоторые элементы страниц форума, которые нормально отображаются в FireFox3.0. Taras HTML и CSS 10 27.09.2008 13:30