-
Постов
31 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Весь контент Рагим
-
Доброго времени суток. Пишу мобильное приложение на Delphi Berlin. Добавил вибрацию при нажатии на кнопку. На Андроид 4.4.2 все работает нормально, на Андроид 6 при нажатии на кнопку приложение вылетает. Проблема точно в вибрации, так как при отсутствии вибрации все работает нормально. В качестве процедуры вибрации использую следующий код: procedure Vibr; //Процедура вибрации var VibratorObj: JObject; Vibrator: JVibrator; begin VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE); Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID); if Vibrator.hasVibrator() then Vibrator.vibrate(200); end; Как по Вашему, в чем может быть причина?
-
на XE7 проблем не было. проблемы появились на XE 10.1 Berlin
- 9 ответов
-
- Delphi
- TIdTcpClient
-
(и ещё 1 )
C тегом:
-
Не помогло. На телефоне TCPServer не получает ничего. проставил showmessage практически на все события, которые у него есть, но глухо. TCPClient нормально подключается к телефону и посылает сообщение.
- 9 ответов
-
- Delphi
- TIdTcpClient
-
(и ещё 1 )
C тегом:
-
Добрый день. Решил сегодня сделать некоторые доработки в приложение написанное на XE7 под Андроид и столкнулся со следующей проблемой: приложение не получает информацию через связку TIdTCPClient/TIdTCPServer. До этого все работало. Отправляю сообщение с компьютера через TIdTCPClient: try form2.IdTCPClient1.Connect; form2.IdTCPClient1.IOHandler.WriteLn(ss,enUTF8); form2.IdTCPClient1.Disconnect; except showmessage('Error'); end; end;//try получаю (вернее не получаю) на телефоне под Андроид: procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); begin l := AContext.Connection.IOHandler.ReadLn(enUTF8); showmessage(l); end; В чем может быть проблема и как решить?
- 9 ответов
-
- Delphi
- TIdTcpClient
-
(и ещё 1 )
C тегом:
-
Спасибо за совет. Сделал следующим образом: Кинул на сервер TIdUDPClient. Поставил кнопку и при нажатии отрабатывает form2.IdUDPClient1.Active:=true; form2.IdUDPClient1.BroadcastEnabled:=true; form2.IdUDPClient1.Broadcast(ServerIP,8090); form2.IdUDPClient1.Active:=false; form2.IdUDPClient1.BroadcastEnabled:=false; На клиенте TIdUDPServer. var DataStringStream: TStringStream; ServIP: String; begin DataStringStream := TStringStream.Create(''); try DataStringStream.CopyFrom(AData, AData.Size); ServIP := DataStringStream.DataString; finally DataStringStream.Free; end; ShowMessage(ServIP);
-
UDP пакет отправлять/получать при помощи TIdUDPClient/TIdUDPServer? насколько я помню там на конкретный IP отправляется. Т.е. мне надо отправить 254 пакета за раз? можете написать пример как это лучше сделать?
-
Доброго времени суток. Есть приложение на Windows (сервер) и есть от 1 до 4 приложений (клиенты) на Андроид. Все устройства в сети. IP адреса клиентов не известны серверу, а адрес сервера клиентам. Приложения после того как узнают адреса друг друга, будут обмениваться сообщениями через TIdTcpClient и TIdTcpServer. Как лучше реализовать распознавание клиентов в сети? Делаю сейчас используя Tethering, но способ мне не нравится.
-
Флеш не интерактивный. перегнать могу, но нужно чтобы он крутился постоянно. Пробовал через таймер реализовать, не получилось.
-
Доброго времени суток. Имеется старый проект написанный на VCL. Хочу его перевести на FMX и столкнулся с тем, что не могу воспроизвести SWF. Компоненты Flash установлены и видны под VCL, а под FMX нет.
-
Доброго времени суток. Есть приложение которое на некоторые действия пользователей отвечает звонком. Приложение живет со времени Delphi 7. Для воспроизведения звука использую такую процедуру: Procedure Tform1.PlayRing; var s:string; begin s := 'ringin.wav'; if FileExists(s) then begin form1.MediaPlayer1.Stop; form1.MediaPlayer1.Clear; form1.MediaPlayer1.FileName:=s; form1.MediaPlayer1.Play; end else showmessage('Error 104: File not found: '+s); end; Звук воспроизводится нормально 50-60 раз. Потом либо выскакивает ошибка: Unsupported media file ringin.wav, либо приложение подвисает. Проблема появилась после перехода с VCL на FMX.
-
Доброго времени суток. Столкнулся со следующей проблемой: есть два приложения на Андроид. Подключаются друг к другу через Tethering. Когда оба телефона подключены к одной сети, все работает без проблем. Если на одном из телефонов создать точку доступа и подключить второй к этой сети, то они не подключаются друг к другу через Tethering. В чем может быть проблема?
-
Вот рабочий вариант. procedure TForm1.ShowPlus(a, b: byte); // a - Номер строки // b - Цвет команды begin case a of 1: begin form1.PlusGlyph1.ImageIndex:=b-1; form1.MinusGlyph1.ImageIndex:=b+3; end; 2: begin form1.PlusGlyph2.ImageIndex:=b-1; form1.MinusGlyph2.ImageIndex:=b+3; end; 3: begin form1.PlusGlyph3.ImageIndex:=b-1; form1.MinusGlyph3.ImageIndex:=b+3; end; 4: begin form1.PlusGlyph4.ImageIndex:=b-1; form1.MinusGlyph4.ImageIndex:=b+3; end; end; end;
-
передаются два параметра: каждый это целое число от 1 до 4. С этим проблемы нет. Раньше ведь все работало.
-
Проблема с прорисовкой в Image так и не решил. Сделал по-другому. Загрузиk все изображения в TImageList и стал оттуда подгужать в TGlyph. Проблема устранена. Проблему устранил, но точно не знаю почему не работало. Возможно потому что одновременно с прорисовкой еще идет отправка/получение сообщений на другие устройства и прорисовка происходит не в основном потоке. Поблуждав по просторам форума понял что у Image такое иногда бывает (проблемы с прорисовкой не в основном потоке).
-
форма у меня не одна
-
Не помогло. Все равно изображения не отображаются. Свойство Visible у них равно false, т.е. сначала загружаю файлы с изображением, а затем только показываю. Попробовал отображать перед загрузкой - отображается первая пара, от второй пары отображается только кнопка минус и то не с загруженным в рантайм изображением, а с тем что я загрузил в дизайне.
-
Добрый день. Столкнулся с проблемой. Приложение изначально писал на XE6, потом перенес на XE7 - все работало без проблем. Обновился до XE8 и код перестал работать. Причем никаких ошибок не выкидывает. Просто зависает не отрабатывает процедура. Прошу не бить ногами за дилетантский код. Главное до этого нормально работал. Суть такая: есть два приложения под Андроид. Связаны между собой по сети. Назовем их сервер и клиент (вернее 4 клиента). Одно из них посылает сообщение на другой и при получении сообщения должна отрабатывать эта процедура. Взависимости от того кто и когда послал сообщение, появляются разные картинки. procedure TForm1.ShowPlus(a,b:byte); //a - Номер строки //b - Цвет команды begin but[a]:=b; case a of 1: begin case b of 1: begin form1.PlusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bplus.png'); form1.MinusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bminus.png'); end; 2: begin form1.PlusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yplus.png'); form1.MinusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yminus.png'); end; 3: begin form1.PlusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gplus.png'); form1.MinusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gminus.png'); end; 4: begin form1.PlusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rplus.png'); form1.MinusImage1.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rminus.png'); end; end; end; 2: begin case b of 1: begin form1.PlusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bplus.png'); form1.MinusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bminus.png'); end; 2: begin form1.PlusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yplus.png'); form1.MinusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yminus.png'); end; 3: begin form1.PlusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gplus.png'); form1.MinusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gminus.png'); end; 4: begin form1.PlusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rplus.png'); form1.MinusImage2.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rminus.png'); end; end; end; 3: begin case b of 1: begin form1.PlusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bplus.png'); form1.MinusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bminus.png'); end; 2: begin form1.PlusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yplus.png'); form1.MinusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yminus.png'); end; 3: begin form1.PlusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gplus.png'); form1.MinusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gminus.png'); end; 4: begin form1.PlusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rplus.png'); form1.MinusImage3.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rminus.png'); end; end; end; 4: begin case b of 1: begin form1.PlusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bplus.png'); form1.MinusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'bminus.png'); end; 2: begin form1.PlusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yplus.png'); form1.MinusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'yminus.png'); end; 3: begin form1.PlusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gplus.png'); form1.MinusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'gminus.png'); end; 4: begin form1.PlusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rplus.png'); form1.MinusImage4.Bitmap.LoadFromFile(System.IOUtils.TPath.GetDocumentsPath + PathDelim+'rminus.png'); end; end; end; end; end; Буду рад любой помощи в исправлении ошибок или оптимизации кода.
-
Решил проблему установкой XE8. Сейчас тот же самый код работает. Наверное была проблема в самой среде.
-
Добрый день. Есть необходимость создать из приложения под Андроид точку доступа на телефоне. После этого получить список IP-адресов подключенных устройств. Если кто-то знает каким образом можно это реализовать, пожалуйста помогите.
-
- Точка доступа
- hotpoint
-
(и ещё 2 )
C тегом:
-
Ошибки в коде нет. Даже если пишу просто if Key = vkHardwareBack then begin showmessage('Exit!'); Key := 0; end; показывается сообщение, а потом вылетает. повторюсь на XE6 этот же код работает без проблем
-
Добрый день. Пишу приложение на Delphi XE7 под Андроид. Код типа if Key = vkHardwareBack then begin // Do whatever you want to do here Key := 0; // Set Key = 0 if you want to prevent the default action end; отлично работал в XE6 и перестал работать после обновления. Приложение выполняет все что находится до строки Key:=0, а потом закрывается. Причем не закрывает подключения TIdTCPServer? в результате чего не выгружается полностью. Вышеуказанный код надо использовать как при выходе из приложения, так и при переходе из формы в форму. В чем по вашему мнению может быть проблема?
-
Да.
- 14 ответов
-
- Indy
- TIDTCPclient
-
(и ещё 2 )
C тегом: