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

Лидеры

  1. krapotkin

    krapotkin

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


    • Баллы

      21

    • Постов

      2 179


  2. OnePeople

    OnePeople

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


    • Баллы

      16

    • Постов

      322


  3. Hevard

    Hevard

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


    • Баллы

      14

    • Постов

      78


  4. Martifan

    Martifan

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


    • Баллы

      13

    • Постов

      396


Популярный контент

Показан контент с высокой репутацией за 20.04.2023 во всех областях

  1. о... да мы меряемся? на 1000: 250-333fps как тебе такое Sulion 10000... fps3.zip
    3 балла
  2. Неужели так сложно не ссылки кидать, а приложить файлы? Среда разработки Delphi 10.3.pdf Delphi. Программирование для Windows, OS X, iOS и Android [2014].pdf Мобильная разработка в delphi.pdf Программирование_на_Delphi_для_школ.pdf
    3 балла
  3. Vladimir Gaivoronsky

    ShoesMaster

    Программа для администрирования обувного цеха. Переписана с VCL на FMX. Проверена и оттестирована на Windows (10) Linux (ubunti 21 - 23, openSuse) MacOS (10, 11 intel) на silicon негде проверять и нет SDK. Работает с Firebird версии 3 и 5. Поддерживает сканеры штрих кодов. Позволяет отследить весь процесс производства: от приемки заказа до отправки в магазин (продажей занимается другая программа) Написана с использованием TMS.FNC. В программе есть несколько тем оформления ( в основном темные, но есть и светлые). Пока еще происходит обкат в нескольких цехах, но скоро можно будет "пощупать" всем желающим. Также чуть позже будет версия на Android. Требует внешний сервер БД (для MacOS и Android). В макинтоше запустить и настроить firebird очень нетривиально, например сортировка по названиям без учета регистра не реализовано в 3 версии.
    2 балла
  4. Или просто сделайте borderstyle формы none. И сами сделайте рамки, кнопки закрыть, свернуть и т.д.
    2 балла
  5. Не по теме, но у оператора от таких цветов в конце дня нет желания кого-нибудь убить?
    2 балла
  6. В Delphi для усиления звука записи можно воспользоваться классом TAudioCaptureDevice и его свойством Volume. Это свойство позволяет установить уровень громкости для записи звука. Чем выше значение Volume, тем громче будет записанный звук. Вот пример, как можно использовать свойство Volume: uses FMX.AudioCapture, System.SysUtils; procedure RecordAudio(const AFileName: string; const AVolume: Single); var AudioCapture: TAudioCaptureDevice; begin AudioCapture := TAudioCaptureDevice.Create(nil); try AudioCapture.FileName := AFileName; AudioCapture.PauseLength := 0; AudioCapture.Volume := AVolume; // Установка уровня громкости AudioCapture.Active := True; Sleep(5000); // Запись в течение 5 секунд AudioCapture.Active := False; finally AudioCapture.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin // Задайте путь и имя файла, в который будет сохранен звук // Укажите значение громкости от 0 до 1 (например, 0.5 для половины максимальной громкости) RecordAudio('/sdcard/MyRecording.wav', 0.8); ShowMessage('Запись завершена.'); end; В этом примере в процедуре RecordAudio добавлен дополнительный параметр AVolume, который позволяет задать уровень громкости записи. Значение AVolume должно быть в диапазоне от 0 до 1, где 0 соответствует минимальной громкости, а 1 - максимальной. Вы можете экспериментировать с различными значениями AVolume, чтобы найти наиболее подходящий уровень усиления звука для вашего приложения и устройства.
    2 балла
  7. Когда вы говорите, что приложения на Андроиде весят 400КБ и используют библиотеки Java размером 2ГБ, вы, по-видимому, имеете в виду разницу между размером исполняемого файла приложения и размером всех библиотек, которые оно может использовать во время выполнения. Современные фреймворки, такие как Java для Android или .NET, часто используют большое количество библиотек, которые содержат общий код, используемый многими приложениями. Эти библиотеки обычно устанавливаются один раз и затем используются множеством приложений, поэтому их размер не влияет на размер каждого отдельного приложения. С другой стороны, приложения, созданные с использованием Delphi, обычно компилируются в нативный код и включают в себя все необходимые библиотеки и зависимости. Это может привести к тому, что исполняемые файлы будут больше, чем если бы они использовали общие библиотеки, но они не зависят от установленных библиотек времени выполнения. С точки зрения конечного пользователя, размер приложения часто не является ключевым фактором, особенно с учетом того, что современные устройства имеют большое количество памяти. Однако для разработчиков может быть важно минимизировать размер приложения, чтобы сократить время загрузки и уменьшить использование ресурсов. В итоге, вопрос "маленькие или большие приложения" зависит от контекста и требований конкретного приложения. В некоторых случаях использование общих библиотек может быть выгодно, в других - предпочтительнее иметь самодостаточное приложение с включенными в него всеми необходимыми библиотеками.
    2 балла
  8. что за детский сад на андроиде приложения весят 400К и при этом используют библиотеки Java на 2G это как - маленькие или большие приложения? то же с .NET Приложение с пустой формой тащит за собой весь функционал, который вы можете использовать, при этом не требуя установки дополнительных run-time библиотек, чем, собсн, всегда и хороша была Делфи mp3 файл весит 8-10 мб. а 5 сек видео "опы - 120. Не видел я чтобы кто-то плакал по этому поводу
    2 балла
  9. Hevard

    Вышла 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
    2 балла
  10. OnePeople

    миграция на 11.3

    Все проще Target - Android - Libraries -Revert System Files to Default
    2 балла
  11. А зачем постоянно bringtofront? одного раза не достаточно? там реально медленно... я полагаю нужна глубина сцены? многие ее делают слоями: дальний фон (горы), ближний фон (лес), сцена (персы), и воздух (падающий снег) кидаем 4 лейаута и на них распределяем спрайты
    1 балл
  12. krapotkin

    Потоки на андроид

    каждый начинающий разработчик всегда пытается сделать из приложения трекер ОС прибьет его в любом случае https://habr.com/ru/companies/broadcast/articles/734236/ https://habr.com/ru/companies/tinkoff/articles/693094/ https://habr.com/ru/companies/cleverpumpkin/articles/681804/
    1 балл
  13. Slym

    Клонирование объекта

    Result := MemStream.ReadComponent(nil);
    1 балл
  14. krapotkin

    Параллельный отладчик

    а вы понимаете в котором потоке выполняется Synchronize() ? попробуйте сначала получить ThreadId, а уже потом переходить в ГП и выводить это значение на экран
    1 балл
  15. Решено! Если кому интересно: При долгом нажатии на PUSH, активизируется виртуальная клавиатура! А у меня навешено событие на OnVirtualKeyboardShown() ...
    1 балл
  16. krapotkin

    Работа с web камерой

    скорее всего просто нет реализации. UI в Linux же обеспечен совершенно сторонними средствами так что вопрос скорее к пакету FMX Linux
    1 балл
  17. Проблема в том что ты убиваешь вкладку на которой кнопка выполняет свой клик... т.е. кнопка убивает себя из под себя... На до убийство сделегировать, например основному потоку через TThread.ForceQueue procedure TfrMain.TabClose(Sender: TObject); var activetab : Integer; begin activetab:=((Sender as TControl).Parent as TControl).Parent.Index; Thread.ForceQueue(nil, procedure begin TabControl1.Delete(activetab); end); end;
    1 балл
  18. krapotkin

    Размер приложения

    В RTL за годы тоже произошло 100500 изменений и добавлений. Функционал форм поменялся. Добавились стили в VCL. Все это отразилось на размере. Но я по-прежнему не вижу проблем. Вот питонные программы тянут почти 500м самого питона. Сишарп и другие - гигабайты дотнета. И ничего, никто не морщится даже.
    1 балл
  19. В общем рисовать как оказалось на неклиентской части формы вообще не проблема. Но я делаю форму Acrylic (Полупрозрачную с размытым фоном), и вот тут появляются проблемы. Если рисовать обычным способом, как на Canvas, то цвет получается тоже полупрозрачный. Путём экспериментов выяснил, что относительно нормально рисуется таким методом: uses Winapi.Windows; BitBlt( GetWindowDC( WindowHandleToPlatform( Form.Handle ).Wnd ), 0, 0, BitMap.Width, BitMap.Height, BitMap.Canvas.Handle, 0, 0, cmMergePaint ); В обычном случае последний аргумент должен быть cmSrcCopy, но с ним тоже получается полупрозрачная картинка. Помогает только cmMergePaint, НО! таким способом рисуется картинка с инвертированными цветами. То есть перед таким рисованием нужно её самому инвертировать. Следующий шаг – это рисовать png картинку, так как редко надо рисовать просто непрозрачную прямоугольную картинку. С 32-битным TBitMap у меня пока что-то не получилось, а вот TPngImage вполне хорошо рисуется. uses FMX.Platform.Win, Winapi.Windows, Vcl.Graphics, Vcl.Imaging.pngimage; function TForm1.WinHandle: HWND; begin Result := WindowHandleToPlatform( Self.Handle ).Wnd; end; procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var ACanvas: Vcl.Graphics.TCanvas; png: TPngImage; begin ACanvas := Vcl.Graphics.TCanvas.Create; ACanvas.Handle := GetWindowDC(Self.WinHandle); png := TPngImage.Create; png.LoadFromFile('C:\Image.png'); try PatBlt( ACanvas.Handle, 0, 0, png.Width, png.Height, cmBlackness ); png.Draw( ACanvas, Rect( 0, 0, png.Width, png.Height ) ); finally ReleaseDC(Self.WinHandle, ACanvas.Handle); ACanvas.Handle := 0; ACanvas.DisposeOf; png.DisposeOf; end; end; Но и тут есть подводные камни. Метод TPngImage.Draw, если заглянуть в его код становится понятно, что рисует он поверх того, что уже нарисовано и картина накладывается одна на другую быстро теряя прозрачность полупрозрачных пикселей. Поэтому перед её рисованием нужно стереть, что было до этого, с чем отлично справляется функция Winapi.Windows.PatBlt. Но таким образом появляется мерцание. А так же я ещё не нашёл, как отловить в FireMonkey отловить у формы событие WM_NCPAINT. Пока что навесил рисование на событие формы OnPaint, но оно не стабильно работает в данном случае и бывает, когда картинка стирается и не рисуется, пока не наступит надобность перерисовать клиентскую часть формы.
    1 балл
  20. Martifan

    splash_image_def rad 11.3

    К сожалению, вы не можете использовать прямые значения цвета в теге android:drawable. Этот атрибут предназначен для ссылок на ресурсы, а не для прямых значений цвета. Однако вы можете определить свой собственный цвет в ресурсах вашего приложения и ссылаться на него. Для этого выполните следующие шаги: 1. Откройте файл res/values/colors.xml в вашем проекте. Если этот файл не существует, создайте его. 2. В файле colors.xml определите свой собственный цвет, как показано ниже: <?xml version="1.0" encoding="utf-8"?> <resources> <color name="my_custom_color">#0066cc</color> </resources> Теперь вы можете использовать свой пользовательский цвет в файле splash_image_def: <item android:drawable="@color/my_custom_color" /> учтите, что названия ресурсов не должны начинаться с цифры и не должны содержать символов, кроме букв (a-z), цифр (0-9) и подчеркивания (_). Ваш код может выглядеть следующим образом: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/my_custom_color" /> <item> <bitmap android:gravity="center" android:src="@mipmap/ic_launcher" /> </item> </layer-list>
    1 балл
  21. Используй константу sLineBreak вместо #10#13 / #10 и всё будет правильно работать и виндах, и на андроиде
    1 балл
  22. У меня 11, и без него размер editа зависит от размера шрифта и ни какими свойствами не правиться
    1 балл
  23. procedure TForm1.Button1Click(Sender: TObject); var Form2:TForm2; h,w,l,t:integer; begin Form2:=TForm2.Create(nil); try h:=Form2.Height; w:=Form2.Width; l:=Form2.Left; t:=Form2.Top; Form2.Height:=1; Form2.Width:=1; Form2.Left:=l+ (w div 2); Form2.Top:=t+ (h div 2); TAnimator.AnimateInt(Form2,'Height',h,1); TAnimator.AnimateInt(Form2,'Width',w,1); TAnimator.AnimateInt(Form2,'Left',l,1); TAnimator.AnimateInt(Form2,'Top',t,1); Form2.ShowModal; finally Form2.Free; end; end; "В лоб" как-то так
    1 балл
  24. Dmitry_4501

    Удалить файлы отмеченные

    Проходишь циклом по всему списку и у каждого элемента проверяешь свойство IsChecked, если оно true, то тогда при помощи TFile.Delete удаляешь файл. Как-то так: procedure DeleteAllCheckedFiles(); begin if ListBox1.Count < 1 then Exit; // Если количество элементов меньше 1, то выходим из процедуры for var I: Integer := 0 to ListBox1.Count - 1 do if ListBox1.ListItems[I].IsChecked then // Проверяем свойство IsChecked (т.е отмечен ли элемент) TFile.Delete(ListBox1.ListItems[I].Text); // Удаляем файл (только в том случае, если в тексте элемента записан путь до файла, иначе придется переделать эту строчку под свои нужды) end; Для TFile.Delete необходимо подключить юнит System.IOUtils
    1 балл
  25. В контексте Delphi, вы можете использовать Indy компоненты для этого. TIdStack имеет метод ResolveHost() который может быть использован для разрешения имени хоста. var GStack: TIdStack; begin GStack := TIdStack.Create; try ShowMessage(GStack.ResolveHost('localhost', Id_IPv4).ToString); finally GStack.Free; end; end; Учтите, что разрешение имени хоста в IP-адрес не гарантирует, что хост будет доступен для подключения. Если имя хоста не может быть разрешено, будет вызвано исключение UnknownHostException. Также обратите внимание, что операции с сетью, такие как разрешение имени хоста, могут быть медленными, и рекомендуется выполнять их в фоновом потоке, чтобы не блокировать главный поток приложения. По поводу вашей проблемы с локальной сетью - возможно, имя хоста, которое вы пытаетесь разрешить, не зарегистрировано в локальном DNS. В этом случае, вы можете попробовать использовать полное доменное имя (FQDN) хоста, или использовать прямой IP-адрес, если он известен. Если метод разрешения имен не работает для локальной сети, вероятно, проблема связана с настройками DNS в вашей локальной сети. Имена хостов в локальной сети обычно разрешаются с помощью механизма DNS, поэтому если ваш DNS сервер или файлы hosts не содержат соответствующих записей для имени хоста, который вы пытаетесь разрешить, то метод разрешения имен вернет ошибку. Если вы контролируете настройки DNS в вашей локальной сети, вы можете добавить соответствующие записи для всех хостов, которые вы хотите разрешать. Кроме того, некоторые системы поддерживают механизмы обнаружения служб на локальной сети, такие как mDNS (Multicast DNS), который используется в протоколе Zeroconf/Bonjour. Если ваши устройства и приложения поддерживают mDNS, вы можете использовать имена хостов с суффиксом .local для разрешения имён в локальной сети. Пожалуйста, учтите, что разрешение имён хостов в IP-адреса - это сложная область, которая зависит от многих факторов, включая конфигурацию вашей сети, настройки DNS, поддержку протоколов обнаружения служб и т.д. Если вы столкнулись с проблемами, вам может потребоваться обратиться к системному администратору или к специалисту по сетям для получения помощи.
    1 балл
  26. Hevard

    Delphi 11 Transparent StatusBar

    Проверено на Александрии. Работает.
    1 балл
  27. Hevard

    Вышла Delphi 11 Community Edition

    Вы не любитель - профессионал мазохизма! Не забудьте, Win x64 должна быть...
    1 балл
  28. krapotkin

    Вышла Delphi 11 Community Edition

    ой, что-то далеко все зашло если что, RAD Studio - это и есть Delphi + Builder только Builder - мертвая штука даже по сравнению с самой Delphi, которая, "как известно", мертва))) Множество людей ставили этот продукт и то, что все работает из коробки, несомненно. Значит, где-то вы сворачивали не туда. Поэтому нужно было просто не валить все в кучу, а разбираться по одной проблеме. Разобрались с видимостью телефона - раз. Установили JDK - два. И далее по шагам. Потому что В двух абзацах описать продукт на десяток гигабайт мне лично не представляется возможным.
    1 балл
  29. Hevard

    Вышла Delphi 11 Community Edition

    Это не платформа встала криво, а Вы ее так установили. Просили "пошаговый букварь", я Вам отправил ссылку. Но, видимо, Вам и прочитать не досуг, и ко второй части перейти самостоятельно. Программирование на Delphi. Часть 2. Разработка Android-приложения - Школа программирования ProgTips Я не знаю, где Вы вычитали про какие-то последовательности установок Явы, СДК, и "что-то" ещё. Отмечаете при установке, всё что нужно и все устанавливается автоматически. А как "она устроена" ломать голову не надо, для этого есть специально обученные люди. Вроде как уже всё разжевали несколько раз...
    1 балл
  30. Hevard

    Диалоговое окно MessageBox на Android

    MessageDlg (C++) - RAD Studio Code Examples (embarcadero.com) void __fastcall TForm4::Button1Click(TObject *Sender) { UnicodeString errorText = "This is a sample message for an error"; MessageDlg(errorText,mtError,mbAbortRetryIgnore,0); }
    1 балл
  31. krapotkin

    Вышла Delphi 11 Community Edition

    СДК к видимости мобил не имеет отношения Делфи тоже Если ваш телефон видится через ADB - он будет и в Делфи Если нет - то и нет.
    1 балл
  32. Hevard

    Вышла Delphi 11 Community Edition

    Я обычно "сверху" ставлю UniversalAdbDriverSetup.zip
    1 балл
  33. OnePeople

    Компиляция приложения android

    Нигде в деплоймент не указана внешняя память ??????? Вообще то requestLegacyExternalStorage это параметр у вас в AndroidManifest.xml
    1 балл
  34. Hi, nowadays we have huge amount of cross-platform frameworks for mobile and enterprise development. Some of them are popular, some of them are well-know, all of them have their pros and cons. In current episode let's discuss architecture for Flutter, FireMonkey and Xamarin frameworks. Can we apply "native" application for Flutter and Xamarin mobile applications? What does it mean "cross-platform" at all? Check here:
    1 балл
  35. Линковка Kotlin (Котлин) библиотек в Delphi, как делаю: Хедеры линкуемых библиотек обычно громадны описанием всех типов... Я обычно делаю свой jar на java в нем линкую зависимости и наружу для дельфи оставляю один объект с простыми функциями. Хедер дельфи получается компактным и понятным: package com.MyCompany.evotor; public interface J2DCallback { void Log(String str); String Trans(String str); String GetValue(String name); void SetValue(String name, String value); Activity GetActivity(); Context GetContext(); } public class FiscalCoreConnection { final private Global Instance; public FiscalCoreConnection(J2DCallback aj2d) throws NullPointerException { Instance = new Global(aj2d); } public String SendJSON(String JSON){ try{ return Instance.SendJson(JSON); } catch (Exception e) { return FiscalCoreException.MakeJson(e); } } } type J2DCallbackClass = interface(IJavaClass) ['{856654D5-7939-44DF-ACD5-E2EF8C6D3AA4}'] end; [JavaSignature('com/MyCompany/evotor/J2DCallback')] J2DCallbackIntf = interface(IJavaInstance) ['{025B14E9-C041-4105-9E85-83CC127CC340}'] procedure Log(str:JString); cdecl; function Trans(str:JString):JString; cdecl; function GetValue(name:JString):JString; cdecl; procedure SetValue(name:JString; value:JString); cdecl; function GetActivity():JActivity; cdecl; function GetContext():JContext; cdecl; end; TJ2DCallbackImp = class(TJavaGenericImport<J2DCallbackClass, J2DCallbackIntf>) end; [JavaSignature('com/MyCompany/evotor/FiscalCoreConnection')] JFiscalCoreConnection = interface(JObject) ['{5797747D-D61D-4EF6-94F7-5E8994545CC2}'] function SendJSON(JSON:JString):JString; cdecl; end; JFiscalCoreConnectionClass = interface(JObjectClass) ['{81782882-DFCF-4FA9-BD37-02CCCF2409EA}'] function init(j2d : J2DCallbackIntf) : JFiscalCoreConnection; cdecl; end; TJFiscalCoreConnection = class(TJavaGenericImport<JFiscalCoreConnectionClass, JFiscalCoreConnection>) end; TJ2DCallback = class(TJavaLocal, J2DCallbackIntf) public procedure Log(str:JString); cdecl; function Trans(str:JString):JString; cdecl; function GetValue(name:JString):JString; cdecl; procedure SetValue(name:JString; value:JString); cdecl; function GetActivity():JActivity; cdecl; function GetContext():JContext; cdecl; end; Все зависимости в build.gradle: dependencies { implementation 'com.github.evotor:integration-library:v0.4.50' implementation 'com.google.zxing:core:3.4.0' } В Дереве External Libraries забираем jarы зависимостей ПКМ Show in Explorer. Копируем в папку своего проекта и даем осознанное имя. Там же забираем kotlin-stdlib ПКМ Show in Explorer. Копируем в папку своего проекта и даем осознанное имя. Но в kotlin-stdlib.jar есть "лишний" файл kotlin-stdlib-1.5.10.jar\META-INF\versions\9\module-info.class Открываем архиватором и удаляем файл или всю папку versions Почти все готово... Но котлин еще и посыпан сахаром и не хочет Дельфей dexится, хочет -min-sdk-version=26 Поможем Delphi: Ищем CodeGear.Common.Targets, у меня он в "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin"\ Ищем в нем --output, и перед ним вставим все про sdk. У меня получилось так: <DxCmd>PATH $(JDKPath)\bin;$(PATH); %26 set JAVA_HOME=$(JDKPath)%26 "$(JavaDxPath)" --dex --min-sdk-version=26 --output=</DxCmd> Далее цепляем все jar в проект Либа производителя, Либа своя обертка, и котлин Иии собираем! Если есть еще зависимости делаем аналогично: находим jar, выпиливаем META-INF\versions\9\module-info.class, линкуем в проект и собираем... Не все зависимости используются и нужны, поэтому добавляем поштучно до тех пор пока не заведется.
    1 балл
  36. Dev

    FMX Form

    dnekrasov Спасибо Вам Большое! работает, то что надо
    1 балл
  37. Dev

    FMX Form

    dnekrasov Гигантское Вам спасибо! в FormShow вставил этот код with Screen.WorkAreaRect do Form2.SetBounds(Left, Top, Right - Left, Bottom - Top); и о чудо! Это то что я так долго искал! dnekrasov Спасибо Вам еще раз!
    1 балл
  38. x11

    Проблема с Android Service

    Нет, у меня файл Androidapi.JNI.Toast.pas
    1 балл
  39. Замени idHTTP на NetHTTPClient в коде изменения незначительные и будет все нормально.
    1 балл
  40. ENERGY

    Размер компилируемого файла

    Menkos1 Это код для уменьшения размера exe под Windows. Добавляшь в Dpr файл (Project > View Source), выбираешь Release в правой панели, затем Project > Build. Размер еще уменьшиться. Правда потом нужно протестировать программу. На VCL с этими директивами у меня проблем никогда не было, - в смысле каких то багов в программе. На FMX не пробовал (я FMX пока только под моб. девайсы использую)
    1 балл
  41. ENERGY

    Размер компилируемого файла

    Системе не навредит, просто смысла в этом нет. Лучше упаковать архиватором, или инсталлятором. Упакованные exe распаковываются целиком в память, и остаются там до конца, плюс дольше запускаются. Не упакованные exe загружаются по сегментам, частично, только то, что нужно. http://api.farmanager.com/ru/articles/packers.html Я такой обычно код вставляю в dpr файл, для Windows проектов. uses Windows; {$IFDEF RELEASE} {$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} {$ENDIF} Конечно же нужно выбрать Release в Build Configurations в правой панели. Есть смысл упаковывать вирусы итп, чтобы быстрее скачать, чтобы зашифровать и сменить сигнатуру. Или кеиген или что-то подобное.
    1 балл
  42. Ссылка: http://blog.rzaripov.kz/2016/11/0-modernlistview.html Автор: Равиль Зарипов @ZuBy Описание: Знакомство с ModernListView
    1 балл
  43. Спасибо. взял ключ из "C:\Users\{username}\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore" и все заработало. Теперь со временем нужно сделать файл KeyStore.
    1 балл
  44. У меня также. Компилю Android проект на разных компьютерах. При переходе с компьютера на компьютер приходится сначала удалить приложение с устройства. Думаю причина в том что тестовая подпись (C:\Users\{username}\AppData\Roaming\Embarcadero\BDS\17.0\debug.keystore) от эмбаркадеро разная в разных установках.
    1 балл
  45. Посмотрел на код и решил еще на пару строк сократить, совместил проверку на "пусто" и минус в одном условии procedure TFormMain.Edit1ChangeTracking(Sender: TObject); Var FEdit : TEdit; FFloat : Single; begin If Not (Sender is TEdit) Then // Защитимся от не выспавшегося самого себя Exit; FEdit:=(Sender as TEdit); // Для удобства... FEdit.Text:=FEdit.Text.Replace(' ',''); // Убираем случайные пробелы if (FEdit.Text.IsEmpty) or (FEdit.Text.Equals('-')) then // Если пусто (ничего не введено или все удалено) или только минус, ничего не делаем Exit; FEdit.Text:=FEdit.Text.Replace('.',','); // Заменяйм точку запятой if FEdit.Text.Equals(',') then // Если введен разделитель, добавляем перед ним ноль для красоты (не обязательно) begin FEdit.Text:='0,'; FEdit.CaretPosition:=FEdit.CaretPosition+1; // без этого курсор останется между нулём и запятой end; if TryStrToFloat(FEdit.Text,FFloat) Then // Пробуем преобразовать в число FEdit.TagString:=FEdit.Text // Если удалось, сохраняем в временном хранилище Else FEdit.Text:=FEdit.TagString; // Если не удалось, восстанавливаем из временного хранилища end;
    1 балл
  46. Например, вот так: {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"
    1 балл
  47. не знаю актуально ещё или нет, но возможно так: http://stringgrid-delphi.ru/delete-row.php Удаление одной строки: процедура: procedure TForm1.DeleteRow(ARow: Integer); var i, j: Integer; begin with StringGrid1 do begin for i:=ARow+1 to RowCount-1 do for j:=0 to ColumnCount-1 do Cells[j, i-1]:=Cells[j, i]; RowCount:=RowCount-1; end; end; вызов процедуры: DeleteRow(номер строки); Удаление всех строк: StringGrid1.RowCount:=0;
    1 балл
  48. Добрый день О том, как получить доступ к любому свойству через StylesData (в том числе к свойству text) частично описано тут: Как получить значение свойства объекта стиля, используя StylesData? Как получить объект стиля? Назначение обработчиков событий для элементов стиля через StylesData Допустим, что TSpinBox в стиле назван (StyleName), как 'spinbox', тогда Присваивание обработчика для SpinBox: ListBoxItem1.StylesData['spinbox.OnChange'] := TValue.From<TNotifyEvent>(SBCountChange); Доступ к свойству Text у TSpinBox: ListBoxItem1.StylesData['spinbox.Text'].ToString; Таким способом можно получить доступ к любому свойству и событию любого элемента стиля.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...