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

Hevard

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

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

  • Посещение

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

    7

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

  1. Sad
    Hevard отреагировална GASCHE в Книга. Обучение мобильной разработке не Delphi   
    Основной задачей второго издания данной книги является актуализация представленных примеров относительно текущей версии Embarcadero RAD Studio/Delphi 10.3.2 Rio по сравнению с той, которая использовалась при подготовки первого варианта. Материал книги дополнился новыми возможностями и полезными советами, а также рекомендациями, полученными от читателей первой версии.

  2. Like
    Hevard отреагировална Martifan в Как поменять надписи для кнопок в MessageDlg?   
    Извините я сам нашел решение если кому пригодится:
     
    1. находим файл FMX.Consts.pas
    2. Положи его в папку с проектом.
    3. Menu Project->Add to Project - добавь этот файл.
    4. Сохрани проект. Закрой проект. Открой проект заново.
    5. Menu -> Project -> Build All Project
    6. Запускаем.
  3. Like
    Hevard получил реакцию от Humanoid в Вышла Delphi 11 Community Edition   
    Я обычно "сверху" ставлю 
    UniversalAdbDriverSetup.zip
  4. Like
    Hevard получил реакцию от Ingalime в Вышла Delphi 11 Community Edition   
    Для переноса (компилирования) проектов из более ранней версии необходимо провести действия для Android 32-bit и Android 64-bit.
    В окне Projects (справа) выбрать Target Platforms -> Правой кнопкой щёлкнуть по Libraries и выбрать Revert System Files to Default.
    И не забудьте перенести debug.keystore из c:\Users\<USER>\AppData\Roaming\Embarcadero\BDS\21.0\ в папку ...\22.0\
    Delphi: Community Edition - Embarcadero
     

  5. Like
    Hevard отреагировална Rusland в Запрос на закрытие приложения при нажатии кнопки Назад   
    Подправил вот так (чтобы работало в Delphi 10 Seattle):
     
    procedure TFormMain.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); var FService : IFMXVirtualKeyboardService; begin if Key = vkHardwareBack then begin TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService)); if (FService <> nil) and (TVirtualKeyBoardState.Visible in FService.VirtualKeyBoardState) then begin // Back button pressed, keyboard visible, so do nothing... end else begin MessageDlg('Закрыть приложение?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes,TMsgDlgBtn.mbNo], 0, procedure(const AResult: TModalResult) begin Case AResult of mrYes: FormMain.Close; mrNo: Exit; end; end); Key:=0; end; end; end; Работает нормально, только в диалоге запроса No стоит впереди. Как бы No и Yes поменять местами? 
    А еще лучше заменить на Да и Нет.
  6. Like
    Hevard отреагировална Andrey Efimov в Как узнать версию приложения под Android?   
    Например, вот так:
    {for Delphi XE6/XE7: Add to "uses" module "Androidapi.Helpers"} uses   Androidapi.JNI.JavaTypes, FMX.Helpers.Android,   Androidapi.JNI.GraphicsContentViewText; var   PackageManager: JPackageManager;   VersionPackage,PackageName: JString; begin   PackageManager := SharedActivity.getPackageManager;   PackageName := SharedActivityContext.getPackageName;       VersionPackage := PackageManager.getPackageInfo(PackageName, 0).versionName;   Label1.Text := JStringToString(VersionPackage); p.s. Для подобных вопросов, у меня в блоге есть страничка "JNI Code Snippet"
  7. Like
    Hevard отреагировална bigjorj в Приложение не установлено. Уже установлен пакет с таким именем и другой подписью   
    У меня также. Компилю Android проект на разных компьютерах. При переходе с компьютера на компьютер приходится сначала удалить приложение с устройства.
     
    Думаю причина в том что тестовая подпись (C:\Users\{username}\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore) от эмбаркадеро разная в разных установках.
  8. Like
    Hevard отреагировална sdn31 в Приложение не установлено. Уже установлен пакет с таким именем и другой подписью   
    Спасибо. взял ключ из "C:\Users\{username}\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore" и все заработало. Теперь со временем нужно сделать файл KeyStore. 
  9. Thanks
    Hevard отреагировална Martifan в Аналог WriteLn в TFile?   
    Для работы с файлами в современных версиях Delphi я рекомендую использовать классы TStringList или TFileStream. TStringList подходит для работы с текстовыми файлами, а TFileStream для работы с двоичными файлами.
    Вот пример кода, как выгрузить динамический массив в текстовый файл, используя TStringList:
    uses Classes, SysUtils; var IndexData: array of array of Integer; IndexFile: TStringList; I, QNum, URes, RAns: Integer; begin SetLength(IndexData, 5, 4); // Задаем размер массива IndexFile := TStringList.Create; try for I := 0 to High(IndexData) do begin // Записываем данные в массив (для примера, используем случайные значения) IndexData[I, 0] := I; IndexData[I, 1] := QNum; IndexData[I, 2] := URes; IndexData[I, 3] := RAns; // Добавляем данные из массива в строку IndexFile IndexFile.Add(IntToStr(IndexData[I, 0]) + ', ' + IntToStr(IndexData[I, 1]) + ', ' + IntToStr(IndexData[I, 2]) + ', ' + IntToStr(IndexData[I, 3])); end; // Сохраняем данные в файл IndexFile.SaveToFile('DB\Index.tmp'); finally IndexFile.Free; end; end. Когда вы используете класс TStringList, вам не нужно заботиться о закрытии файла. TStringList.SaveToFile автоматически закрывает файл после записи. Метод TStringList.Free очищает память, выделенную для объекта.
  10. Confused
    Hevard отреагировална FREEFAR в Как вернуть скролл в начало? TVertScrollBox   
    еще так можно))
    VertScrollBox1.ViewportPosition.Y := 0;
  11. Thanks
    Hevard отреагировална Вадим Шавров в Как вернуть скролл в начало? TVertScrollBox   
    Не помогло.
    Решил поискать ответ по командам, которые вы написали. Нашел такое решение:
    VertScrollBox1.ViewportPosition:=TPointF.Create(0,0); Все работает. Спасибо!
  12. Thanks
    Hevard отреагировална slav_z в FMX: Скроллинг и нажатия   
    Все разработчики при работе с FMX рано или поздно сталкиваются с одной и той же проблемой: необходимо исключить "случайное" срабатывание нажатий элементов внутри скроллбокса во время его скроллинга. Идут годы, а решения так и нет. Давайте попробуем это исправить. Поехали!
    Запускаем IDE, создаем новый проект, кидаем на форму TVertScrollBox и на него чего-нибудь побольше... запускаем на мобильном устройстве, пытаемся скроллировать,

    получаем проблемы в виде срабатывания разных событий типа OnClick элементов.
    Решение состоит в том, чтобы сделать элементы "невидимыми" для событий связанных с действиями пользователя с экраном во время скроллинга.
    Делаем следующее:

    Все. Переносим код в базовую форму, делаем его более гибким, убираем все те костыли, которые мы уже успели сделать ранее...
    Удачи!
    https://github.com/slav-libx/scroll-click.git
  13. Like
    Hevard получил реакцию от MAD_EVAL в Android 10 (API уровня 29)   
    Осталось понять, а как быть с андроид 11?
  14. Like
    Hevard отреагировална Brovin Yaroslav в [TStringGrid] Как подсветить задний фон ячейки в зависимости от данных?   
    Нужно:
    Повесить обработчик события на ручную отрисовку ячеек: TGrid.OnDrawColumnCell: В обработчике в зависимости от требуемой строки или данных, нарисовать задний фон ячейки Затем поверх выполнить обычное отображение содержимого ячейки  type TOpenColumn = class (TColumn); procedure TForm8.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); begin if Row mod 2 = 0 then begin // Выполняем закраску заднего фона Canvas.Fill.Color := TAlphaColorRec.Aliceblue; Canvas.FillRect(Bounds, 0, 0, AllCorners, 1); // Рисуем поверх обычное отображение содержимого ячейки TOpenColumn(Column).DefaultDrawCell(Canvas, Bounds, Row, Value, State); end; end; Для этого примера, у меня получилось так:

×
×
  • Создать...