Alex7wrt
-
Постов
508 -
Зарегистрирован
-
Посещение
-
Победитель дней
31
Сообщения, опубликованные Alex7wrt
-
-
-
Не знаю, поможет или нет, но когда я пользовался TIdHttp, то обычно делал так:
Var str: string;
..............
str:=IdHttp.Get(s);
..............
То есть без TMemoryStream. TIdHttp.Get является функцией типа string. Поэтому TMemoryStream для загрузки результата не использовал. А вот в THttpClient как раз использую такую конструкцию.
Может и не в этом дело, конечно, но сейчас нет возможности проверить точнее.
-
Раньше использовал TIdHttp, затем перешёл на THttpClient.
THttpClient и TNetHttpClient - по сути одно и то же, только последний является визуальным компонентом.
Поэтому в вашем случае корректнее сравнивать THttpClient и TIdHttp.
Конкретно для моих целей использование THttpClient предпочтительнее, поскольку он из коробки работает с https на всех платформах, а в случае TIdHttp для этого ещё нужно подключать ssl.
Разницы в скорости работы не замечал.
-
В вашем приложении «Пятнашки» оно исчезает уже после того как приложение закрылось.
То есть приложение уже закрыто, а надпись ещё висит. Хотелось бы без этого.
Пока сделал все таки через TRectangle, TText и TFloatAnimation.
-
Попробуйте TForm.Invalidate;
-
А при реализации фишки с двойным нажатием кнопки "Назад" для выхода вы использовали какие-то системные функкции под Android?
Хочу тоже такую сделать, но может быть, чем рисовать прямоугольники и делать анимацию, есть уже готовый системный метод?
-
Можно ли средствами FireMonkey реализовать рассылку сообщений в Facebook со своего аккаунта?
Сейчас приходится писать один и тот же пост много раз и рассылать по разным группам. Хотелось бы этот процесс облегчить.
тематика - защита и устройство домашних животных.
Выбор платформы не принципиален.
-
Лично у меня такого никогда не было.
Возможно, при установке студии при выборе устанавливаемых пакетов вы не поставили галочку в пункте "Android"?
-
uses ..... FMX.Platform.Android, FMX.Helpers.Android, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.App, Androidapi.JNIBridge, Androidapi.JNI.Embarcadero, AndroidApi.JNI.Net, Androidapi.JNI.Util; ... var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); try Intent.setData(StrToJURI('market://details?id=name_of_app')); //если установлен google play except Intent.setData(StrToJURI('http://play.google.com/store/apps/details?id=name_of_app')); //иначе открываем ссылку в браузере end; TAndroidHelper.Context.startActivity(Intent);
В uses есть даже лишнее, поскольку взял из проекта, где были и другие функции под Android
-
Пытаюсь считывать данные с ком порта (RS232).
При считывании иногда происходит сдвиг строки на байт, из-за чего происходят ошибки при обработке поступающих данных:
2552525017500200333610166057255
25250175002001410166053255252
501750020034361016615725525250
1750020024101661532552525017
50020036361016635725525250175
002004410166353255252501750
02004036101651582552525017500
200841016515425525250175002
Тогда как правильно должно быть, чтобы каждая строка начиналась на 25. В сторонних прогах работы с ком портом всегда так и есть.В то же время, иногда после переключения ком порта считывание проиходит правильно, поэтому думаю, что ошибка может быть в настройках соединения с портом или задержках.
Вот параметры работы ком порта, от изготовителя устройства:
Вот как я настраиваю порт в программе:
procedure TForm1.Button1Click(Sender: TObject); begin ComFile:=CreateFile('com2',GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_READONLY,0); if ComFile=INVALID_HANDLE_VALUE then begin ShowMessage('Не удалось открыть порт '); exit; end; SetupComm(ComFile,18,18); GetCommState(ComFile,DCB); with DCB do begin BaudRate:=57600; ByteSize:=8; Parity:=NoParity; StopBits:=OneStopBit; end; if not SetCommState(ComFile,DCB) then begin ShowMessage('Порт не настроен'); CloseHandle(ComFile); exit; end; StartComThread; end; procedure TCommThread.Execute; begin Repeat QueryPort; Sleep(100); Until Terminated; end; rocedure TCommThread.QueryPort; var MyBuff:array [0..17] of Char; i: byte; Begin all_buf:=''; FillChar(MyBuff,SizeOf(MyBuff),#0); ReadFile(ComFile,MyBuff,SizeOf(MyBuff),BytesRead,Nil); If BytesRead>0 Then Begin for i:=0 to length(Mybuff)-1 do begin all_buf:=all_buf+inttostr(ord(MyBuff[i])); end; // Form1.Memo1.Lines.Add(all_buf); End; end;
Где может быть ошибка?
-
-
Как вариант - загрузить файл в stringlist по делимитеру, а затем скопировать строки в stringgrid
for(int i = 0 ; i<sl->Count ; i++) {sg->cells[0,i] = sl[i];}
и потом удалить stringlist
-
2 часа назад, S0lexV сказал:
Друзья, подскажите пожалуйста как реализовать на с++ в FMX загрузку и сохранение текста. В VCL раньше делал так:
TStringList *sl = new TStringList; sl->LoadFromFile(path+"car.car"); for(int i = 0 ; i<sg->RowCount ; i++) { sg->Rows[i]->DelimitedText=sl->Items->Strings[i]; }
Но в FMX нет метода "Rows"..... В инете есть примеры на делфи, но на C++ нет, переделать не получается. Очень нужно! Пожалуйста!
16 минут назад, S0lexV сказал:да не нужен мне stringlist, мне нужно в STRINGGRID запихать текст из файла!
Я прошу прощения. Почему-то это было не очевидно))
-
sl->delimiter = your_delimiter; sl->delimitedtext = your_text;
-
sl->Strings[i] или sl[i]
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Accessing_a_Particular_String
-
Вопрос решен.
Как оказалось, some_url в строке
HTTP.Get('http://some_url', stream)
перевели на https, из-за чего подключение по WiFi перестало работать...
-
Столкнулся со следующей проблемой
Конструкция типа:
try HTTP:=THTTPClient.Create; Stream:= TStringStream.Create('',TEncoding.UTF7); HTTP.Get('http://some_url', stream); Stream.Position:=0; Result:=stream.DataString; HTTP.Free; Stream.Free; except Result:='error'; end;
Возвращает Result = 'error' при первом подключении через WiFi. При этом через мобильные сети работает отлично. Причем, если после нормального запуска через мобильную сеть, переключится на WiFi, то снова работает. А если изначально повторять много раз под WiFi - то нет. Платформа - Android.
Куда копать?
-
Взаимодействовать с пользователями, которые кликают по рекламе
-
Если баннер отображается, то в самом приложении больше ничего делать не надо. Анализировать события в том числе.
По клику пользователя на баннере гугл будет автоматически зачислять какую-то сумму на ваш аккаунт в AdMob.
Естественно, вашим приложением должны пользоваться люди, то есть приложение должно быть размещено в магазине приложений Google Play или на других площадках.
-
Смотря каким проигрывателем. Windows Media Player - не запускает, остальные запускают. Конечно, не исключен вариант, что я что-то с кодеками нахимичил, потому как раньше и WMP запускал mpg вроде.
P.S. Но мне все равно стандартный плеер FireMonkey не нравится. Как ни одно, так другое. На разных компах по-разному. На некоторых все норм, на других черный экран со звуком, на третьих - вообще ничего. И поверх плеера ничего не выведешь. Да мне вообще нужно выводить одно видео в двух окнах )) Но это другая тема конечно.
-
18 часов назад, Alexander сказал:
Справка скудна, но интуиция подсказывает, что последний параметр очень важен для заполнения
Да он вроде и должен писаться в таком виде под Windows...
А кто-нибудь пользовался какими-нибудь другими, более универсальными компонентами плеера под FMX? Может быть, есть лучшая альтернатива?
-
Добрый день
Как заставить TMediaPlayer воспроизводить MPG файлы под Windows? MP4 воспроизводит, а mpg не хочет. Установлены кодеки KLite.
Добавление строки
TMediaCodecManager.RegisterMediaCodecClass('.mpg', 'MPEG Video', TMediaType.Video, TWindowsMediaCodec);
не помогает.
-
Добрый день.
Если все ваши картинки пронумерованы по порядку, и вы знаете номера первой и последней картинки, то просто грузите их в цикле
for i:= n1 to nn do
-
В 17.06.2017 в 00:22, Andrey Efimov сказал:
идеальное решение - добавить недостающие картинки и прописать их.
А как это сделать?
Нужны на мобильной платформе строки, которые работают по стандарту языка pascal.
в Строки
Опубликовано · Изменено пользователем Alex7wrt
Описанные вами отличия существуют, но сложностей они не вызывают.
Достаточно единожды использовать конструкции для платформ вроде такой:
{$IF DEFINED(MSWINDOWS)} start_index:=1; {$ELSE} start_index:=0; {$ENDIF}