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

Rusland

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

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

  • Посещение

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

    26

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

  1. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в [Статья] Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 1]   
    Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS
  2. Like
    Rusland отреагировална krapotkin в [Андроид] интерфейс приложения   
    я бы вообще в лоб сделал в GridPanelLayout внутри ScrollBox'а
     
  3. Like
    Rusland отреагировална enatechno в [Андроид] интерфейс приложения   
    пример с GridPanelLayout
     
  4. Like
    Rusland отреагировална Ghk в TThread.Priority   
    Андройд девелопер в помощь - на официальном сайте все прекрасно расписано - значения приоритетов от 0 до 10
    https://developer.android.com/reference/java/lang/Thread.html#MAX_PRIORITY
    ну и выше там по потокам в андройде почитаете
  5. Like
    Rusland отреагировална Maximus в Как заблокировать антиалиасинг?   
  6. Like
    Rusland отреагировална Andrey Efimov в В определенное время отправлять SMS - как лучше реализовать?   
    [Статья][Android] AlarmManager - Автозапуск приложения в назначенное время
  7. Like
  8. Like
    Rusland отреагировална Kitty в krapotkin и Равиль Зарипов   
    Даже не знаю или в правильный раздел форума пишу. Я, например, хочу поблагодарить в своей теме - krapotkin и Равиль Зарипов за очень полезные ответы. Реально помогают решить вопросы. Спасибо.
    Хотя все они паскалисты, все же удается иногда получить код на С++ со стороны. Очень в этом помогает автор Indy rlebeau, например эту статью: Статья 
    он переводит в С++ тут: C++  и никто бы другой не помог. В этом плане тяжело, без него и никак вопрос не решить.
    А этот форум это симбиоз ума и решений! Спасибо Ярославу за реализацию и хоты бы одного спеца по С++ как по Дельфи и - вот оно счастье.
    Спасибо!
     
     
  9. Like
    Rusland отреагировална RoschinSpb в Обработка клавиатуры   
    См. документацию источник знаний: KeyDown или TKeyEvent. 
    Key это скан код клавиши приведенный к виртуальным кодам клавиш windows. Это значение получается когда нажато некоторое сочетание клавиш к примеру Ctrl+<пробел>, такие нажатия последовательно передаются всем контролам, пока один из них не обработает его и не сбросит в 0. За некоторыми исключениями эти значения определяются физическим расположением клавиш, т. е. английская клавиша <A> будет всегда располагаться приблизительно в одном и том же месте и на Mac и на Win и в России и в Гондурасе.
    Keychar это введенная буква. Т.е. обычная буква которая вводится при наборе текста зависит от платформы, языка, выбранной раскладки способа ввода и прочих параметров. Такие нажатия передаются только фокусному контролу.
    Так что для Ctrl+<пробел> надо использовать проверку if (Key =  vkSpace) and (ssCtrl in shift).
    Для проверки нажатия Ctrl+Ф надо использовать проверку if (Key =  vkA) and (ssCtrl in shift) и ни каких Key = Ord('Ф') потому, что неизвестно какая на этом месте будет буква на каком-нибудь Mac из Японии. И более того 
    Key = Ord('Ф') = $D4 - это зарезервированный код клавиши
    Key = Ord('ф') = $F4 - это VK_OEM_ENLW (Only used by Nokia)
    Key = Ord('a') = $61 - это vkNumpad1 (1 key numeric keypad)

    Но проще было бы создать действие (см. TActionList и TAction), назначить на него ShortCut выбрав одно из рекомендованных значений.
  10. Like
    Rusland отреагировална Andrey Efimov в Обработка клавиатуры   
    if Ord(KeyChar) = vkSpace then Memo1.Lines.Add('Пробел') или if KeyChar = ' ' then Memo1.Lines.Add('Пробел') Проверил на всякий случай, работает отлично.
  11. Like
    Rusland отреагировална AngryOwl в FMX TTaskbar   
    Самое простое решение ("на коленке"):
    uses ... {$IFDEF MSWINDOWS} System.Win.ComObj, Winapi.ShlObj, {$ENDIF} ... //------------------------------------------------- type TTaskBarState = record name : string; value : byte; end; TFMXTaskBar = class(TPersistent) private fTaskBarList : ITaskBarList3; fTaskBarState : integer; fTaskBarProgress : integer; fAlertState : Boolean; procedure setTaskBarState(newState:integer); procedure setTaskBarProgress(newValue : integer); procedure setAlertState(const Value: Boolean); protected public property AlertState: Boolean read fAlertState write setAlertState; property TaskBarState : integer read fTaskBarState write setTaskBarState; property TaskBarProgress : integer read fTaskBarProgress write setTaskBarProgress; constructor Create; destructor Destroy; override; end; //------------------------------------------------- const taskStates : array [0..4] of TTaskBarState = ( (name: 'TBPF_NOPROGRESS'; value: TBPF_NOPROGRESS), (name: 'TBPF_INDETERMINATE'; value: TBPF_INDETERMINATE), (name: 'TBPF_NORMAL'; value: TBPF_NORMAL), (name: 'TBPF_ERROR'; value: TBPF_ERROR), (name: 'TBPF_PAUSED'; value: TBPF_PAUSED)); //------------------------------------------------- var MainTaskBar: TFMXTaskBar; //------------------------------------------------- { TFMXTaskBar } constructor TFMXTaskBar.Create; var tbList : ITaskBarList; hr : HRESULT; begin tbList := CreateComObject(CLSID_TaskBarList) as ITaskBarList; hr := tbList.QueryInterface(IID_ITaskBarList3, fTaskBarList); if hr <> S_OK then begin fTaskBarList := nil; tbList._Release; end; end; destructor TFMXTaskBar.Destroy; begin inherited; end; procedure TFMXTaskBar.setAlertState(const Value: Boolean); begin if assigned(fTaskBarList) then if fAlertState <> Value then begin fAlertState := Value; if Value then begin setTaskBarState(3); // TBPF_ERROR setTaskBarProgress(100); end else begin setTaskBarState(0); setTaskBarProgress(0); end; end; end; procedure TFMXTaskBar.setTaskBarProgress(newValue: integer); begin if assigned(fTaskBarList) then fTaskBarList.SetProgressValue(ApplicationHWND, newValue, 100); end; procedure TFMXTaskBar.setTaskBarState(newState: integer); begin if assigned(fTaskBarList) then fTaskBarList.SetProgressState(ApplicationHWND, taskStates[newState].value); end; //------------------------------------------------- initialization MainTaskBar := TFMXTaskBar.Create; finalization if Assigned(MainTaskBar) then FreeAndNil(MainTaskBar);  
  12. Like
    Rusland отреагировална dnekrasov в Как запустить дочерний процесс на Маке?   
    Вот пример как у меня идет добавление в архив используя zip в MacOS:
    function ZipAdd(AArchName, AFileName: String): boolean; {$IFDEF MACOS} var s, sRoot, sFileName, sArchName: String; {$ENDIF} begin Result := False; {$IFDEF MACOS} try if DirectoryExists(AFileName) then begin if AFileName[AFileName.Length] = PathDelim then System.Delete(AFileName, AFileName.Length, 1); sRoot := ExtractFilePath(AFileName); AFileName := AFileName.Remove(0, sRoot.Length); s := Format('pushd "%s"; zip -r "%s" "%s"; popd', [sRoot, AArchName, AFileName]); _system(PAnsiChar(UTF8String(s))); end else begin s := Format('zip -j "%s" "%s"', [AArchName, AFileName]); _system(PAnsiChar(UTF8String(s))); end; Result := FileExists(AArchName); except Result := False; end; {$ENDIF} end; Замените зиповские команды архивирования на раровские разархивирования, добавьте необходимую Вам логику и наслаждайтесь
  13. Like
    Rusland отреагировална rareMax в TNetHTTPClient, php и select   
    На сколько я понимаю это не совсем вопрос по делфи... но держи
    http://ru.stackoverflow.com/questions/284297/Вывести-из-базы-mysql-в-виде-json-массива
  14. Like
    Rusland отреагировална AngryOwl в Уничтожение фрейма при нажатии на кнопку   
    у фрейма:
    private fOnCloseInfo : TNotifyEvent; protected procedure DoOnCloseInfo; dynamic; public { Public declarations } /// <summary> Обработчик события закрытия фрейма </summary> property OnCloseInfo : TNotifyEvent read fOnCloseInfo write fOnCloseInfo; end; procedure TframeInfo.DoOnCloseInfo; begin // Если обработчик назначен, то запускаем его. if Assigned(fOnCloseInfo) then fOnCloseInfo(Self); end; при инициализации фрейма (не важно где и как - когда создается):
    frameInfo.OnCloseInfo := fmMain.DoOnCloseInfo; при нажатии на кнопку:
    DoOnCloseInfo; в главной (или любой другой форме, которая будет отрабатывать нажатие кнопки во фрейме):
    // можно в любой секции, смотря что нам нужно procedure DoOnCloseInfo(Sender: TObject); procedure TfmMain.DoOnCloseInfo(Sender: TObject); begin if Assigned(frameInfo) then FreeAndNil(frameInfo); end; типа так...
  15. Like
    Rusland получил реакцию от Kitty в Живое связывание с таблицей БД   
    Применение LiveBindings в Delphi-проектах
     
    Технология LiveBindings стала неотъемлемой частью большинства средств разработки программ крупнейших производителей решений для разработчиков ПО. На вебинаре пройдет практическое знакомство по применению LiveBindings в программах на RAD Studio, Delphi и C++Builder с применением VCL или FMX в Design-time и Run-time.
     
    16 марта 2017 12:00 МСК.
     
  16. Like
    Rusland получил реакцию от Равиль Зарипов (ZuBy) в Живое связывание с таблицей БД   
    Применение LiveBindings в Delphi-проектах
     
    Технология LiveBindings стала неотъемлемой частью большинства средств разработки программ крупнейших производителей решений для разработчиков ПО. На вебинаре пройдет практическое знакомство по применению LiveBindings в программах на RAD Studio, Delphi и C++Builder с применением VCL или FMX в Design-time и Run-time.
     
    16 марта 2017 12:00 МСК.
     
  17. Like
    Rusland отреагировална krapotkin в Надолго зависает код при загрузке из интернета   
    ну, потенциальное место проблемное есть в кодировке
    ms создается в ANSI а вот get происходит в некоей дефолтной скорее всего UTF-8, т.к. никаких заголовков в HttpClient вы не установили. 
    например
      FHttp:=THTTPClient.Create();
      FHttp.AcceptCharSet:='utf-8';
      FHttp.ContentType:='application/json';
      FHttp.Accept := 'application/json';
      FHttp.CustomHeaders['Accept-Language']:='ru_RU';
  18. Like
    Rusland получил реакцию от MaratBest в Надолго зависает код при загрузке из интернета   
    Именно в поток
    TTask.Run( procedure begin TThread.Synchronize(TThread.CurrentThread, procedure begin end); end);  
  19. Like
    Rusland получил реакцию от Kitty в Укажите направление как работать с ListView?   
    Вот тут видео, которое обычно дает уважаемый krapotkin, оно "о чем" и на английском. Нужно понять что ListView не обычный компонент - нужно научиться с ним работать. На этом форуме много примеров
  20. Like
    Rusland отреагировална sinuke в Drag в мобильных приложениях   
    необходимо использовать жесты. обрабатывать их нужно в событии OnGesture
    для определения того, что происходит в данный момент, есть EventInfo, с помощью которого можно узнать начался жест, окончился или нужно действовать по инерции (это свойство Flags). так же с помощью EventInfo можно узнать, какой именно жест происходит, а так же текущие координаты
     
    в качестве примера вот можете глянуть мою "демку" (это я делал пробу пера для одного проекта). код не претендует на звание эталонного, но вроде понятный
    test_touchanim.zip
  21. Like
    Rusland отреагировална Кривяков Виталий в как сделать плавность   
    Посмотрите тут TUITabControl
  22. Like
    Rusland отреагировална DrunyaRuma в com-порт FireMonkey   
    Да я видел ее, у них не только для Prolific, но и для других есть. Скачал, установил, судя по всему они тоже за основу брали Java библиотеки и даже открытые из GitHub. Если получится что-то отпишусь.
     
  23. Like
    Rusland отреагировална Ghk в Builder C++ матерится на Synchronize при компиляции под андройд   
    Дело было не в бобине ...©
    Обновление SDK до последней версии решило проблему! Урааа !
     
  24. Like
    Rusland отреагировална rareMax в Как Delphi собирает apk файл?   
    Играйся, http://www.javadecompilers.com/apk
  25. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в Анимация TextPromt для TEdit   
    Я сделал вот так
×
×
  • Создать...