![](https://fire-monkey.ru/uploads/set_resources_12/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Kitty
-
Постов
792 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Активность репутации
-
Kitty отреагировална AngryOwl в Можно ли задать минимальные размеры для формы?
Я думаю со мной согласится абсолютное большинство, что ограничение размеров формы - это проблема!
Причем проблема с "большой буквы".
Как это сделать в VCL - все в курсе.
Предвидя ответ, что это можно сделать самому "ручками", спрошу - почему все должны лезть в исходники Firemonkey и править "родные" модули, дабы достичь нужного результата?
Вроде это самые элементарные свойства (предопределение минимальных/максимальных размеров формы).
Поэтому очень хотелось бы вынести это "обсуждение"/проблему на рассмотрение Embarcadero. И, конечно, хотелось бы чтобы они эту проблему решили и решили в срочном порядке.
Согласитесь (думаю и наши уважаемые гуру согласятся), что этот вопрос относится к элементарным и основным проблемам.
Представьте себе любого начинающего FMX-прогера, который в первом же своем FMX-проекте столкнется с данной проблемой...
P.S. Как крайний вариант - рассматриваю коллективное обсуждение и решение этой задачи с публикацией кода.
-
Kitty отреагировална Brovin Yaroslav в [XE7] [TEdit] [Отклонение] Не срабатывает событие OnClick у TEdit
Добрый день,
Это ошибка, ее устранили в будущей новой версии среды. Для обхода проблемы в других версиях среды, нужно использовать следующий подход:
var StyledPresentation: TStyledControl; begin StyledPresentation := nil; if Edit1.HasPresentationProxy then StyledPresentation := Edit1.PresentationProxy.Receiver as TStyledControl; if StyledPresentation <> nil then StyledPresentation.OnClick := Edit1Click; // <-- программно задать свой обработчик end; Код для С++ Builder:
void __fastcall TForm2::FormCreate(TObject *Sender) { TStyledControl* styledPresentation; if (Edit1->HasPresentationProxy()) { styledPresentation = dynamic_cast<TStyledControl*>(Edit1->PresentationProxy->Receiver); styledPresentation->OnClick = Edit1Click; // <-- программно задать свой обработчик } } -
Kitty отреагировална xenon54 в Изменение позиции панели жестами
В обработчике событий жестов есть константа "EventInfo.Location" это текущее положение пальца. Каждый раз при срабатывании обработчика запоминаешь текущую позицию и в следующий раз смотришь куда и на сколько сместился палец. И соответственно меняешь на столько координаты своей панели. Так же в этой константе есть флаги "EventInfo.Flags" из которых можно узнать сейчас палец идет по экрану или его отпустили. Проверяешь, если палец отпустили, то смотришь текущие координаты панели, и дальше решаешь что с ней делать: через анимацию двигать обратно, или завершать движение.
-
Kitty отреагировална xenon54 в Изменение позиции панели жестами
У мультивью есть большой минус - он съедает край экрана, и если на самом краю кнопка, то мультивью не позволит ее нажать.
-
Kitty отреагировална Brovin Yaroslav в Исключение прямоугольной области при выборе случайного значения на двумерной сетке
Еще есть вариант на одномерном примере.
Идея ввести параметр, который будет принимать случайное значение от 0 до суммы двух отрезков. Потом проверять, Если параметр попадает в первый отрезок по длине, то добавляем начальную координату отрезка. Если во второй, то добавляем начальную координату второй части.
-
Kitty отреагировална AngryOwl в Передача изображения в потоке
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; -
Kitty отреагировална xenon54 в Один размер под разные дисплеи
Нет, просто помещаете все на TScaledLayout, а он сам уже вычисляет увеличить надо или уменьшить.
-
Kitty отреагировална Andrey Efimov в Черный экран
Такая же ситуация была на Samsung Galaxy S2, я отрапортовал о баге (в версии XE5), обещали исправить в след. версии, в итоге баг закрыли, написали "Исправлено", но когда вышла новая версия среды, баг там всё также был. Повторюсь, ситуация была совершенно идентичной.
-
-
Kitty отреагировална Martifan в Как получить IMEI?
а для Android:
Uses Androidapi.JNI.Telephony, Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText; function TfMain.GetMyImei: string; var TelephonyObj: JObject; TelephonyManager: JTelephonyManager; begin Result := ''; TelephonyObj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); TelephonyManager := TJTelephonyManager.Wrap((TelephonyObj as ILocalObject).GetObjectID); Result := JStringToString(TelephonyManager.getDeviceId); end; -
Kitty отреагировална Alex7wrt в Admob не могу понять...
Estra ответил на вопрос относительно кнопки "Назад".
Что касается баннера, возможно здесь нужно задать размеры.
Попробуйте например выставить align в mostbottom и посмотрите, что получится.
Вы используете процедуру BannerAd1ActionCanBegin, в теле которой загружаете баннер.
Описание этого события гласит: "Occurs after your user taps the advertising banner, and before the banner responds to this user action." То есть событие происходит после того как пользователь нажмет на баннер. Поэтому в Вашем коде баннер грузится только после нажатия на контейнер. Вы точно здесь ничего не путаете?
-
Kitty отреагировална Brovin Yaroslav в [Вебинар] Новый подход к разработке компонентов FireMonkey в RAD Studio XE8. Часть 1
Выложена запись вебинара. Смотрите предыдущее сообщение.
-
Kitty отреагировална xenon54 в Философский вопрос пока, но....
Я имел ввиду что используются вызовы сторонних функций (cdecl) и ФМ абсолютно все равно как там что реализовано и на каком языке, мы просто юзаем их внешние методы. Если классы и их методы имеют те же названия, то это не должно повлиять на работу ФМ.
-
Kitty отреагировална estra в [TRESTClient] Как добавить данные в заголовок запроса (Authorization)?
Оно?
RESTClient1.Params.AddHeader() -
Kitty отреагировална estra в Admob не могу понять...
как то так
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if Key = vkHardwareBack then // если закрывать не нужно, то begin // делай что нужно Key := 0; KeyChar := #0; end; end; -
Kitty отреагировална Brovin Yaroslav в [Вебинар] Что нового в FireDAC XE8
Записи ведуться и выкладываются на российский канал Embarcadero в YouTube: http://www.youtube.com/channel/UCtqzKKPLL1uoI7yyCBmKP1w
Плейлист с вебинарами: http://www.youtube.com/playlist?list=PLNexYoB7XRWZv-6QviwJzdRKthKuBR_dG
-
Kitty отреагировална Brovin Yaroslav в [Вебинар] Что нового в FireDAC XE8
Тема: Новый подход к разработке компонентов FireMonkey в RAD Studio XE8 Дата и время: 22 апреля 2015 года в 12:00 Участники: Денис Васильев и Дмитрий Арефьев Регистрация: ссылка Участие бесплатное. Запись вебинара будет доступна здесь: http://www.youtube.com/playlist?list=PLNexYoB7XRWZv-6QviwJzdRKthKuBR_dG
На вебинаре мы рассмотрим следующие темы:
новый Teradata драйвер поддержка InterBase Change Views унифицированные извещения об изменениях (MSSQL и IB) поддержка iOS 64-битного dbExpress - FireDAC миграция В вебинаре примет участие Дмитрий Арефьев, главный разработчик и идеолог FireDAC.
-
Kitty отреагировална xenon54 в [TForm] Задание фонового изображения для формы
У формы есть специально свойство Fill для этого.
-
Kitty отреагировална Brovin Yaroslav в Touchtargetexpansion перестал работать в xe8
Временный фикс. Применить эту процедуру в OnCreate или OnShow для тех контролов, для которых не работает TouchTargetExpansion:
uses FMX.Presentation.Style; procedure FixTouchTargetExpansion(const PresentedControl: TPresentedControl); begin if PresentedControl.HasPresentationProxy and (PresentedControl.PresentationProxy.Receiver is TStyledPresentation) then TStyledPresentation(PresentedControl.PresentationProxy.Receiver).TouchTargetExpansion := PresentedControl.TouchTargetExpansion; end; -
Kitty отреагировална Brovin Yaroslav в [Вебинар] Новый подход к разработке компонентов FireMonkey в RAD Studio XE8. Часть 1
Тема: Новый подход к разработке компонентов FireMonkey в RAD Studio XE8 Дата и время: 22 апреля 2015 года в 12:00 Участники: Денис Васильев и Бровин Ярослав Регистрация: ссылка Участие бесплатное Запись вебинара будет доступна здесь: http://www.youtube.com/playlist?list=PLNexYoB7XRWZv-6QviwJzdRKthKuBR_dG
Добрый день,
Завтра 22 апреля 2015 года в 12:00 по московскому времени пройдет вебинар на тему "Новый подход к разработке компонентов FireMonkey в RAD Studio XE8". В рамках данной темы мы познакомимся с новым подходом разработки и добавим в стандартную edit поддержку автозавершение текста. Рассмотрим особенности работы с Z-ордер. В вебинаре примет участие Ярослав Бровин, ведущий разработчик Embarcadero.
-
Kitty отреагировална xenon54 в Проблема XE8 на живом девайсе.
Да тут чайник не чайник, любой может потрахаться с этой ... Эта ошибка означает что имя проекта у вас не совпадает с идентификатором который вы указали в дев центре. Начиная с IOS 8.1.3 это важно. К примеру вы выбираете провижн профиль в котором прописан ID приложения "wow.test", а проект у вас называется "project1", должны совпадать. Ну или ID должен быть wildcard. Советую открыть сгенерированный ".entitlements" и проверить что там идентификаторы совпадают с сертом.
-
Kitty отреагировална Andrey Efimov в Проблема при выходе из программы
Close не работало в XE5 и вроде в XE6 (я писал об этом в статье, по ссылке выше).
Сейчас проверил в XE8:
Close() - работает, делает похоже, тоже самое, что и MainActivity()->finish().
Получается теперь можно использовать обычный Close().
-
Kitty отреагировална haword в Проблема при выходе из программы
смотри процессы запущенные а не историю запуска.
-
Kitty отреагировална #WAMACO в Проблема при выходе из программы
так а с чего вы решили, что оно не закрывается? вы его видите в истории ранее открытых приложений просто!
это разные кейсы!
-
Kitty отреагировална Belov.V. в Проблема при выходе из программы
MainActivity()->finish() или SharedActivity()->finish() должны выгружать приложение полностью (MainActivity.finish; - корневая активити, а SharedActivity.finish - ... пока к сожалению тоже только корневая).
То, что Вы видите приложение в списке не значит, что оно загружено. Это список загруженных ранее, а не находящихся в памяти. К примеру, чтобы в списке не оставался, есть ключ для файла манифеста android:noHistory="false".