Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.06.2020, 00:42
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
Восклицание Висюк при обработке исключений try except в Android

Доброго всем времени суток!
Почему в этой ветке: Андрюха - тоже ОС (балшой паласатый мух) ...
А присказка такова - в ХЕ8 такое:
Код:
procedure TForm1.FormShow(Sender: TObject);
var
  recievemessage, tmp: string;
begin
  try
    IdTCPClient1.Connect;
    IdTCPClient1.Socket.WriteLn('Get_Data');
    recievemessage:= IdTCPClient1.Socket.ReadLn;
    IdTCPClient1.Disconnect;
  except
    on E:Exception do
    begin
      Showmessage('Не удалось установить соединение');
      exit
    end;
  end; 
//   как-то обрабатываем recievemessage...
end;
вызывает зависание и парадокс в том, что виснет только тел (РедМи4 с Андрюхой 6.0), а под эмулятором (МЕМУ с Андрюхой 5.1.1) прога пускается и очень даже работает... Как это врачевать - ни кто не в курсе?
З.Ы. И стрелка "назад" не выходит из проги ни в теле, ни в эмуляторе.
Заранее благодарен
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
Ответить с цитированием
  #2  
Старый 06.06.2020, 05:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, для начала, поставить Timeout в какое-то разумное значение.
Во вторых, проверить запрашиываемые программой доступы и добавить доступ к инету, если не указан.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
UFO 007 (16.01.2021)
  #3  
Старый 15.06.2020, 00:52
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, для начала, поставить Timeout в какое-то разумное значение.
А какое из них разумное (я так понимаю - там mS) - 10? 20? 50?

Цитата:
Сообщение от lmikle
Во вторых, проверить запрашиываемые программой доступы и добавить доступ к инету, если не указан.
... доступ к инету мне покуда и даремно не надь: сервер ещё не написан - тут другое: try/except - если в евентах формы убрать FormShow (или закоментить 3 строки с упоминанием Клиента), то прога нормально работает и на теле, а в данной ипостаси - только под эмулятором (делает
Код:
Showmessage('Не удалось установить соединение');
) при чём хоть Хонор и ругается, что прога откомпилена для старой версии Андроида но виснет наглухо а Редми (без FormShow, но при нажатии "Отправить") манипуляциями рабочий стол-диспетчер задач-туда-сюда-обратно удаётся вывести из висюка и табслайдить все имеющиеся листбоксы, едиты и т. д.
Центральный вопрос: почему под эмулятором try/except (без которого и эмулятор вис) всё очень даже работает, а в тЕлах - висюк? Неужто "китайфоны" не подозревают, что существуют такие вещи как исключения?
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
Ответить с цитированием
  #4  
Старый 04.07.2020, 23:31
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию

Вот и дошёл ход - сервер написан (пока - прототип на Дельфи) и всё очень даже работает самым чудным образом: клиент в телефоне собирает с ТЕдитов строку и отправляет серверу, который (пока) заполняет ею одноимённые ТЕдиты. Но стоит сэмулировать ситуацию: у сервера села батарейка (ну, или автомат выбило) - нажимаем крестик справа вверху и при нажатии "Отправить" тЕлы виснут... Как врачевать?
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
Ответить с цитированием
  #5  
Старый 05.07.2020, 20:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Еще раз - там тайм-аут надо ставить.
Попробуй что-то типа того:
Код:
xxx.ReadTimeout := 3000; // 3 sec
Надо смотреть что в компоненте используется. Да, ставить таймаут надо до Connect.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
UFO 007 (16.01.2021)
  #6  
Старый 12.11.2020, 02:35
Goras Goras вне форума
Прохожий
 
Регистрация: 10.11.2019
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

А что, разве можно после коннекта поставить?
Цитата:
Надо смотреть что в компоненте используется. Да, ставить таймаут надо до Connect.


на дельфи сейчас много чего пишется и не всегда все сразу работает. Тем более если прототип. пару лет назад писал софт для сервиса одного, продажа и аренда яхт и катеров. Но магазин у них на опенкарте естественно и вот заявки клиентов не проходили ввиду того что пислись они на английском языке. И надо было делать приложение как раз на дельфи. Написали, проверили все - работает. Пока свзяали с основным магазином - коннект пропал. Несовместимость какая то непонятная. Тогда написали приложение на яве и под андроид и айос пришлось отдельно все прописывать. Опенкарт старая версия была, обновление не стали ставить вот и получился такой геморой

Последний раз редактировалось Goras, 19.02.2021 в 17:48.
Ответить с цитированием
  #7  
Старый 12.11.2020, 23:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Поставить то можно, вот только толку...
Ответить с цитированием
  #8  
Старый 16.01.2021, 21:01
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Код:
xxx.ReadTimeout := 3000; // 3 sec
Connect.
А если батарейка заряжается раз-эдак в 100 дольше (или дежурный электрик будет только утром)? Вопрос-то про try/except...
__________________
...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter