|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Thread, Handle. Обращение к форме из потока
Здравствуйте. Прошу помочь в решении следующего вопроса:
Есть процесс который при старте создает копии формы (количество зависит от кол-ва записей в блокноте (номеров)). Вместе с созданием ыормы происходит и создание отдельного потока. В потоке выполняется отправка данных на компонент VaComm и чтение с Vabuffer. Они в единичном экземпляре и находятся в Data Module. Суть проблемы: 1) Как передать специальный номер (номер записан в лейбл)если для каждой созданой формы он уникален (Каждая форма создает свой поток)? 2) Как прочитать данные из переменных потока, если они не глобальны. |
#2
|
||||
|
||||
Цитата:
Цитата:
|
#3
|
||||
|
||||
PostMessage не гарантирует доставку данных, взамен можно использовать SendMessage.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
Цитата:
А теперь глупый вопрос... Как в SendMessage передать обращение к процедуре Thread.Execute ? |
#5
|
||||
|
||||
Обращение вряд ли передашь, это сообщение для другого предназначено. Использовать CallBack?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
||||
|
||||
пользовательские данные ( __in_opt LPVOID lpParameter) или в потомке от TThread переопределить конструктор и добавить необходимы данные
Цитата:
речь шла о том, как из потока передать данные...вот их и передавать в форму с помощью SendMessage из метода Thread.Execute или как сказано выше - CallBack |
#7
|
||||
|
||||
Суть моей проблемы состоит в том что при создании формы ей в лейбл передается уникальный номер. Этот номер используется для обращения к блоку управления (с таким же номером) каждые три секунды через ком порт. Прямые обращения к форме по имени я не могу делать поскольку её имя мне неизвестно при создании (да и гемороя больше). При создании формы создается и поток который вызывается таймером каждые 3 секунды. В execute потока находится код который выполняет обмен. Т.е. мне в execute надо передавать номер блока, выполнить чтение с блока, перевести данные в читабельный вид (всё происходит в процедурах потока) и вывести на форму. Если использовать глобальные переменные то все формы показывают данные одного блока, а мне нужны разные
|
#8
|
||||
|
||||
попробуйте, во вложении костяк
|
Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
Darlok (07.04.2012)
|