Как организовать правильный прием сообщений через блютус? В стандартном classic примере нету приема. Попробовал метод.ReceiveData; - работает, но морозит (ожидаемо) приложение. Сделал отдельный поток (тут я совсем новичок) и первый раз сообщение получается нормально , код примерно такой:
Как постоянно принимать что-либо без фриза приложения, может есть примеры какие?Причем оно и в потоке не всегда срабатывает, но если срабатывает, то только один раз. Пробовал добавить конструкцию repeat until terminated; - не помогло.
Цитата
procedure Reciever.Execute;
begin
repeat
Synchronize(Viv);
until terminated;
end;
Может поток нужно как то перезапускать? или использовать что то другое?
UPD. Нашел функцию ресив дата
Цитата
function ReceiveData: TBytes; overload; inline;
var
receives:string;
begin
Form1.DisplayR.Lines.Add('БУМ!');
ReceiveS := TEncoding.UTF8.GetString(ReceiveData);
Form1.DisplayR.Lines.Add(ReceiveS);
end;
Но проблема та же, после первого получения - приложение нормально отправляет текст, но не получает его.
Вопрос
M1shQa
Как организовать правильный прием сообщений через блютус? В стандартном classic примере нету приема. Попробовал метод.ReceiveData; - работает, но морозит (ожидаемо) приложение. Сделал отдельный поток (тут я совсем новичок) и первый раз сообщение получается нормально , код примерно такой:
Как постоянно принимать что-либо без фриза приложения, может есть примеры какие?Причем оно и в потоке не всегда срабатывает, но если срабатывает, то только один раз. Пробовал добавить конструкцию repeat until terminated; - не помогло.
Может поток нужно как то перезапускать? или использовать что то другое?
UPD. Нашел функцию ресив дата
Но проблема та же, после первого получения - приложение нормально отправляет текст, но не получает его.
Изменено пользователем MikeWuzHereСсылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.