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

Поиск сообщества

Показаны результаты для 'размер приложения'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

  1. При компиляции и установке приложения на смартфон не создается иконка приложения на экране. Попробовал в настройках приложения Install shortcut=true, не помогает. Приходится вручную переносить иконку из списка приложений. Помогите с решением.
  2. Вспомнил о приложении-скринсейвере, на который наткнулся ещё в "лохматые" годы. Morph3D. Исходники лежат тут: Исходники.RU - Информационный сервер для программистов: исходники со всего света. (sources.ru) Откомпилировал на Александрии, заменив PChar на PAnsiChar. Исходник увеличился в 2.5 раза... Почему так произошло?
  3. Кроссплатформенное приложение.Картинка с камеры. На ней лежит ректангл. Вырезаю часть изображения по ректанглу. В винде все прекрасно. В андроид все смещается в зависимости от выбранного разрешения камеры. Вопрос: Не пойму как соотносятся физический, логический размер экрана, Размер самого изображения и размеры контейнера (в моем случае Layout) в котором лежит изображение, между собой. Т.е. не могу правильно получить координаты вырезки на изображении. Как соотнести координаты ректангла с координатами изображения? Вот последние изыскания в этом направлении. Так хотя бы по высоте не прыгает... Просветите плиз, как это все соотносится. type TScreenS = record w: Single; // logic H: Single; // logic wp: Single; // phisics Hp: Single; // phisics D: Single; // scale display end; var ScrSize: TScreenS; imgDest : TBitMap; SouRec, DisRec: TRectF; ..... ScrSize := GetScreenSize; Scale := imgCamera.Bitmap.Height / Layout1.Height; Ww := imgCamera.Bitmap.Width / Scale; // Ширина изображения приведенная к пропорции высоты tx := ((Layout1.Width - Ww) / 2); // Смещение изображения относительно контейнера по Х t:=0; // Смещение изображения относительно контейнера по Y {$IFDEF ANDROID} Scale := Scale * ScrSize.D; // Масштаб для андроида с учетом масштаба экрана {$ENDIF} imgDest.Width := Rectangle1.Width; imgDest.Height := Rectangle1.Height; // Исходная зона для копирования // Х = позиция ректангла по Х минус смещение относительно контейнера // Y = позиция ректангла по Y минус смещение относительно контейнера // конечная позиция то же плюс размеры ректангла SouRec := TRectF.Create((Rectangle1.Position.X - tx) * Scale, (Rectangle1.Position.Y - t) * Scale, (Rectangle1.Position.X + Rectangle1.Width - tx) * Scale, (Rectangle1.Position.Y + Rectangle1.Height - t) * Scale); // Для Андроид добавляю разницу по высоте между физическим и логическим размерами экрана {$IFDEF ANDROID} SouRec := TRectF.Create((Rectangle1.Position.X - tx) * Scale, (Rectangle1.Position.Y + (ScrSize.hp - ScrSize.h)) * Scale, (Rectangle1.Position.X + Rectangle1.Width - tx) * Scale, (Rectangle1.Position.Y + Rectangle1.Height + (ScrSize.hp - ScrSize.h)) * Scale); {$ENDIF} DisRec := TRectF.Create(0, 0, Rectangle1.Width * Scale, Rectangle1.Height * Scale); imgDest.Bitmap.SetSize(Round(Rectangle1.Width * Scale), Round(Rectangle1.Height * Scale)); imgDest.Bitmap.Canvas.BeginScene; imgDest.Bitmap.Canvas.DrawBitmap(imgCamera.Bitmap, SouRec, DisRec, 1); imgDest.Bitmap.Canvas.EndScene;
  4. Использовал среду XE6, компилируемый файл ЕХЕ, с использованием FireMonkey Form после компилирования, размер ЕХЕ файла был 9мб. Установил XE10.1, после компиляции файл стал 12.8мб, что могло повлиять ? Помогите разобраться и отключить не нужные опции, чтобы уменьшить размер.
  5. Здравствуйте, коллеги. Подскажите пожалуйста как запретить повторный запуск приложения под Windows при использовании FireMonkey. На VCL при старте приложения создавал уникальный Mutex и при старте приложения и по его наличию/отсутствию понимал, что приложение уже запущенно. Как такое аналогичное сделать в FireMonkey? #if defined(_Windows) // ... // Код для Windows // ... #elif defined(__ANDROID__) // ... // Код для андроид // ... #elif defined(....) # // ... # // ... # // ... #else # error "Unknown platfrom type" #endif Так делать не очень хочется по множеству причин. PS RAD Studio 10 Seattle.
  6. Плохая идея организовывать протокол на задержках (delay) в системах с вытесняющей многозадачностью. Только разделители (csv, json, PChar(#0)) или префиксы длины (http Content-Length) или жесткий фиксированный размер (packed record). Человеsleep(1000)ко читаеsleep(1000)мый теsleep(1000)кст - каково тебе И и ии ии ииилон мм мма мммааа...
  7. Добрый день! В RAD есть шаблоны на 5" и на 7". Как приложение определяет дюймовку экрана? Есть 2 телефона: Разрешение (пикс): 1920x1080 (5.2") Разрешение (пикс): 2340x1080 (6.3") В первом - шаблон 5", во втором - 7" Как так получается?
  8. Когда вы говорите, что приложения на Андроиде весят 400КБ и используют библиотеки Java размером 2ГБ, вы, по-видимому, имеете в виду разницу между размером исполняемого файла приложения и размером всех библиотек, которые оно может использовать во время выполнения. Современные фреймворки, такие как Java для Android или .NET, часто используют большое количество библиотек, которые содержат общий код, используемый многими приложениями. Эти библиотеки обычно устанавливаются один раз и затем используются множеством приложений, поэтому их размер не влияет на размер каждого отдельного приложения. С другой стороны, приложения, созданные с использованием Delphi, обычно компилируются в нативный код и включают в себя все необходимые библиотеки и зависимости. Это может привести к тому, что исполняемые файлы будут больше, чем если бы они использовали общие библиотеки, но они не зависят от установленных библиотек времени выполнения. С точки зрения конечного пользователя, размер приложения часто не является ключевым фактором, особенно с учетом того, что современные устройства имеют большое количество памяти. Однако для разработчиков может быть важно минимизировать размер приложения, чтобы сократить время загрузки и уменьшить использование ресурсов. В итоге, вопрос "маленькие или большие приложения" зависит от контекста и требований конкретного приложения. В некоторых случаях использование общих библиотек может быть выгодно, в других - предпочтительнее иметь самодостаточное приложение с включенными в него всеми необходимыми библиотеками.
  9. Кто как решает проблему быстрого переноса приложения с VCL на FMX? Я лично написал самописный конвертер, который во первых переносит компоненты, во вторых устанавливает автомасштабирование для Android. Во вложение то, что получается на выходе. Может кому-то пригодится. Вот адрес конвертора https://github.com/stalker1917/DfmToFMX Возможно у кого есть способы делать перенос быстрее/лучше? Debug.zip
  10. Как узнать версию приложения под Android? Под Windows все просто, GetVersion(ParamStr(0)), а под Android не могу найти function TFormMain.GetVersion(filename:String): string; Var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; begin VerInfoSize := GetFileVersionInfoSize(PChar(filename), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(filename), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin Result := IntToStr(dwFileVersionMS shr 16); Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF); Result := Result + '.' + IntToStr(dwFileVersionLS shr 16); Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF); end; FreeMem(VerInfo, VerInfoSize); end;
  11. Здравствуйте, коллеги. Использую RAD Studio 10.3 и FMX Linux 1.65. Столкнулся с проблемой как говорится 'на ровном месте'. Приложение и Dll написаны с использованием FMX. Оставил только минимум (убрал не только функционал но и проверки). Нажатие на кнопку может происходить по несколько раз, проблем нет. А при закрытии приложения возникает AccessViolation. Настоящие приложение и библиотека более сложные, тут для примера оставил минимум. Первоначально в библиотеке было создание формы. Пробовал передавать в библиотеку Application и Screen. Ошибка при закрытии приложения та же. В итоге создал простые exe и dll, добавил минимум... Ошибка AV при закрытии приложения. В чем дело? Тот же код в VCL работает нормально. Главное приложение ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// unit formGetForm; interface uses System.SysUtils, System.Types, System.Classes, Winapi.Windows, FMX.Forms, FMX.Controls, FMX.Controls.Presentation, FMX.Types, FMX.StdCtrls; type P_Get = procedure; safecall; TfrmGetForm = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmGetForm: TfrmGetForm; implementation {$R *.fmx} procedure TfrmGetForm.Button1Click(Sender: TObject); var hDll:HMODULE; F_Get:P_Get; begin if(hDll=0) then begin hDll:=LoadLibrary('evTestForm.dll'); F_Get := P_Get(GetProcAddress(hDll,'Get_F')); F_Get; FreeLibrary(hDll); hDll:=0; end; end; end. Dll /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// library evTestForm; uses FMX.Dialogs; {$R *.res} procedure Get_F; safecall; begin ShowMessage('+++'); end; exports Get_F; begin end. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Если заменю FMX.Dialogs; на VCL.Dialogs; приложение закрывается без AV.
  12. каждый начинающий разработчик всегда пытается сделать из приложения трекер ОС прибьет его в любом случае https://habr.com/ru/companies/broadcast/articles/734236/ https://habr.com/ru/companies/tinkoff/articles/693094/ https://habr.com/ru/companies/cleverpumpkin/articles/681804/
  13. Tumaso

    Работа с изображениями

    Подскажите, какая библиотека поддерживает работу с изображениями при компиляции консольного приложения под Linux ? (использую Rio) Суть проблемы в том, что на стороне Linux приложение принимает файл в формате jpg, после этого его нужно определенным образом сжать и записать обработанное изображение локально в Linux. В Windows/macOS/Android/iOS из коробки есть TBitmapCodecManager и TBitmapSurface, а вот Linux они не поддерживают.
  14. Прошло почти 5 лет с момента начала этой темы, а проблема всё та же Сейчас использую Delphi 12 с 1 патчем, но работать с FMX.Graphics в консольном приложении на linux-машине без установленной графической оболочки так и не получается (компилируется, но при попытках использования работы с графикой валятся эксепшены и валится само приложение). При этом FMXLinux установлен, рекомендуемые либы gtk на линуксе также установлены. Использование внешнего приложения понятно, но задача - использовать исключительно внутренний код. Может есть у кого успешное решение аналогичной задачи?
  15. Здравствуйте. Опыт программирования на Delphi небольшой есть, в основном пишу небольшие утилиты для своего предприятия. Сейчас появилась потребность написать программу с красивым интерфейсом под Windows. По внешнему виду очень похожа на игровые лаунчеры: Steam, Battle.net, Epic Games. Статичные картинки, без БД, вся инфа берётся из ini-файла. Т.е. сверху имеем какую-то панель с пунктами меню, при нажатии на которые открываются вкладки, относящиеся к этим пунктам и на этой вкладке картинки для запуска стороннего приложения. Посоветуйте, какой элемент подойдет к этой задаче? TabControl?
  16. Пока всё на стадии планирования. Изначально будет 3 вкладки: Главная, Приложения, Сервис. Вкладки добавляются на стадии создания программы. Новых не будет. Кнопки нужны как в Стиме - Текст, при наведении на который, он подсвечивается. Содержимое вкладок. Опять же, как в Стиме - текст + картинки на которые можно нажать, с последующем запуском чего-либо. Содержимое вкладок - брать из ini-файла.
  17. Скорее всего, увеличение размера исходного кода произошло из-за следующих причин: 1. Разница в размере типов PChar и PAnsiChar. В Delphi 2009 и более поздних версиях PChar был заменен на PAnsiChar для совместимости с Unicode. Размер PAnsiChar в 2 раза больше чем PChar. 2. Автоматическая конвертация строковых литералов в Unicode. В новых версиях Delphi строковые литералы имеют тип UnicodeString вместо AnsiString. Это также увеличивает размер. 3. Добавление префиксов перед строковыми литералами. Для совместимости с Unicode Delphi автоматически добавляет префиксы перед строками, например 'U', 'L', etc. Это тоже увеличивает размер кода. 4. Выравнивание данных. Компилятор может добавлять выравнивание в памяти для некоторых типов, например для PAnsiChar. 5. Другие изменения в формате объектного кода. Например, более длинные имена классов/методов. Таким образом, переход на новые версии Delphi с Unicode поддержкой может привести к значительному увеличению размера исходного кода из-за несовместимости строк, упаковки данных и других факторов. Это нормальное явление, цена прогресса.
  18. Коллеги, добрый день. Как с анонимной/ не анонимной аутинтификацией сохранять файлы из приложения под платформой ANDROID на файловом сервере по протоколу SAMBA (Простая шара на виндах) ? Т.е. Где прописывать имя пользователя и пароль. На Windows - платформе отрабатывает нормально, на ANDROID - ошибка "I/O error 30" var f:textFile; // Описание переменной. begin AssignFile(f, Edt_FileQRY.Text); // Связь переменной с файлом. try Rewrite(f); // Создания нового файла. except on E: Exception do begin ShowMessage(E.ClassName+':' +E.Message+':' +E.QualifiedClassName+':'); end; end; Write(f, 'Path='+Edt_FileResultXML.Text+';'); Write(f, 'QRY='+Edt_Qry1C.Text+';'); CloseFile(f); end;
  19. Вообще до этого писал только стандартные приложения на С++ Builder. Сейчас пробую написать приложение под Android. Есть на нашем сайте база клиентов которая постоянно обновляется.В приложении клиент введя свой лицевой счет входит в БД и получает свои данные по задолженности. В обычном приложении с этим нету проблем коннектится через ADO ODBC, а вот под Андроид как лучше и правильнее сделать не знаю. Информацию и компоненты все дают разную. Может есть какие то примеры для образца или литература Заранее спасибо...
  20. Подскажите, каким образом приложение на macOS может переместить себя на передний план? Для Windows это делается следующим образом {$IFDEF MSWINDOWS} LHandle := FormToHWND(Self); BringWindowToTop(LHandle); SetForegroundWindow(LHandle); {$ENDIF} А как это сделать на маке, пока непонятно
  21. Как запустить собственное приложение из другого приложения? Нужно запустить своё приложения из другого, с передачей параметров запуска и в идеале с возвратом картинки как результата. Тематику android'a только постигаю в связи с чем вопросы. Запуск своего приложения можно реализовать через intent, но что должно быть указано в параметрах? Имя пакета\приложения берется из version info проекта, строка package, правильно? А допустим activity? Приложение камера, хочу запустить из мобильного приложения на базе 1С, вариантов запуска вижу два: объявить свое приложение камерой по умолчанию и через "android.media.action.IMAGE_CAPTURE" запустить, либо прямой вызов, вот тут и проблема.
  22. Всем доброго времени! Никак не получается решить проблему с компиляцией андроид приложения в Delphi 10.4. После установки VisualStudio с Xamarin в Delphi 10.4 при копмиляции начали сыпаться ошибки. Можект кто сталкивался? [PAClient Error] Error: E2312 Unable to execute '"C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\AndroidSDK-2525-21.0.40680.4203\build-tools\28.0.2\aapt.exe" package -f -M "D:\!Delphi\2022_10.4\Android\Debug\Project1\AndroidManifest.xml" -F "D:\!Delphi\2022_10.4\Android\Debug\Project1\bin\Project1-unsigned.apk" -I "C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\AndroidSDK-2525-21.0.40680.4203\platforms\android-26\android.jar" -S "D:\!Delphi\2022_10.4\Android\Debug\Project1\res" -A "D:\!Delphi\2022_10.4\Android\Debug\Project1\assets" "D:\!Delphi\2022_10.4\Android\Debug\Project1\library" "D:\!Delphi\2022_10.4\Android\Debug\Project1\classes"' (Error 1) [PAClient Error] Error: E2312 D:\!Delphi\2022_10.4\Android\Debug\Project1\AndroidManifest.xml:20: error: No resource identifier found for attribute 'requestLegacyExternalStorage' in package 'android'
  23. Как можно узнать размер видеопамяти под WIN? В инете находятся решения через реестр, с помощью DX и другие, но все сообщения старые. Может есть какой способ узнать средствами FMX?
  24. В RAD Studio (Delphi или C++Builder) шаблоны для разных дюймовок экрана обычно определяются с помощью FireMonkey, которая адаптирует пользовательский интерфейс для разных размеров и разрешений экранов. Однако, само приложение не определяет дюймовку экрана напрямую. Вместо этого оно опирается на логическое разрешение экрана (DPI). DPI (dots per inch) - это мера разрешения экрана, которая указывает, сколько точек (пикселей) содержится на одном дюйме экрана. Определение экрана в дюймах происходит с помощью соотношения физического размера экрана и DPI. В случае с вашими двумя телефонами, возможно, что DPI и физический размер экрана вносят различия, которые делают шаблон 7" подходящим для одного из них, даже если фактический размер экрана составляет 6,3". Если вы хотите определить размер экрана в дюймах в приложении RAD Studio, вы можете использовать следующий код: uses FMX.Platform; function GetScreenSizeInches: Single; var ScreenService: IFMXScreenService; ScreenWidth, ScreenHeight, ScreenDiagonalPixels: Single; begin Result := 0; if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then begin ScreenWidth := ScreenService.GetScreenSize.X / ScreenService.GetScreenScale; ScreenHeight := ScreenService.GetScreenSize.Y / ScreenService.GetScreenScale; ScreenDiagonalPixels := Hypot(ScreenWidth, ScreenHeight); Result := ScreenDiagonalPixels / ScreenService.GetScreenPPI; end; end; Этот код вычисляет размер экрана в дюймах, используя FireMonkey Platform Services. Важно отметить, что результат может немного отличаться от фактического размера экрана из-за различий в производстве экранов и возможных ошибок в определении DPI.
  25. Rad Studio 10.3.3 Android 64bit Делаю загрузку списка приложений, всё работает на телефоне, как только запускаю на целевом устройстве (андроид магнитола), то падает на этой строке Bitmap := TJBitmapDrawable.Wrap((Drawable as ILocalObject).GetObjectID).getBitmap; причем только на некоторых приложениях, например у меня идет календарь, всё нормально иконка добавляется, затем chrome падает на этой строке, затем email тоже нормально отрабатывает функция КАК ТАК ТО Уже все перепробывал, может кто знает другой метод получения иконки приложения, пользуюсь этим Drawable := LApplicationInfo.loadIcon(TAndroidHelper.Context.getPackageManager); if Assigned(Drawable) then Bitmap := TJBitmapDrawable.Wrap((Drawable as ILocalObject).GetObjectID).getBitmap; if Assigned(Bitmap) then begin JBitmapToSurface(Bitmap, Surface); iconapp.Assign(Surface); end;
×
×
  • Создать...