Перейти к содержанию
Fire Monkey от А до Я

Alex7wrt

Пользователи
  • Постов

    508
  • Зарегистрирован

  • Посещение

  • Победитель дней

    31

Весь контент Alex7wrt

  1. Описанные вами отличия существуют, но сложностей они не вызывают. Достаточно единожды использовать конструкции для платформ вроде такой: {$IF DEFINED(MSWINDOWS)} start_index:=1; {$ELSE} start_index:=0; {$ENDIF}
  2. Попробуйте через события TGrid.OnDrawColumnCell или TGrid.OnDrawColumnBackground. Там можно отрисовывать в ячейках то, что вам нужно
  3. Не знаю, поможет или нет, но когда я пользовался TIdHttp, то обычно делал так: Var str: string; .............. str:=IdHttp.Get(s); .............. То есть без TMemoryStream. TIdHttp.Get является функцией типа string. Поэтому TMemoryStream для загрузки результата не использовал. А вот в THttpClient как раз использую такую конструкцию. Может и не в этом дело, конечно, но сейчас нет возможности проверить точнее.
  4. Раньше использовал TIdHttp, затем перешёл на THttpClient. THttpClient и TNetHttpClient - по сути одно и то же, только последний является визуальным компонентом. Поэтому в вашем случае корректнее сравнивать THttpClient и TIdHttp. Конкретно для моих целей использование THttpClient предпочтительнее, поскольку он из коробки работает с https на всех платформах, а в случае TIdHttp для этого ещё нужно подключать ssl. Разницы в скорости работы не замечал.
  5. В вашем приложении «Пятнашки» оно исчезает уже после того как приложение закрылось. То есть приложение уже закрыто, а надпись ещё висит. Хотелось бы без этого. Пока сделал все таки через TRectangle, TText и TFloatAnimation.
  6. А при реализации фишки с двойным нажатием кнопки "Назад" для выхода вы использовали какие-то системные функкции под Android? Хочу тоже такую сделать, но может быть, чем рисовать прямоугольники и делать анимацию, есть уже готовый системный метод?
  7. Можно ли средствами FireMonkey реализовать рассылку сообщений в Facebook со своего аккаунта? Сейчас приходится писать один и тот же пост много раз и рассылать по разным группам. Хотелось бы этот процесс облегчить. тематика - защита и устройство домашних животных. Выбор платформы не принципиален.
  8. Лично у меня такого никогда не было. Возможно, при установке студии при выборе устанавливаемых пакетов вы не поставили галочку в пункте "Android"?
  9. 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
  10. Пытаюсь считывать данные с ком порта (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; Где может быть ошибка?
  11. Alex7wrt

    Load/Save StringGrid

    Как вариант - загрузить файл в stringlist по делимитеру, а затем скопировать строки в stringgrid for(int i = 0 ; i<sl->Count ; i++) {sg->cells[0,i] = sl[i];} и потом удалить stringlist
  12. Alex7wrt

    Load/Save StringGrid

    Я прошу прощения. Почему-то это было не очевидно))
  13. Alex7wrt

    Load/Save StringGrid

    sl->delimiter = your_delimiter; sl->delimitedtext = your_text;
  14. Alex7wrt

    Load/Save StringGrid

    sl->Strings[i] или sl[i] http://docwiki.embarcadero.com/RADStudio/Berlin/en/Accessing_a_Particular_String
  15. Вопрос решен. Как оказалось, some_url в строке HTTP.Get('http://some_url', stream) перевели на https, из-за чего подключение по WiFi перестало работать...
  16. Столкнулся со следующей проблемой Конструкция типа: 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. Куда копать?
  17. Взаимодействовать с пользователями, которые кликают по рекламе
  18. Если баннер отображается, то в самом приложении больше ничего делать не надо. Анализировать события в том числе. По клику пользователя на баннере гугл будет автоматически зачислять какую-то сумму на ваш аккаунт в AdMob. Естественно, вашим приложением должны пользоваться люди, то есть приложение должно быть размещено в магазине приложений Google Play или на других площадках.
  19. Смотря каким проигрывателем. Windows Media Player - не запускает, остальные запускают. Конечно, не исключен вариант, что я что-то с кодеками нахимичил, потому как раньше и WMP запускал mpg вроде. P.S. Но мне все равно стандартный плеер FireMonkey не нравится. Как ни одно, так другое. На разных компах по-разному. На некоторых все норм, на других черный экран со звуком, на третьих - вообще ничего. И поверх плеера ничего не выведешь. Да мне вообще нужно выводить одно видео в двух окнах )) Но это другая тема конечно.
  20. Да он вроде и должен писаться в таком виде под Windows... А кто-нибудь пользовался какими-нибудь другими, более универсальными компонентами плеера под FMX? Может быть, есть лучшая альтернатива?
  21. Добрый день Как заставить TMediaPlayer воспроизводить MPG файлы под Windows? MP4 воспроизводит, а mpg не хочет. Установлены кодеки KLite. Добавление строки TMediaCodecManager.RegisterMediaCodecClass('.mpg', 'MPEG Video', TMediaType.Video, TWindowsMediaCodec); не помогает.
  22. Добрый день. Если все ваши картинки пронумерованы по порядку, и вы знаете номера первой и последней картинки, то просто грузите их в цикле for i:= n1 to nn do
×
×
  • Создать...