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

AngryOwl

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

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

  • Посещение

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

    45

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

  1. Like
    AngryOwl получил реакцию от Maximus в Как задать windowborderstyle   
    Ответы есть, конечно.
    Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
     
    По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
     
    Что касается перемещения формы за любой элемент:
    - во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
    - во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
    - и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
     
    все
  2. Like
    AngryOwl получил реакцию от sviat9440 в Как задать windowborderstyle   
    Ответы есть, конечно.
    Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
     
    По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
     
    Что касается перемещения формы за любой элемент:
    - во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
    - во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
    - и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
     
    все
  3. Like
    AngryOwl получил реакцию от AndreyS в Как задать windowborderstyle   
    Ответы есть, конечно.
    Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
     
    По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
     
    Что касается перемещения формы за любой элемент:
    - во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
    - во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
    - и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
     
    все
  4. Like
    AngryOwl получил реакцию от sviat9440 в Можно ли задать минимальные размеры для формы?   
    Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
    Причем проблема с "большой буквы".
    Как это сделать в VCL - все в курсе.
    Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
    Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
    Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
     
    Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
    Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
     
    P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
  5. Like
    AngryOwl получил реакцию от Kitty в Можно ли задать минимальные размеры для формы?   
    Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
    Причем проблема с "большой буквы".
    Как это сделать в VCL - все в курсе.
    Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
    Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
    Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
     
    Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
    Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
     
    P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
  6. Like
    AngryOwl получил реакцию от Martifan в Передача изображения в потоке   
    function SaveBitmapToStream(const AStream: TStream; const Bitmap: TBitmap; const Extension: string;   SaveParams: PBitmapCodecSaveParams = nil): Boolean; var   surf: TBitmapSurface; begin   Result := False;   surf:= TBitmapSurface.Create;   surf.Assign(Bitmap);   try     Result := TBitmapCodecManager.SaveToStream(AStream, surf, Extension, SaveParams);   finally     surf.Free;   end; end; ну и вызывать типа так:
    var   tmpBitmap  : FMX.Graphics.TBitmap;   SaveParams : FMX.Graphics.TBitmapCodecSaveParams;   Stream     : TMemoryStream; // ..... tmpBitmap := TBitmap.Create; // .............. Stream := TMemoryStream.Create; try SaveParams.Quality := 85; SaveBitmapToStream(Stream, tmpBitmap, '.jpg', @SaveParams); Stream.Position := 0; // .................... // .................... finally FreeAndNil(Stream); end;
  7. Like
    AngryOwl отреагировална Brovin Yaroslav в Исключение прямоугольной области при выборе случайного значения на двумерной сетке   
    Еще есть вариант на одномерном примере. 
     
    Идея ввести параметр, который будет принимать случайное значение от 0 до суммы двух отрезков. Потом проверять, Если параметр попадает в первый отрезок по длине, то добавляем начальную координату отрезка. Если во второй, то добавляем начальную координату второй части. 
     

  8. Like
    AngryOwl отреагировална Вячеслав в Исключение прямоугольной области при выборе случайного значения на двумерной сетке   
    Ну ладно, тогда вот вам кусочный рандом на примере одномерной задачи. 
    Область значений Х состоит из двух областей (I) и (III). При этом Х может принимать значение либо из первой области, либо из второй [строчка (1)]
    Определяем переменную FLAG, которая может быть только или нулем, или единицей [строчка (2)].
    Теперь через нее нетрудно выразить уравнение для Х [строчка (3)]
     
    Сейчас под рукой нет Delphi, поэтому проверить не могу. Но идея, надеюсь, понятна.

  9. Like
    AngryOwl получил реакцию от Brovin Yaroslav в Передача изображения в потоке   
    Не за что
    в uses, соответственно, надо FMX.Graphics и FMX.Surfaces
  10. Like
    AngryOwl получил реакцию от Kitty в Передача изображения в потоке   
    function SaveBitmapToStream(const AStream: TStream; const Bitmap: TBitmap; const Extension: string;   SaveParams: PBitmapCodecSaveParams = nil): Boolean; var   surf: TBitmapSurface; begin   Result := False;   surf:= TBitmapSurface.Create;   surf.Assign(Bitmap);   try     Result := TBitmapCodecManager.SaveToStream(AStream, surf, Extension, SaveParams);   finally     surf.Free;   end; end; ну и вызывать типа так:
    var   tmpBitmap  : FMX.Graphics.TBitmap;   SaveParams : FMX.Graphics.TBitmapCodecSaveParams;   Stream     : TMemoryStream; // ..... tmpBitmap := TBitmap.Create; // .............. Stream := TMemoryStream.Create; try SaveParams.Quality := 85; SaveBitmapToStream(Stream, tmpBitmap, '.jpg', @SaveParams); Stream.Position := 0; // .................... // .................... finally FreeAndNil(Stream); end;
  11. Like
    AngryOwl отреагировална xenon54 в Работа сервиса при закрытом приложении   
    Ну тут все просто. Remote Push Notification.
    Вот, хороший видос на эту тему для ведра тынц
    И сервис никакой не нужен.
    Для ведра это называется  "Google Cloud Messaging"
  12. Like
    AngryOwl получил реакцию от Sergey Babichev в ключ SHA1 - как получить?   
    Библиотека Indy, модуль IdHashSHA, класс TIdHashSHA1.
    Надеюсь это что Вам нужно.
  13. Like
    AngryOwl отреагировална Belov.V. в [TGrid] Как получить значение ячейки при использовании LiveBinding?   
    С того момента, как "стал рассматривать" TGrid непосредственно как компонент отображения существующих данных, работать с ним стало проще и приятнее. В похожих ситуация работаю непосредственно с данными (выборкой). То, что FDQuery и Grid связаны через LiveBinding, значения не имеет:
    FDQuery1.RecNo := Grid1.Selected+1; ... := FDQuery1.FieldByName['id'].AsInteger; //или по порядковому номеру: ... := FDQuery1.Fields.Fields[0].AsInteger; //или тип Variant: ... := FDQuery1['id'] //и т.д. В зависимости от необходимого способа реакции код можно подвесить на onClick, onMouseMove и т.д. по желанию.
  14. Like
    AngryOwl получил реакцию от Kitty в ключ SHA1 - как получить?   
    Библиотека Indy, модуль IdHashSHA, класс TIdHashSHA1.
    Надеюсь это что Вам нужно.
  15. Like
    AngryOwl получил реакцию от Alex7wrt в [Android] Прозрачность TMemo Delphi XE8   
    Отредактировать стиль. Например, добавив новый для "прозрачного" TMemo.
    Что-то типа такого:
      object TLayout     StyleName = 'memofreestyle'     EnableDragHighlight = False     Position.X = 280.000000000000000000     Position.Y = 249.000000000000000000     Size.Width = 290.000000000000000000     Size.Height = 175.000000000000000000     Size.PlatformDefault = False     Visible = False     TabOrder = 97     object TActiveStyleObject       StyleName = 'background'       Align = Contents       EnableDragHighlight = False       Size.Width = 290.000000000000000000       Size.Height = 175.000000000000000000       Size.PlatformDefault = False       ActiveTrigger = Focused       ActiveLink = <         item           CapInsets.Left = 7.000000000000000000           CapInsets.Top = 7.000000000000000000           CapInsets.Right = 7.000000000000000000           CapInsets.Bottom = 7.000000000000000000           SourceRect.Left = 238.000000000000000000           SourceRect.Top = 86.000000000000000000           SourceRect.Right = 318.000000000000000000           SourceRect.Bottom = 113.000000000000000000         end>       SourceLink = <>       object TRectangle         StyleName = 'Rectangle1'         Align = Contents         EnableDragHighlight = False         Fill.Color = x32000000         HitTest = False         Sides = []         Size.Width = 290.000000000000000000         Size.Height = 175.000000000000000000         Size.PlatformDefault = False         Stroke.Color = xC8282828         Visible = False       end       object TLayout         StyleName = 'content'         Align = Client         EnableDragHighlight = False         Size.Width = 290.000000000000000000         Size.Height = 175.000000000000000000         Size.PlatformDefault = False       end     end     object TBrushObject       StyleName = 'foreground'     end     object TBrushObject       StyleName = 'selection'       Brush.Color = x7F67A8D3     end     object TFontObject       StyleName = 'font'     end   end
  16. Like
    AngryOwl получил реакцию от Kitty в [Android] Прозрачность TMemo Delphi XE8   
    Отредактировать стиль. Например, добавив новый для "прозрачного" TMemo.
    Что-то типа такого:
      object TLayout     StyleName = 'memofreestyle'     EnableDragHighlight = False     Position.X = 280.000000000000000000     Position.Y = 249.000000000000000000     Size.Width = 290.000000000000000000     Size.Height = 175.000000000000000000     Size.PlatformDefault = False     Visible = False     TabOrder = 97     object TActiveStyleObject       StyleName = 'background'       Align = Contents       EnableDragHighlight = False       Size.Width = 290.000000000000000000       Size.Height = 175.000000000000000000       Size.PlatformDefault = False       ActiveTrigger = Focused       ActiveLink = <         item           CapInsets.Left = 7.000000000000000000           CapInsets.Top = 7.000000000000000000           CapInsets.Right = 7.000000000000000000           CapInsets.Bottom = 7.000000000000000000           SourceRect.Left = 238.000000000000000000           SourceRect.Top = 86.000000000000000000           SourceRect.Right = 318.000000000000000000           SourceRect.Bottom = 113.000000000000000000         end>       SourceLink = <>       object TRectangle         StyleName = 'Rectangle1'         Align = Contents         EnableDragHighlight = False         Fill.Color = x32000000         HitTest = False         Sides = []         Size.Width = 290.000000000000000000         Size.Height = 175.000000000000000000         Size.PlatformDefault = False         Stroke.Color = xC8282828         Visible = False       end       object TLayout         StyleName = 'content'         Align = Client         EnableDragHighlight = False         Size.Width = 290.000000000000000000         Size.Height = 175.000000000000000000         Size.PlatformDefault = False       end     end     object TBrushObject       StyleName = 'foreground'     end     object TBrushObject       StyleName = 'selection'       Brush.Color = x7F67A8D3     end     object TFontObject       StyleName = 'font'     end   end
  17. Like
    AngryOwl отреагировална Kitty в FixInsight vs FMX   
    Человек делает анализ библиотек поставляемых с Delphi.
    Ссылка на статью: http://roman.yankovsky.me/?p=1774
  18. Like
    AngryOwl отреагировална Brovin Yaroslav в [XE8] [FGX] Описание версии 0.6.0.46   
    Ссылка на скачивание (Только для RAD Studio XE8):fgx_0.6.0.46.zip
    Инструкция по установке: "Инструкция по установке набора компонентов FGX"
    Описание
    Эта версия включает в себя следующий набор компонентов:
    TfgFlipView (NEW) - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation (NEW) - анимация свойств типа TPosistion TfgPosition3DAnimation (NEW) - анимация свойств типа TPosition3D  TfgBitmapLinkAnimation (NEW) - анимация свойств типа TBitmapLink  TfgProgressDialog - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet - Аналог контекстного меню для мобильных платформ. TfgColorsPanel - Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel (UPDATED) - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents (UPDATED)- компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard (UPDATED) - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Новое
    TfgFlipView: Добавлен новый компонент для отображения слайдера изображений Поддерживает два принципиально разных способа смены изображений: сдвигом слайдов и смена при помощи широкого набора эффектов Тонкая настройка способов переключения слайдов TfgApplicationEvents: Добавлен перехват дополнительных событий приложения: Оповещение об изменении размера формы (OnFormSizeChanged) Оповещение о необходимости сохранить данные UI формы при изменении состояния приложения. Особенно актуально для мобильных платформ (OnSaveState) Изменение состояния приложения (OnStateChanged) Факт изменения стиля формы (OnStyleChanged) Все формы приложения на старте созданы (OnFormsCreated) Форма приложения разрушается (OnFormReleased) Изменение главной формы (OnMainFormChanged) Изменение заголовка главной формы (OnMainFormCaptionChanged) TfgPositionAnimation: Добавлен новый аниматор, позволяющий легко анимировать позицию 2D контрола Добавлен пример AnimationsDemo.dpr TfgPosition3DAnimation: Добавлен новый аниматор, позволяющий легко анимировать позицию 3D контрола Добавлен пример AnimationsDemo.dpr TfgBitmapLinkAnimation: Добавлен новый аниматор, позволяющий легко анимировать в стилях TBitmapLink. При помощи этого аниматоро легко сделать движущийся фон на базе одной растровой картинки. Добавлен пример AnimationsDemo.dpr TfgLinkedLabel Исправлена ошибка открытия ссылки в стандартном браузере на Андроиде TfgVirtualKeyboard  Добавлено новое свойство Visible - видна виртуальная клавиатура или нет Общие улучшения Добавлен шаблонный класс (FGX.Animation.TfgCustomPropertyAnimation) для быстрого и удобного создания своих аниматоров. Общая чистка кода.
  19. Like
    AngryOwl отреагировална Martifan в XE 8   
    вот обещанная видео извините за качество просто все спят и свет не смог включить
     
    https://youtu.be/YhOy7sN2TOs
     
    в общем он работает я на него более сложную программу запускал и все ок 
  20. Like
    AngryOwl отреагировална Кривяков Виталий в Генерация рандомных букв. Android. Delphi XE7.   
    Добрый день!
    Приложения, собираемые под мобильную платформу содержат отличие в работе со строками - нумерация символов идет с 0. Возможно дело в этом.
        for i:=Low(exc) to High(exc) do     begin       delete(cl,Pos(exc[i],cl),1);     end; Такой код должен работать одинаково на всех платформах.
    Подробнее можно почитать здесь:
    http://docwiki.embarcadero.com/RADStudio/XE6/en/Migrating_Delphi_Code_to_Mobile_from_Desktop
  21. Like
    AngryOwl отреагировална ruslan в Решение Segmentation fault(11). Или "Axe beats in the balls"   
    Добрый день всем тем несчастным кто пишет на фаирманки.
    Если ваше приложение (под андроид) делает больше, чем приложения из папки Samples, если оно содержит не только ButtonClick и Memo, то, наверняка, вы постоянно наблюдаете мою "любимую" ошибку при закрытии приложения: Segmentation fault(11).
    Если Вам надоело править исходники из папки {XE7}\Source, если ваше приложение ну никак не хочет полностью выгружаться и висит в фоновых процессах, 
    покажу Вам свое решение данной, мягко говоря, проблемы.
     
    Подключаем к проекту приложенный .pas и в нужном месте кода(желательно на OnClose главной формы) юзаем процедуру KillMe.
    Теперь Ваше приложение всегда будет выгружаться из памяти, а также запускаться с 1-го раза.
     
     
    п.с. Если посмотреть исходники, то можно понять смысл названия топика.
     
    uVedroProcess.zip
  22. Like
    AngryOwl отреагировална ruslan в Запуск приложения с параметрами.   
    я бы посоветовал посмотреть как реализована работа с GCM push уведомлениями. декомпильте cloud-messaging.jar, который в {xe7}\lib\android\debug
    откройте в андроид студии например. работа с пушами построена, по сути, как это рекомендует делать Google( https://developer.android.com/google/gcm/client.html ).
    т.е. есть  WakefulBroadcastReceiver( com.embarcadero.gcm.notifications.GCMNotification ), который в манифесте подписывается на intent-filter com.google.android.c2dm.intent.RECEIVE.
    когда приходит пуш - ресивер его ловит. если имплементирован т.н. listener( в дельфях по указателю назначен обработчик ), то управление передается ему, т.е. дельфи-приложение(основной активити) принимает intent, который пришел от гугла, и обрабатывает пуш. если лисенер не назначен, то стартует IntentService ( https://developer.android.com/reference/android/app/IntentService.html ), который парсит пришедший интент и вызывает публикацию нотификейшена.
     
    короч, ковыряем исходники и изучаем Android SDK
  23. Like
    AngryOwl отреагировална ruslan в [FGX] Предложения о разработке компонентов   
    а можно узнать что за приложение и какой у него функционал ?) ну если не сложно конечно...
    я например сразу же удаляю приложение с баннерами, за исключением того, что у него ну ОЧЕНЬ нужный мне функционал..
    может конечно только лишь меня одного раздражает моргание с надписями типа:
    - "вчера я работал таксистом - сегодня я зарабатываю 600$ в день"
    - "девочки из твоего города ждут тебя. тебе скучно ? позвони !"
    - "ваш телефон очень сильно тормозит ! скачай супер крутой оптимизатор и сэкономь 100500 % батареи"
    и.т.д.
  24. Like
    AngryOwl отреагировална Martifan в [FGX] Предложения о разработке компонентов   
    все правильно сказано работать не означает кинуть на форме кнопку и при нажатие выдавал сообщения: "Hello World!!!"
  25. Like
    AngryOwl отреагировална ruslan в [FGX] Предложения о разработке компонентов   
    осмелюсь подытожить: очень актуальны 
    тема сервисов(!), фоновой работы, потокового аудио\видео, контроль за коммуникациями(wifi, 3g, телефония)
     
    никому сто лет не нужны всякие "слайдеры" для фоток и прочие свистелки.
     
    когда приложение сможет нормально работать, когда его можно будет "распараллелить", когда не будет падать(в фоне)\виснуть\"неразворачиваться", когда будет нормально работать компонент  плеера\камеры(который безбожно тормозит), когда приложение не будет столько жрать оперативки. потом можно и баннеры\слайдеры всякие делать. а пока это никому не нужный бред.
×
×
  • Создать...