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

chaplin.u@gmail.com

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

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

  • Посещение

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

  1. Like
    chaplin.u@gmail.com получил реакцию от Rusland в баг в компоненте TBluetoothLE   
    докопался до истины и она посредине. 
    стандартно обмен идёт по минимуму - 20 байт
    но есть процесс переговоров (NEGOTIATION ) между телефоном и устройством который может привести к увеличению пакета до 525 байт.
    апликация должна запросить устройство на увеличение пакета. так вот несмотря на то что в файле этот параметр как видите есть в поставляемой от Абракадабры компоненте нет реализации этого процесса.
    как и полностью отсутствует обмен паролем для защиты от постороннего вмешательства. т.е. любой посторонний может получить полный контроль над вашим устройством.
    Вывод : компонента поставляется в ознакомительных целях и для создания коммерческих приложений запрещена !
    Ну и если кто знает где есть нормальная компонента - просьба сообщить.
     
  2. Like
    chaplin.u@gmail.com получил реакцию от Евгений Корепов в баг в компоненте TBluetoothLE   
    докопался до истины и она посредине. 
    стандартно обмен идёт по минимуму - 20 байт
    но есть процесс переговоров (NEGOTIATION ) между телефоном и устройством который может привести к увеличению пакета до 525 байт.
    апликация должна запросить устройство на увеличение пакета. так вот несмотря на то что в файле этот параметр как видите есть в поставляемой от Абракадабры компоненте нет реализации этого процесса.
    как и полностью отсутствует обмен паролем для защиты от постороннего вмешательства. т.е. любой посторонний может получить полный контроль над вашим устройством.
    Вывод : компонента поставляется в ознакомительных целях и для создания коммерческих приложений запрещена !
    Ну и если кто знает где есть нормальная компонента - просьба сообщить.
     
  3. Like
    chaplin.u@gmail.com получил реакцию от Pax Beach в баг в компоненте TBluetoothLE   
    докопался до истины и она посредине. 
    стандартно обмен идёт по минимуму - 20 байт
    но есть процесс переговоров (NEGOTIATION ) между телефоном и устройством который может привести к увеличению пакета до 525 байт.
    апликация должна запросить устройство на увеличение пакета. так вот несмотря на то что в файле этот параметр как видите есть в поставляемой от Абракадабры компоненте нет реализации этого процесса.
    как и полностью отсутствует обмен паролем для защиты от постороннего вмешательства. т.е. любой посторонний может получить полный контроль над вашим устройством.
    Вывод : компонента поставляется в ознакомительных целях и для создания коммерческих приложений запрещена !
    Ну и если кто знает где есть нормальная компонента - просьба сообщить.
     
  4. Like
    chaplin.u@gmail.com отреагировална Равиль Зарипов (ZuBy) в Как открыть файл по ссылке ?   
    то что вы описали, это открытие ссылки.
    код который я привел выполнит открытие ссылки, а дальше сработает ассоциация и запустится "стандартное" приложение
    если вы хотите открыть у себя в приложении, то скачивайте файл и делайте с ним что хотите
  5. Like
    chaplin.u@gmail.com отреагировална Кривяков Виталий в Как открыть 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; Приблизительно так...
  6. Like
    chaplin.u@gmail.com отреагировална Равиль Зарипов (ZuBy) в как держать компоненты вместе   
    Top+Top
    <TListBox>.Align := TAlignLayout.Top; <TPanel>.Align := TAlignLayout.Top; Top+Client
    <TListBox>.Align := TAlignLayout.Top; <TPanel>.Align := TAlignLayout.Client; Client+Bottom
    <TListBox>.Align := TAlignLayout.Client; <TPanel>.Align := TAlignLayout.Bottom;  
  7. Like
    chaplin.u@gmail.com отреагировална kami в как держать компоненты вместе   
    Выравнивание одного - Client. Выравнивание второго - Top или Bottom. Элементарно, Ватсон!
    Примеры:
    1. ListBox - Top , Panel - Client
    2. ListBox - Client, Panel - Bottom.
    Всё зависит от того, кто должен менять размеры, а кто оставаться недвижим.
  8. Like
    chaplin.u@gmail.com получил реакцию от Евгений Корепов в Почему в Берлине нет кнопки Apply   
    Почему в Берлине нет кнопки Apply как это было на прошлых версиях ? вот так
  9. Like
    chaplin.u@gmail.com отреагировална enatechno в Как сохранить пропорции у ScaledLayout ?   
    Если хотите пропорционального изменять размеры  ScaledLayout:
    1). Используйте для него выравнивание по одному краю (например: Top, Left ... );
    2). При запуске программы фиксируйте TScaledLayout.OriginalWidth и TScaledLayout.OriginalHeight;
    3). Т.к. в зависимости от выравнивания у Вас будет изменятся один из параметров (при выравнивании Top - Width, при Left - Height), то будьте готовы в OnResize изменять пропорционально второй параметр. Например так:
     
    aRatio := ScaledLayout1.Width / ScaledLayout1.OriginalWidth; ScaledLayout1.Height := ScaledLayout1.OriginalHeight * aRatio;  
    tstScaledLayout.zip
  10. Like
    chaplin.u@gmail.com получил реакцию от Kitty в Как реализовать такое-же окно  как на картинке ?   
    Нашёл пример и сделал это окошко но только взгляните сколько кода нужно впихнуть вместо ваших 10 строк :
    http://docwiki.embarcadero.com/RADStudio/Berlin/en/Mobile_Tutorial:_Using_dbExpress_and_SQLite_(iOS_and_Android)
     
  11. Like
    chaplin.u@gmail.com получил реакцию от Kitty в Выход Update для RAD Studio 10 Berlin   
    кстати пометка  : Update 1 requires a full uninstall and reinstall.
  12. Like
    chaplin.u@gmail.com получил реакцию от Равиль Зарипов (ZuBy) в Выход Update для RAD Studio 10 Berlin   
    кстати пометка  : Update 1 requires a full uninstall and reinstall.
  13. Like
    chaplin.u@gmail.com получил реакцию от Rusland в баг в компоненте TBluetoothLE   
    Вот в файле Winapi.BluetoothLE.pas написано что минимум 23 а максимум 525 байт 
     
    { MTU }
      BTHLEENUM_ATT_MTU_MIN = 23; 
      {$EXTERNALSYM BTHLEENUM_ATT_MTU_MIN}
      BTHLEENUM_ATT_MTU_MAX = $FFFF;
      {$EXTERNALSYM BTHLEENUM_ATT_MTU_MAX}
      BTHLEENUM_ATT_MTU_DEFAULT = BTHLEENUM_ATT_MTU_MIN; 
      {$EXTERNALSYM BTHLEENUM_ATT_MTU_DEFAULT}
      BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION = 525; 
      {$EXTERNALSYM BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION
    кто-то знает где копать ?
  14. Like
    chaplin.u@gmail.com отреагировална AngryOwl в Как запустить приложение на планшете с Windows10 ?   
    Установить PAServer на удаленной машине (ПК/планшет) и все.
    Как сделать тут и тут. И вообще много в сети примеров, в том числе и на этом форуме где-то было.
  15. Like
    chaplin.u@gmail.com получил реакцию от Равиль Зарипов (ZuBy) в строка из массива шестнадцатиричных чисел   
    кстати я и не говорил что я профессионал. я самоделкин. делаю проект в одиночку: 
    - электрическую схему прибора в Оркаде
    - развожу печатную плату в Аллегро
    - делаю программу ( embeded real time) для контроллера от Cypress
    - мульти-платформенную апликацию для смартфонов на Android / iOS
    извините господа но у меня нет времени на диспуты. вот закончу проект и тогда свами подиспутирую.
    И лет мне уже 57...  Я программы писал ещё на перфокартах на Фортране.
     
  16. Like
    chaplin.u@gmail.com отреагировална Камышев Александр в строка из массива шестнадцатиричных чисел   
    вот все злые, пристали к программеру, наговорили всякого,
    человек хочет тупо массив данных в HEX просматривать, что от него уходит...
    IntToHex используй, вот код на си:
    AnsiString s; for ( unsigned int i = 0; i < size; i++ ) s += IntToHex( ( (unsigned __int8)(data[i] ), 2 ) + " "; на выходе строка HEXов через пробел
  17. Like
    chaplin.u@gmail.com получил реакцию от Kitty в Можно ли собрать APK без смартфона ?   
    Вот окончательный вариант :
    Project->Make <Имя проекта>
    Deploy lib<Имя проекта> .so
    Далее взять apk  файл из  .\$(Platform)\$(Config)\<Имя проекта>\bin
    Всем Спасибо !
     
  18. Like
    chaplin.u@gmail.com получил реакцию от Rusland в Вопрос Администратору! Какие планы на Россию?   
    Да печально что фирма в прошлом году обьявила про движение в сторону мобильных платформ а в этом свернула на Линукс сервера. Так и не сделали компилятор под Х86
     
  19. Like
    chaplin.u@gmail.com получил реакцию от Sergionn в Вопрос Администратору! Какие планы на Россию?   
    Да печально что фирма в прошлом году обьявила про движение в сторону мобильных платформ а в этом свернула на Линукс сервера. Так и не сделали компилятор под Х86
     
  20. Like
    chaplin.u@gmail.com получил реакцию от Kitty в Вопрос Администратору! Какие планы на Россию?   
    Да печально что фирма в прошлом году обьявила про движение в сторону мобильных платформ а в этом свернула на Линукс сервера. Так и не сделали компилятор под Х86
     
  21. Like
    chaplin.u@gmail.com отреагировална enatechno в как сделать автоскролинг чтобы активный итем был виден ?   
    Активный итем или последний добавленный? На дельфи "скроллировать" можно с помощью TListbox.ScrollToItem(Item). Если последний добавленный, то сначала добавляем, а потом скролл к нему. Например вот так:
     
    Listbox1.BeginUpdate; try aListBoxItem := TListBoxItem.Create(Listbox1); aListBoxItem.Text := 'text ' + random(500).ToString; Listbox1.AddObject(aListBoxItem); finally Listbox1.EndUpdate; end; Listbox1.ScrollToItem(aListBoxItem);  
  22. Like
    chaplin.u@gmail.com отреагировална Евгений Корепов в Как управлять ProgressBar  с помощью Timer-а ?   
    unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) ProgressBar: TProgressBar; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } Timer : TTimer; procedure TimerTimer(Sender: TObject); end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject); begin ProgressBar.Min:=0; ProgressBar.Max:=100; Timer:=TTimer.Create(Self); Timer.Interval:=10; // милисекунд, 1000 = 1 секунде Timer.OnTimer:=TimerTimer; Timer.Enabled:=True; end; procedure TForm1.TimerTimer(Sender: TObject); begin ProgressBar.Value:=ProgressBar.Value+0.1; if ProgressBar.Value>=ProgressBar.Max then Timer.Enabled:=False; end; end.  
×
×
  • Создать...