|
|
|
Как правильно обновлять элементы формы при работе с TIdTCPClient?
|
|||
|---|---|---|---|
|
#18+
Пишу клиент-серверное приложение с использованием компонентов TIdTPCServer/TIdTCPClient (Delphi XE, Indy 10). В клиентской части есть таймер, в котором клиент принимает сообщения от сервера. Сообщения принимаются так: Код: pascal 1. 2. 3. 4. Далее, в том же таймере, в зависимости от того, какое сообщение пришло, необходимо внести изменения на форму: Код: pascal 1. 2. 3. 4. Есть некоторые проблемы при обмене данными, и я подозреваю, что дело в прямом обращении к элементам формы, которое при работе с многопоточными компонентами, вроде как, запрещено. Верны ли мои подозрения, что второй блок кода может привести к таким проблемам? Если да, то как решается (или даже не допускается) проблема? менять элементы формы в "Synchronize"? Или есть другие подходы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:35 |
|
||
|
Как правильно обновлять элементы формы при работе с TIdTCPClient?
|
|||
|---|---|---|---|
|
#18+
подход всегда один - данные не должны храниться на экране есть модель данных (МД), это набор структур, где они хранятся и даже как-то управляются. это, по-сути, сервер внутри вашей программы с этим сервером работает и модуль интерфейса (форма) и модуль обмена с внешним миром в этом случае достаточно просто заносить приходящие данные а МД и дергать метод, который отвечает за считывание МД на форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:39 |
|
||
|
Как правильно обновлять элементы формы при работе с TIdTCPClient?
|
|||
|---|---|---|---|
|
#18+
А метод дергать в том же таймере, ведь? Код: pascal 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:41 |
|
||
|
Как правильно обновлять элементы формы при работе с TIdTCPClient?
|
|||
|---|---|---|---|
|
#18+
TSchedulerЕсть некоторые проблемы... Верны ли мои подозрения, что второй блок кода может привести к таким проблемам? Если да, то как решается (или даже не допускается) проблема? Ну что ты прямо. Для решения некоторых пооблем соедует использовать некоторые методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=95&tid=2040367]: |
0ms |
get settings: |
5ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 371ms |

| 0 / 0 |
