-
Постов
394 -
Зарегистрирован
-
Посещение
-
Победитель дней
45
Активность репутации
-
AngryOwl получил реакцию от Maximus в Как задать windowborderstyle
Ответы есть, конечно.
Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
Что касается перемещения формы за любой элемент:
- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
все
-
AngryOwl получил реакцию от sviat9440 в Как задать windowborderstyle
Ответы есть, конечно.
Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
Что касается перемещения формы за любой элемент:
- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
все
-
AngryOwl получил реакцию от AndreyS в Как задать windowborderstyle
Ответы есть, конечно.
Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
Что касается перемещения формы за любой элемент:
- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
все
-
AngryOwl получил реакцию от sviat9440 в Можно ли задать минимальные размеры для формы?
Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
Причем проблема с "большой буквы".
Как это сделать в VCL - все в курсе.
Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
-
AngryOwl получил реакцию от Kitty в Можно ли задать минимальные размеры для формы?
Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
Причем проблема с "большой буквы".
Как это сделать в VCL - все в курсе.
Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
-
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; -
AngryOwl отреагировална Brovin Yaroslav в Исключение прямоугольной области при выборе случайного значения на двумерной сетке
Еще есть вариант на одномерном примере.
Идея ввести параметр, который будет принимать случайное значение от 0 до суммы двух отрезков. Потом проверять, Если параметр попадает в первый отрезок по длине, то добавляем начальную координату отрезка. Если во второй, то добавляем начальную координату второй части.
-
AngryOwl отреагировална Вячеслав в Исключение прямоугольной области при выборе случайного значения на двумерной сетке
Ну ладно, тогда вот вам кусочный рандом на примере одномерной задачи.
Область значений Х состоит из двух областей (I) и (III). При этом Х может принимать значение либо из первой области, либо из второй [строчка (1)]
Определяем переменную FLAG, которая может быть только или нулем, или единицей [строчка (2)].
Теперь через нее нетрудно выразить уравнение для Х [строчка (3)]
Сейчас под рукой нет Delphi, поэтому проверить не могу. Но идея, надеюсь, понятна.
-
AngryOwl получил реакцию от Brovin Yaroslav в Передача изображения в потоке
Не за что
в uses, соответственно, надо FMX.Graphics и FMX.Surfaces
-
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; -
AngryOwl отреагировална xenon54 в Работа сервиса при закрытом приложении
Ну тут все просто. Remote Push Notification.
Вот, хороший видос на эту тему для ведра тынц
И сервис никакой не нужен.
Для ведра это называется "Google Cloud Messaging"
-
AngryOwl получил реакцию от Sergey Babichev в ключ SHA1 - как получить?
Библиотека Indy, модуль IdHashSHA, класс TIdHashSHA1.
Надеюсь это что Вам нужно.
-
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 и т.д. по желанию.
-
AngryOwl получил реакцию от Kitty в ключ SHA1 - как получить?
Библиотека Indy, модуль IdHashSHA, класс TIdHashSHA1.
Надеюсь это что Вам нужно.
-
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 -
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 -
AngryOwl отреагировална Kitty в FixInsight vs FMX
Человек делает анализ библиотек поставляемых с Delphi.
Ссылка на статью: http://roman.yankovsky.me/?p=1774
-
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) для быстрого и удобного создания своих аниматоров. Общая чистка кода. -
-
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
-
AngryOwl отреагировална ruslan в Решение Segmentation fault(11). Или "Axe beats in the balls"
Добрый день всем тем несчастным кто пишет на фаирманки.
Если ваше приложение (под андроид) делает больше, чем приложения из папки Samples, если оно содержит не только ButtonClick и Memo, то, наверняка, вы постоянно наблюдаете мою "любимую" ошибку при закрытии приложения: Segmentation fault(11).
Если Вам надоело править исходники из папки {XE7}\Source, если ваше приложение ну никак не хочет полностью выгружаться и висит в фоновых процессах,
покажу Вам свое решение данной, мягко говоря, проблемы.
Подключаем к проекту приложенный .pas и в нужном месте кода(желательно на OnClose главной формы) юзаем процедуру KillMe.
Теперь Ваше приложение всегда будет выгружаться из памяти, а также запускаться с 1-го раза.
п.с. Если посмотреть исходники, то можно понять смысл названия топика.
uVedroProcess.zip
-
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
-
AngryOwl отреагировална ruslan в [FGX] Предложения о разработке компонентов
а можно узнать что за приложение и какой у него функционал ?) ну если не сложно конечно...
я например сразу же удаляю приложение с баннерами, за исключением того, что у него ну ОЧЕНЬ нужный мне функционал..
может конечно только лишь меня одного раздражает моргание с надписями типа:
- "вчера я работал таксистом - сегодня я зарабатываю 600$ в день"
- "девочки из твоего города ждут тебя. тебе скучно ? позвони !"
- "ваш телефон очень сильно тормозит ! скачай супер крутой оптимизатор и сэкономь 100500 % батареи"
и.т.д.
-
AngryOwl отреагировална Martifan в [FGX] Предложения о разработке компонентов
все правильно сказано работать не означает кинуть на форме кнопку и при нажатие выдавал сообщения: "Hello World!!!"
-
AngryOwl отреагировална ruslan в [FGX] Предложения о разработке компонентов
осмелюсь подытожить: очень актуальны
тема сервисов(!), фоновой работы, потокового аудио\видео, контроль за коммуникациями(wifi, 3g, телефония)
никому сто лет не нужны всякие "слайдеры" для фоток и прочие свистелки.
когда приложение сможет нормально работать, когда его можно будет "распараллелить", когда не будет падать(в фоне)\виснуть\"неразворачиваться", когда будет нормально работать компонент плеера\камеры(который безбожно тормозит), когда приложение не будет столько жрать оперативки. потом можно и баннеры\слайдеры всякие делать. а пока это никому не нужный бред.