Таблица лидеров


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

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

  1. 5 баллов
    dnekrasov

    FMX Form

    Не за что. Маленькое уточнение - это хорошо работает только если один монитор. Вообще правильнее эмулировать максимизацию окна следующим образом: SetBounds(Screen.DisplayFromRect(Bounds).WorkAreaRect);
  2. 4 балла
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  3. 4 балла
    ophion

    Записать картинку с камеры в BLOB

    Вот пример того, как писать и читать BLOB procedure SaveToFireDACBlob; var MemStream: TMemoryStream; begin FireDAC.Connected := True; MemStream := TMemoryStream.Create; try Image1.Bitmap.SaveToStream(MemStream); MemStream.Seek(0,0); FDQueryInsert.ParamByName('Media').LoadFromStream(MemStream,ftBlob); FDQueryInsert.ParamByName('MType').AsString := '0'; FDQueryInsert.ExecSQL(); except on e: Exception do begin ShowMessage(e.Message); end; end; MemStream.Free; FireDAC.Connected := False; end; procedure LoadFromFireDACBlob; var BlobStream: TStream; begin FireDAC.Connected := True; try FDQuerySelect.Open; FDQuerySelect.First; while(not FDQuerySelect.EOF)do begin // access a stream from a blob like this BlobStream := FDQuerySelect.CreateBlobStream(FDQuerySelect.FieldByName('Media'),TBlobStreamMode.bmRead); // access a string from a field like this if (FDQuerySelect.FieldByName('MType').AsString='0') then begin // load your blob stream data into a control ImageViewer.Bitmap.LoadFromStream(BlobStream); end; BlobStream.Free; FDQuerySelect.Next; end; except on e: Exception do begin //ShowMessage(e.Message); end; end; FireDAC.Connected := False; end; {источник http://www.fmxexpress.com/read-and-write-a-blob-field-using-firedac-with-firemonkey-on-android-and-ios/} Касательно работы с изменением качества/размера, считаю что необходимо использовать TBitmapSurface (unit FMX.Surfaces)
  4. 3 балла
    Автор: Максим Сысоев Репозиторий: BitBucket Связь со мной: Комментарии в этой теме, ЛС, Телеграмм Telega π - Библиотека для работы с Telegram Bot API в Delphi Если вы решили писать своих ботов для телеграмма - тогда предлагаю вам взаимопомощь: я вам полуготовое решение, а с вас предложения для улучшения, багрепорты. Помощь проекту Вы можете помочь проету: Созданием баг-репортов и запросов новых возможностей Рекламой проекта Жертвоприношения в виде денег Зависимости RAD Studio CE Примеры Получение Username бота program Project5; {$APPTYPE CONSOLE} {$R *.res} uses TelegaPi.Bot, TelegaPi.Types, System.SysUtils; var Telegram: TTelegramBot; begin Telegram := TTelegramBot.Create({$I TokenTelegramBot.inc}); try { TODO -oUser -cConsole Main : Insert code here } Writeln(Telegram.getMe.Username); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; Telegram.Free; end. Пример автоответчика Напишите ему "привет" Код: https://gist.github.com/ms301/c7281f443f481115b7643116535e697d
  5. 3 балла
    Brovin Yaroslav

    Встреча в Питере 11-го октября 2018

    Я буду, как обычно. На встрече дам попробовать демки, сделанные с библиотекой FGX Native.
  6. 2 балла
    Vitaldj

    Встреча в Питере 11-го октября 2018

    Уважаемые коллеги, 11-го октября 2018 года, в славном городе Санкт-Петербурге состоится встреча ценителей FMX и нашего любимого форума fire-monkey.ru. Встреча будет ближе к 19-00, место, предварительно «чердак» в районе Авроры. Кто точно знает, что появится, отпишитесь!
  7. 2 балла
    Barbanel

    переходпо ссылке с push уведомления

    Правильно ли я понимаю: вы пишете некое приложение, которое показывает пользователю веб-ссылку в уведомлении? Имхо: нельзя переходить на внешний ресурс, тапнув на ссылку в уведомлении. Всегда сначала нужно показать вашу программу, при этом в зависимости от логики программы - показать что именно пришло (чтобы пользователь мог понять полезное ли для него это сообщение), и только потом давать возможность переходить по внешним ссылкам.
  8. 2 балла
    kami

    сборка проекта с библиотеками

    Вы используете передачу небезопасных параметров между exe и dll? Зря.
  9. 2 балла
    dnekrasov

    сборка проекта с библиотеками

    В свойствах проекта укажите "Link with runtime packages = False"
  10. 2 балла
    WebPuper

    Механизм работы с APK Extension file (OBB)

    В FMX, насколько я смог удостовериться, нет нормальных директив чтобы работать с OBB. Видимо посчитали это излишним, т.к. по сути речь идет о работе с обычной файловой системой. После распаковки приложения в каталоге внешнего хранилища (карты или, если нет, внутренней памяти) Android/obb/<application ID>/ появится файл дополнений с расширением *.obb Это обычный архив ZIP и его можно распаковать, например, в GetDocumentsPath средствами TZipFile Проблема в том, что в FMX нет процедуры возвращающей путь к файлу obb. Пришлось написать костыль: UnicodeString GetObbFile() { UnicodeString str = StringReplace(System::Ioutils::TPath::GetPublicPath(), "/data/", "/obb/", TReplaceFlags()); str = StringReplace(str, "/files", "/", TReplaceFlags()); TSearchRec sr; FindFirst(str + "*.obb", faAnyFile, sr ); return str + sr.Name; } Теперь у вашего приложения есть путь к единственному obb
  11. 2 балла
    ENERGY

    Рабочее место для IOS разработки

    Имхо тогда уже лучше купить обычный ноут под Win с Intel и на нем запустить виртуалку. Это более универсальное решение. Мне решение с виртуальной машиной больше нравится, т.к в VMWare удобно создавать образы всей системы. Особенно это актуально перед обновление системы или Xcode. Не работает после обновления? Пару кликов и ты вернулся к рабочей версии. Ну или MacMini, тоже бюджетное решение.
  12. 1 балл
    На последних версиях андроида вы должны спрашивать разрешение у пользователя перед операцией требующей прав.
  13. 1 балл
    fidel42rus

    переходпо ссылке с push уведомления

    Всем привет) Ситуация следующая, написал сервер на php, написал программу в delphi 10.2 tokyo, пуши выводит как надо, но не могу понять как сделать чтобы при нажатии на push уведомление осуществлялся переход по заданному URL, а не в само приложение. перелистал множество сайтов но толком ничего не нашел. Delphi не совсем моя среда, язык легкий, но обьемный не смог сам разобраться. Прошу вашей помощи. Если кому-то помогу скину скрипты php сервера, количество клиентов не ограничено.
  14. 1 балл
    Равиль Зарипов (ZuBy)

    Освобождение памяти TListViewItem

    В Берлине и ниже метод Clear не чистил за собой и правильно будет чистить циклом как в примере выше Это справедливо только когда данные в ЛВ перезаполняются
  15. 1 балл
    Евгений Корепов

    скачать файл

    Вот как то так: uses ......... Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText; ....... procedure TForm1.FormCreate(Sender: TObject); Var DownloadManager : JObject; begin DownloadManager:=SharedActivityContext.getSystemService(TJContext.JavaClass.DOWNLOAD_SERVICE); if DownloadManager <> nil then begin Используем... end; end; Вот как именно использовать - тут можно голову сломать, может кто и подскажет На java это делается вот так примерно: DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); Uri uri = Uri.parse("http://www.example.com/myfile.mp3"); DownloadManager.Request request = new DownloadManager.Request(uri); request.setTitle("My File"); request.setDescription("Downloading"); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationUri(Uri.parse("file://" + folderName + "/myfile.mp3")); downloadmanager.enqueue(request); Подозреваю что вам придется самостоятельно описать класс (интерфейс) DownloadService.
  16. 1 балл
    ENERGY

    Освобождение памяти TListViewItem

    Это неверно. Все TListViewItem корректно уничтожаются и освобождаются в Clear. Чтобы это проверить, достаточно поставить точку останова на TListItem.Destroy; А предложенный вами код это очень не оптимизированное и медленное решение, с перерассчетом всех индексов при каждом удалении айтема.
  17. 1 балл
    ENERGY

    Открыть для чтения pdf файл. Android

    {$IFDEF ANDROID} Uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net; {$ENDIF} procedure btnPdfClick(Sender: TObject); var lName : String; {$IFDEF ANDROID} Intent : JIntent; URI : Jnet_Uri; {$ENDIF} begin lName := TPath.GetSharedDownloadsPath + PathDelim + 'test.pdf'; {$IFDEF ANDROID} URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + lName)); intent := TJIntent.Create; intent.setAction(TJIntent.JavaClass.ACTION_VIEW); intent.setDataAndType(URI,StringToJString('application/pdf')); SharedActivity.startActivity(intent); {$ENDIF} end;
  18. 1 балл
    dnekrasov

    Изменение размеров с помощью DrawBitmap

    Прежде чем рисовать на канве просто задайте размер результирующей битмапки. В Вашем случае: ... image2.Bitmap.SetSize(300, 300); image2.Bitmap.Canvas.BeginScene; ...
  19. 1 балл
    ulansaran

    Ошибка QuotedStr

    В общем ошибка остается! С типами полей у меня всё нормально, было работоспособное приложение до перехода на Rad Studio 10.2 Tokyo . Ничего нигде не менял! Решил вместо фильтра с QuotedStr использовать SQL-запросы для поиска человека по фамилии: s:=Edit5.Text; FDQuery.SQL.Text:='select * from CHILD where CHILDFAM=(:CHILDFAM)'; FDQuery.ParamByName('CHILDFAM').AsString:=s; FDQuery.Open; Так всё работает! Всем спасибо за поддержку!
  20. 1 балл
    Barbanel

    Ошибка QuotedStr

    Ошибка "Type mismatch" означает несоответствие типов. Либо фильтр неправильно настроен, либо поле имеет другой тип. Если поле всетаки строковое - посмотрите тип поля (String/WideString) и кодировку, если указана. Посмотрите также, что возвращает источник данных (query или что у вас источником является) по по этому полю. PS еще можно писать так: Child.Filter := 'CHILDFAM=' + s.QuotedString;
  21. 1 балл
    ENERGY

    Плавающая кнопка

    В этом варианте при нажатии будет появляться сервый прямоугольник. Не идет. Вариант Равиля медленный, кнопка будет часто перерисовыватся, круг + картинка + тень. Поэтому лучший вариант это сделать кнопку в виде обычной картинки. TImage или TGlyph. Я делал на TGlyph чтобы все картинки были в ImageList. Подготовьте 3 пнг картинки с полностью готовой кнопкой, с тремя масштабами. Scale 1 = 56x56 Scale 2 = 112x112 Scale 3 = 168x168 Поместите его в TImageList (обычно в глобальном Datamodule), добавьте свое изображение в список и добавьте 3 коэффициента масштабирования в исходное изображение (дважды щелкните элемент в списке «Sources of Image» в ImageList, там выберите "Add new Item"), в итоге одно изображение в TImageList будет иметь 3 scale. Чтобы понять какой scale загрузился при тесте, можно поставить для теста картинки разного цвета. Поместите TGlyph на форму и выберите свой список изображений. Установите событие OnClick в Form OnCreate (поскольку Glyph1 не имеет OnClick по умолчанию в Object Inspector): Glyph1.OnClick := Click; Glyph1.HitTest := true; В OnClick добавьте этот код для анимации: procedure TForm2.TestClick(Sender: TObject); begin TAnimator.AnimateFloatWait(Glyph1, 'Opacity', 0.5, 0.2); TAnimator.AnimateFloat(Glyph1, 'Opacity', 1, 0.2); end; Или вы можете использовать TImage - это еще проще и меньше кода, чем выше.
  22. 1 балл
    Первый вариант нового компонента TfgCollectionView имеющий потрясающие возможности по гибкому созданию любого списка. Гибкий, как FMX TListBox и гораздо быстрее TListView. Создавайте любое количество стилей отображения элементов списка из любых компонентов FGX. А затем просто связывайте, какой стиль должен использовать тот или иной элемент списка. На приведенном ниже скриншоте и видео, вы можете наблюдать прокрутку списка из 100 элементов, написанного без единой строчки кода. Но это еще не все, полностью каркасная архитектура компонента позволяет создавать различные варианты размещения элементов. Начиная от отображения в строку, в столбец, по сетке и заканчивая своим кастомным размещением элементов. Поразительная скорость работы достигается за счет отображения только видимых элементов. Screenrecorder-2018-03-26-01-52-41-383.mp4
  23. 1 балл
    kami

    Передача параметра программе

    Есть волшебная аббревиатура - IPC. Inter process communication. Считайте, что у вас два разных приложения.Абсолютно разных. Которым нужно взаимодействовать друг с другом. Одно - источник, второе - приемник. Среди вариантов для Windows: 1. Через сообщения, например - WM_COPYDATA (емнип, так обзывается). Нужно знать хендл окна, которому отправится сообщение (не уверен, что с WM_COPYDATA пройдет фокус с функцией BroadcastMessage) и нужно чтобы целевое приложение было на том же уровне изоляции (UIPI, кажется). Т.е. если приемник запущен от админа, а источник - как обычное приложение - этим способом их не состыковать. 2. Через NamedPipes. Способ хорош для организации постоянного обмена между двумя любыми приложениями на одном компьютере (не только, но чаще всего - на одном). Для однократной передачи информации держать слушающий пайп в отдельном потоке, наверное, избыточно. Хотя я бы взял именно этот способ. 3. TCP/IP и надстройки над ним: http, ftp и другое tp. Чаще всего используются для организации обмена между приложениями на разных компьютерах. Для локального - избыточно, да и проблемы с файрволлом могут быть. 4. Через файловые потоки или данные в файле подкачки. Одно приложение пишет, второе периодически смотрит "а не появилось ли для меня чего нового". Как-то делал даже двусторонний обмен данными по этому механизму. Это навскидку. Выбирайте, потом можно говорить дальше.
  24. 1 балл
    Равиль Зарипов (ZuBy)

    StatusBar Color

    попробуйте последнюю версию
  25. 1 балл
    Добрый день, Смотрите ответ в теме только на примере TProgressBar, это руководство подходит для всех аналогичных ситуаций: [Android] Не получается увеличить высоту TProgressBar
Эта таблица лидеров рассчитана в Москва/GMT+03:00