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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    264

Активность репутации

  1. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alisson R Oliveira в TListView Custom checkboxes (иконка чекбокс "избранное")   
    как-то так, но это наверное сложно для понимания)
    LVStars.rar
  2. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]   
    ну думаю изменить нужно код, а что именно поменять это решение не для этого форума. вам нужно обратиться на форум по php
  3. Like
    Равиль Зарипов (ZuBy) получил реакцию от Ingalime в [FGX] Будет ли релиз FGX под Tokyo?   
    ребята уже ставили, совместимость есть
  4. Like
    Равиль Зарипов (ZuBy) получил реакцию от ENERGY в MySQL + Android + PHP - как добавить картинку в MySQL   
    картинку желательно не загружать в базу а складывать в папку на сервере (и лучше всего сжать до нужных размеров) и в базу вписать лишь путь до файла
    вот мануалчик на пхп
    http://php.net/manual/ru/features.file-upload.post-method.php
    на delphi это просто составляем POST запрос
    aURL - путь до скрипта, который будет принимать файлы aFileName - полный путь до файла, который нужно отправить var aData: TMultipartFormData; aHTTP: THTTPClient; aResp: TStringStream; begin aResp := TStringStream.Create('', aEncoding); aData := TMultipartFormData.Create(); aHTTP := THTTPClient.Create; try try aData.AddFile('image', aFileName); // на php считываем по полю image aHTTP.Post(aURL, aData, aResp); Result := aResp.DataString; // тут скрипт должен что-то вернуть о успешном принятии except Result := TmyHTTPClient.ERROR_COMMON; // генерация своей ошибки, если что-то пошло не так end; finally FreeAndNil(aHTTP); FreeAndNil(aData); FreeAndNil(aResp); end;  
  5. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Ищу несколько кросс-платформенных компонентов   
    да, T(Net)HTTPClient как раз и работает адекватно на всех платформах
    при запуске проверить функцией CheckInet, если нету доступа показать окно с прокси
  6. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в TAdMob (рекламное видео)   
    про это?
    http://www.fmxexpress.com/code-snippet-for-full-screen-interstitial-ads-in-delphi-xe8-firemonkey-on-android/
  7. Like
    Равиль Зарипов (ZuBy) получил реакцию от chaplin.u@gmail.com в Как открыть PDF в стандартном приложении просмотра PDF файлов?   
    на ios нету интентов, там все делается через url. открываете url и система сама откроет приложение если такое установлено
    modURL.rar
  8. Like
    Равиль Зарипов (ZuBy) отреагировална Кривяков Виталий в Как открыть PDF в стандартном приложении просмотра PDF файлов?   
    function GetDefaultFilePath(const FileName: string): string; begin {$IFDEF Android} Result := TPath.Combine(TPath.GetSharedDocumentsPath, FileName); {$ENDIF} {$IFDEF IOS} Result := TPath.Combine(TPath.GetDocumentsPath, FileName); {$ENDIF} {$IFDEF MSWindows} Result := TPath.Combine(TPath.GetDocumentsPath, FileName); {$ENDIF} ForceDirectories(ExtractFilePath(Result)); end; procedure TForm.ShowPDF; var {$IFDEF Android} Intent: JIntent; {$ENDIF} FilePath, tmpStr: string; begin FilePath := GetDefaultFilePath(Filename); {$IFDEF Android } try Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJURI('file:' + FilePath), StringToJString('application/pdf')); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); SharedActivity.startActivity(Intent); except on E: Exception do ShowToast(E.Message); end; {$ENDIF} {$IFDEF IOS} wbViewPDF.Visible := True; wbViewPDF.URL := 'file:/' + FilePath; {$ENDIF} end; Приблизительно так...
  9. Like
    Равиль Зарипов (ZuBy) получил реакцию от enatechno в MySQL + Android + PHP - как добавить картинку в MySQL   
    картинку желательно не загружать в базу а складывать в папку на сервере (и лучше всего сжать до нужных размеров) и в базу вписать лишь путь до файла
    вот мануалчик на пхп
    http://php.net/manual/ru/features.file-upload.post-method.php
    на delphi это просто составляем POST запрос
    aURL - путь до скрипта, который будет принимать файлы aFileName - полный путь до файла, который нужно отправить var aData: TMultipartFormData; aHTTP: THTTPClient; aResp: TStringStream; begin aResp := TStringStream.Create('', aEncoding); aData := TMultipartFormData.Create(); aHTTP := THTTPClient.Create; try try aData.AddFile('image', aFileName); // на php считываем по полю image aHTTP.Post(aURL, aData, aResp); Result := aResp.DataString; // тут скрипт должен что-то вернуть о успешном принятии except Result := TmyHTTPClient.ERROR_COMMON; // генерация своей ошибки, если что-то пошло не так end; finally FreeAndNil(aHTTP); FreeAndNil(aData); FreeAndNil(aResp); end;  
  10. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в WebBrowser + ComboBox = ошибка ?   
    ага, посмотрел логом, думаю правильней будет так
    // ZuBy *** procedure TCustomWebBrowser.FormHandleCreated(const Sender: TObject; const Msg: TMessage); var WBService: IFMXWBService; begin if not(Sender.ClassNameIs('TCustomPopupForm')) then if not(csDesigning in ComponentState) and TPlatformServices.Current.SupportsPlatformService(IFMXWBService, WBService) then begin FWeb := WBService.CreateWebBrowser; FWeb.SetWebBrowserControl(Self); FWeb.UpdateContentFromControl; FWeb.URL := FURL; FWeb.Navigate; end; end; // *** ZuBy не реагировать на создание Попап окон, на формы это не влияет. Сильно не тестил, так что хз.
  11. Like
    Равиль Зарипов (ZuBy) получил реакцию от krapotkin в MySQL + Android + PHP - как добавить картинку в MySQL   
    картинку желательно не загружать в базу а складывать в папку на сервере (и лучше всего сжать до нужных размеров) и в базу вписать лишь путь до файла
    вот мануалчик на пхп
    http://php.net/manual/ru/features.file-upload.post-method.php
    на delphi это просто составляем POST запрос
    aURL - путь до скрипта, который будет принимать файлы aFileName - полный путь до файла, который нужно отправить var aData: TMultipartFormData; aHTTP: THTTPClient; aResp: TStringStream; begin aResp := TStringStream.Create('', aEncoding); aData := TMultipartFormData.Create(); aHTTP := THTTPClient.Create; try try aData.AddFile('image', aFileName); // на php считываем по полю image aHTTP.Post(aURL, aData, aResp); Result := aResp.DataString; // тут скрипт должен что-то вернуть о успешном принятии except Result := TmyHTTPClient.ERROR_COMMON; // генерация своей ошибки, если что-то пошло не так end; finally FreeAndNil(aHTTP); FreeAndNil(aData); FreeAndNil(aResp); end;  
  12. Like
    Равиль Зарипов (ZuBy) отреагировална Alex7wrt в Не могу добавить сторонний txt файл в скомпилированый пакет под андроид   
    То есть просто вы раньше не добавляли наклонную черту-разделитель между директорией и именем файла. Вот и вся загвоздка.
  13. Like
    Равиль Зарипов (ZuBy) получил реакцию от Евгений Корепов в Не могу добавить сторонний txt файл в скомпилированый пакет под андроид   
    на билдере вроде так
    TPath::GetDocumentsPath() ну или вот так, чтобы уж наверняка
    System::IOutils::TPath::GetDocumentsPath()  
  14. Like
    Равиль Зарипов (ZuBy) отреагировална chaplin.u@gmail.com в файл не находится   
    после долгих мучений нашёл проблему. баг в деплойменте. файл не деплоится если в имени файла есть символ подчёркивания _ !
    почему я не проверил сразу т.к. почти все файлы аппликации содержат этот символ а то и два. я вообще-то и взял файл для проверки один из стандартных.
    но они проходят на ура а файлы которые идут в документс не проходят.  
    спасибо всем кто помогал.
  15. Like
    Равиль Зарипов (ZuBy) получил реакцию от Mars M в Количество видимых Items — ?   
    ModernLV.getVisibleCount
  16. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в Зачем создается дополнительный файл формы   
    это не случайные символы. и создаете вы его сами, когда НАСЛЕДУЕТЕ master-форму для конкретных платформ и разрешений
    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_FireMonkey_Views
  17. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Ищу несколько кросс-платформенных компонентов   
    да, T(Net)HTTPClient как раз и работает адекватно на всех платформах
    при запуске проверить функцией CheckInet, если нету доступа показать окно с прокси
  18. Like
    Равиль Зарипов (ZuBy) получил реакцию от Vitaldj в Ищу несколько кросс-платформенных компонентов   
    да, T(Net)HTTPClient как раз и работает адекватно на всех платформах
    при запуске проверить функцией CheckInet, если нету доступа показать окно с прокси
  19. Like
    Равиль Зарипов (ZuBy) отреагировална ENERGY в TListView Custom checkboxes (иконка чекбокс "избранное")   
    Огромное спасибо Равиль! Как хорошо что вы помогаете.
    Итак для тех кто не знает, в TListView есть режим DynamicAppearance , который позволяет добавлять предустановленные элементы - картинки, текст, GlyphButon. В хелпе  написано что их может быть любое количество.
    Итак добавляем TListView, в панели Structure  выбираем TListView > ItemAppearance > Item.
    В инспекторе объектов выбрать свойство Appearance и  комбобоксе Dynamic Appearance. Рядом в инспекторе появится свойство Objects - нажать на него и там уже добавляем нужные поля. Там же можно переименовать поле, в AppearanceObjectName чтобы позже использовать в RunTime. У меня периодически на этих этапах вылетает Catastrophic Failure и среду приходится терминировать с диспетчера (Berlin Update 2).
    Дальше, жмем правой кнопкой мыши по ListView и выбираем Toggle Design Mode, где можно увидеть эти добавленные Custom поля и расставить их мышкой и указать выравнивание.
    Это имя затем можно использовать в Runtime, для картинки это индекс в ImageList, который нужно указать в ListView  таким образом (за это еще раз спасибо Равилю! :), почему это сделали так неочевидно и почему это не указано в мануале, остается загадкой.. 
    Для TImageObjectAppearance с именем Star - 
    ListView1.Items.Add.Data['Star'] := Integer(1);
    Например заполняем список с картинками с индексами 0 и 1:
    procedure TForm5.FormShow(Sender: TObject); var   I: Integer; begin   for I := 0 to 9 do   begin     with ListView1.Items.Add do     begin       Text := 'Item ' + I.ToString;       Data['Star'] := Integer(I mod 2 = 0);     end;   end; end; Переключаем с картинки с индексом 1 на 0 и наоборот. procedure TForm5.ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem); begin   AItem.Data['Star'] := AItem.Data['Star'].AsInteger xor 1; end ;
     
     
     
  20. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в TListView Custom checkboxes (иконка чекбокс "избранное")   
    как-то так, но это наверное сложно для понимания)
    LVStars.rar
  21. Like
    Равиль Зарипов (ZuBy) получил реакцию от Евгений Корепов в WebBrowser + ComboBox = ошибка ?   
    ага, посмотрел логом, думаю правильней будет так
    // ZuBy *** procedure TCustomWebBrowser.FormHandleCreated(const Sender: TObject; const Msg: TMessage); var WBService: IFMXWBService; begin if not(Sender.ClassNameIs('TCustomPopupForm')) then if not(csDesigning in ComponentState) and TPlatformServices.Current.SupportsPlatformService(IFMXWBService, WBService) then begin FWeb := WBService.CreateWebBrowser; FWeb.SetWebBrowserControl(Self); FWeb.UpdateContentFromControl; FWeb.URL := FURL; FWeb.Navigate; end; end; // *** ZuBy не реагировать на создание Попап окон, на формы это не влияет. Сильно не тестил, так что хз.
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от giveaway в Ищу несколько кросс-платформенных компонентов   
    чтобы прям кросс, думаю такой код подойдёт
    function StartGranted: boolean; // uses System.IOUtils begin Result := not TFile.Exists(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted')); TFile.WriteAllText(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted'), ''); end; в dpr пишем
    begin if StartGranted then begin Application.Initialize; Application.CreateForm(TForm2, Form2); Application.Run; end; end. ну и в дестрое главной формы
    procedure TForm2.FormDestroy(Sender: TObject); //uses  System.IOUtils; begin   TFile.Delete(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted')); end; Но это не точно, может есть и  аналог mutex'a в MacOS
  23. Like
    Равиль Зарипов (ZuBy) отреагировална krapotkin в Можно ли как-нибудь попроще воспроизвести на Андроиде произвольный звук?   
    http://stackoverflow.com/questions/2413426/playing-an-arbitrary-tone-with-android
    тут формируют буфер синусом и 
    audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, (int)numSamples*2, AudioTrack.MODE_STATIC); audioTrack.write(generatedSnd, 0, generatedSnd.length); // Load the track audioTrack.play(); ну или тут
    https://gist.github.com/slightfoot/6330866
     
  24. Like
    Равиль Зарипов (ZuBy) отреагировална Ерлан в [Обзор] #3 ModernListView - динамическая подгрузка контента   
    Рахмад, Равиль! Сбилдил, все заработало! Привет с Караганды)
  25. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Ищу несколько кросс-платформенных компонентов   
    чтобы прям кросс, думаю такой код подойдёт
    function StartGranted: boolean; // uses System.IOUtils begin Result := not TFile.Exists(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted')); TFile.WriteAllText(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted'), ''); end; в dpr пишем
    begin if StartGranted then begin Application.Initialize; Application.CreateForm(TForm2, Form2); Application.Run; end; end. ну и в дестрое главной формы
    procedure TForm2.FormDestroy(Sender: TObject); //uses  System.IOUtils; begin   TFile.Delete(TPath.Combine(TPath.GetDocumentsPath, 'IamStarted')); end; Но это не точно, может есть и  аналог mutex'a в MacOS
×
×
  • Создать...