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

Igor

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

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

  • Посещение

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

    3

Igor стал победителем дня 23 мая 2023

Igor имел наиболее популярный контент!

Посетители профиля

1 286 просмотров профиля
  1. Если Вы знаете английский, почему просто не пользоваться справкой и иностранными источниками? Хотя признаться я не знаю как дела обстоят с C++, да и по Delphi я на английском мало что читал. Могу скинуть некоторые ссылки, которые вероятно и так уже Вам известны, но мало ли. Напишите в личку, если хотите, ато это будет реклама.
  2. Igor

    AdMob под iOS

    Видимо по-умолчанию под Android компонент TBannerAd показывает AdMob, в под iOS показывает iAd. Когда делал приложение на андройде, баннер показывал AdMob и я даже не задумывался об этом. Теперь же я скомпилировал приложение под iOS вставив туда код баннера AdMob, но при запуске приложения показывается реклама iAd, вернее что-то типо "вы используйте iAd, тыкните чтобы использовать", т.е. рекламы нет конечно, т.к. ссылка даже не на эту сеть, но компонент работает с iAd. Можно ли штатными средствами дать понять компоненту баннера, что я ссылаюсь на AdMob? Не нашёл в его свойствах такого пункта, беглый гугл тоже не помог. Судя по этому предусмотрены лишь родные сети, но мало ли. Хотелось бы использовать AdMob в FMX под iOS.
  3. Не знаю почему не пашет OnClick, по-моему баг/фича. Но не пойму чем не устраивает OnMouseDown или OnMouseUp. Поясните пожалуйста. Честно не могу сходу представить что-нибудь что нельзя нормально реализовать в OnMouseDown/OnMouseUp против OnClick. Взять например глобальную переменную типа Boolean по-умолчанию значимую false, при OnMouseDown делать её true, при OnMouseUp проверять true ли она, и если да, то обрабатывать + ставить на false (на случай если нажал в одном месте, а отпустил на итеме). На вскидку предположу что я только что описал собственно OnClick как он есть (updt хотя всё таки судя по всему не совсем так) . Только что проверил с TLabel, при клике по нему происходят OnMouseDown, OnClick и OnMouseUp (в такой последовательности). Добавлено позднее: Вообще MouseDown и MouseUp даже интереснее с точки зрения разработчика в том числе и из-за: Button: TMouseButton; Shift: TShiftState; X, Y: Single которых нет у OnClick. updt по поводу использования флажка boolean правда может быть ещё такой вариант: 1. делается Down на итеме, ставиться true 2. делается Up вне итема, true остаётся 3. делается Down вне итема 4. делается Up в итеме - что приведёт с срабатыванию механизма, хотя действия были не правильные; но можно предусмотреть что-то типо, что если Up делается вне итема после Down на итеме, то true меняется на false, но хоть звучит это просто - сделать это в одном лишь Up'е формы будет недостаточно, придётся везде делать, на всех итемах кроме данного, и то может я не всего предусмотрел, но может быть и наоборот можно как-то проще сделать. updt2 придумал ещё вариант, как мне казалось получше, рабочий) использовать событие OnExit для того чтобы избежать описанного выше глюка (в событии ставить флаг на false), вначале на Label протестил, работало хорошо, но с Edit не прокатило, его OnExit работает иначе (с OnMouseLeave тоже не сработало, каретка ввода остаётся в TEdit, возможно в этом дело, хотя вероятно это тоже можно как-то обойти). Есть правда у меня ещё одно предположение, пока всё это делал на XE7, надо проверить в XE6 Update 1 и XE7 Update 1, может там работает OnClick. updt3 Ура OnClick на TEdit работает в XE6 Update 1, вероятно это баг XE7, XE7 Update 1 не имею, так что проверить на нём не могу, короче говоря либо делать в XE6 Update 1 (без апдейта не знаю как там) либо ставить Update 1 на XE7 и смотреть как там, если у Вас XE7 без апдейта, либо посмотреть Embarcaderoвские фиксы на офф сайте, может там правили. P.S.: Единственный момент ещё, всё это проверял на Delphi, не знаю какая зависимость этих вещей от Delphi/С++ Builder.
  4. procedure TForm1.FormCreate(Sender: TObject); begin label1.HitTest:=true; end; или сразу задать компоненту HitTest на true в Properties (у TLabel по-умолчанию HitTest на false стоит) С TEdit так не прокатило (по-умолчанию на true стоит даже) Добавлено позднее: У TEdit OnMouseDown работает. Он подойдёт? ------------------------ О, у Вас C++ Builder, а я на Delphi писал. Ну я думаю адаптируете? Просто я на билдере не пишу, но если надо будет погляжу, думаю там достаточно просто, что скорее всего не надо будет)
  5. Если у тебя у Dummy и Model3D Projection= Screen (иначе надо переводить как-то координаты из Camera), то при RotationAngles равных 0 (иначе как-то ещё угол надо будет учитывать) в Dummy и Model3D можно сделать так: procedure TForm6.Form3DMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); var CenterModel3D_x, CenterModel3D_y, Model3D_x0, Model3D_y0, Model3D_x1, Model3D_y1: single; begin //showmessage('Click '+floattostr(X)+' '+floattostr(Y)); //showmessage('Dummy '+floattostr(Dummy1.Position.X)+' '+floattostr(Dummy1.Position.Y)); //showmessage('Model3D '+floattostr(Model3D1.Position.X)+' '+floattostr(Model3D1.Position.Y)); // внутри Dummy получается, т.е. локальные координаты CenterModel3D_x:=Dummy1.Position.X+Model3D1.Position.X; CenterModel3D_y:=Dummy1.Position.Y+Model3D1.Position.Y; Model3D_x0:=CenterModel3D_x-Model3D1.Width/2; // левый верхний угл Model3D_y0:=CenterModel3D_y-Model3D1.Height/2; // левый верхний угл Model3D_x1:=CenterModel3D_x+Model3D1.Width/2; // правый нижний Model3D_y1:=CenterModel3D_y+Model3D1.Height/2; // правый нижний if ((X>=Model3D_x0) and (X<=Model3D_x1)) and ((Y>=Model3D_y0) and (Y<=Model3D_y1)) then begin showmessage('Click on Model3D'); end; end; В общем я проверил этот код, как костыль может сойдёт, может я что-то не так там конечно рассчитал, но вроде нормально. Если тыкаю рядом с Model3D1 тычёк не засчитывается, тыкаю по Model3D1 - два варианта, ближе к центру = засчитал, дальше = не засчитал. Вероятно это грубо слишком, и хоть модель у меня там более менее квадратная была, либо Width и Height у него не такие явные. Короче потести, в зависимости от задачи может прокатить (например для планшета когда пальцем тыкаешь довольно таки неплохо может выйти). Но вообще это конечно извращение какое-то)) не знаю может ещё как-то координаты через MeshCollection (Model3D1.MeshCollection) находятся, чтобы прям меша были.
  6. Попробовал тут то что написано в той теме, не помогло. Похоже это баг или фича (у меня и в XE6 Update 1 и в XE7 такое, а как в XE7 Update 1 - не знаю). TSphere протыкивается, TDummy и TModel3D не протыкивается даже при HitTest=true. В случае тычка по Dummy или Model3D под которыми только форма, протыкивается собственно сама форма, т.е. событие OnMouseDown TForm, элегантного решения не вижу, могу предложить брать координаты тычка, и сравнивать их с областью занятой Model3D, ну и в случае попадания в его область - обрабатывать.
  7. StringGrid1.Cells[i, j] ? Не знаю что Вам точно нужно, может это поможет: "TStringGrid - удалить строку, удалить все строки"
  8. В adMob есть настройка на странице, где можно добавить некоторые другие рекламные сети через adMob, также есть возможность добавить другую рекламу используя java. Со страницей настроек думаю сориентируетесь, а с джавой я сам не делал, попробуйте вбить запрос в гугл типо "НАЗВАНИЕРЕКЛАМЫ через java в firemonkey delphi". Может быть это поможет определить направление: Подключение сторонних JAVA-библиотек
  9. На андройде пробовал, работает, под XE7. Ну во-первых в Uses вижу FMX.Advertising, мб он нужен, не знаю. Далее у меня так: procedure TForm1.FormShow(Sender: TObject); begin bannerad1.AdUnitID:='ca-app-pub-XXXXXXXXXXXXXXXXXX/xxxxxxxxxxxxx'; bannerad1.LoadAd; end;
  10. В Xcode нужно вначале скачать, по-умолчанию в последнем Xcode нет 7.0 и 7.1, они скачиваются дополнительно (в настройках Xcode). 6.1 я там правда не видел. Как-то так: Дополнение: эм, хотя кажется это ios simulator. В общем если мой комент не в тему/не поможет, можно комент удалить.
  11. Я конечно не Ярослав, но если я не ошибаюсь в XE7 уже есть нативные TEdit и TCalendar, получить которые можно следующем образом: 1) Добавляете на форму TEdit и TCalendar как обычно 2) Находите у них параметр ControlType и меняете его со Styled на Platform 3) Теперь посмотрев на эти объекты на форме Вы можете увидеть на них надписи: "TEdit (native)" и "TCalendar (native)" соответственно И да, в следующих версиях RAD Studio планируется добавление новых нативных элементов управления.
  12. Если брать TImage3D то его нужно удалять за все объекты (Position.Z), и растягивать (Width, Height), т.к. при отдалении он визуально уменьшается. Можно ли как-то без заморочек поставить заместо стандартного белого фона, или любого другого цвета - картинку? Вероятно это делается как-то через стили, не подскажите как?
  13. Спасибо за разъяснения. Уже перенёс удаления компонентов из обработчиков их событий.
  14. Использую Release и получаю ошибку: пишу просто: text3d3.Release; пишу: text3d3 := nil; text3d3.Release; пишу: text3d3.Parent := nil; text3d3 := nil; text3d3.Release; без разницы. Я ведь правильно понял про временные списки, имеются ввиду как раз: text3d3.Parent := nil; text3d3 := nil; ?
×
×
  • Создать...