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