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

Igor

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

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

  • Посещение

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

    3

Весь контент Igor

  1. К примеру у меня есть объекты TSphere, TCylinder, а также TModel3D, все эти объекты находятся в движении, соответственно могут пересечься. Вопрос в том, как определить факт их пересечения? В 2D, например в TImage, когда объекты рисуются вручную, там выбирать не приходиться, просчитываешь всё сам, но тут даже не 2D шейпы, а 3D, и я предположил, что есть какой-то более простой способ просчёта пересечений. Может быть есть какое-то явное сравнение двух множеств точек на которых находятся два объекта, и если они пересеклись (булево пересечение), то можно запустить какой-то кусок кода? Подскажите пожалуйста способы определения пересечения 3D объектов.
  2. не знаю актуально ещё или нет, но возможно так: http://stringgrid-delphi.ru/delete-row.php Удаление одной строки: процедура: procedure TForm1.DeleteRow(ARow: Integer); var i, j: Integer; begin with StringGrid1 do begin for i:=ARow+1 to RowCount-1 do for j:=0 to ColumnCount-1 do Cells[j, i-1]:=Cells[j, i]; RowCount:=RowCount-1; end; end; вызов процедуры: DeleteRow(номер строки); Удаление всех строк: StringGrid1.RowCount:=0;
  3. Во-первых там есть доп. элементы (полоса сверху с зарядкой), ну допустим я их могу нагуглить и прилепить, но отображение объектов формы, шрифта, прорисовка всего если не уникальна на iPhone то как минимум не идентична скрину того же приложения из под Windows. Это на первый взгляд достаточно просто масштабировать в редакторе или размер формы задать и сделать скрин. Подозреваю что даже на симуляторе скрин не идентичен тому что получено на устройстве, но так я хоть как-то ориентировочно могу представить вид приложения на устройстве. У меня нет айфонов всех моделей, и мне удобно делать скрины без заморочек из симулятора. Подгоняя скрин с компа или с симулятора другого устройства есть достаточно большая вероятность получить картинку не соответствующую действительности, но конечно и симулятор самого iPhone 6 Plus не идеал, но это хоть что-то в плане представления поведения приложения на устройстве и его вида там же. Я к слову хотел скрины для андройда подогнать с компа, там шрифт даже другой был, и всё изображение было в каких-то точечках. Давайте короче по теме, нахимичить я всегда успею. Хотя если окажется что в симуляторе я могу ставить своё разрешение (что я не проверял ещё), то Ваш совет достаточно уместен.
  4. Про какой размер Вы говорите? Размер формы? Или в самом симуляторе можно задать? Я не копался в симуляторе, но в Delphi на выбор вижу три варианта, в зависимости от которых я получаю разного размера "устройства" в симуляторе, эти варианты iPad, iPhone, и iPhone 5, других вариантов, типо Another или Custom там нет. Либо Вы не совсем поняли, либо я. Поясните пожалуйста.
  5. насколько я понял актуальные мета и объявление такие: <meta-data android:name="com.google.android.gms.version" android:value="4323000"/> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> но видимо они работают только в купе с обновлённым (фиксом) Delphi, иначе происходит ошибка: Так что наверное качаем данный фикс и правим при надобности манифест как написано выше. Наверное, т.к. это пока теория не проверенная на практике.
  6. В XE7 есть некий Project > Options > Entitlement List, and select AdMob Service исходя из справки которого нет в моём XE6, мой Entitlement List просто пуст, может SDK какой-то нужно ещё поставить?
  7. появления надписи снова я добился, но дальше двинуться не могу. у кого-нибудь стоит AdMob?
  8. по непонятным причинам перестала появляться та надпись в чёрном окошке, а также устанавливаться apk в авто-режиме из студии.
  9. заменяя мету: <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> на: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> получаю ошибку касательно этих строк и ссылку на справку Troubleshooting: Cannot Deploy an Application for Android но чувствую заменять мету и не нужно вовсе, хоть я точно и не знаю зачем она, но предполагаю что на функционал не влияет
  10. Есть некоторые продвижения. Делаю релиз в режиме дебага (правда в новую папку), но раз релиз то может быть подписан? Во всяком случае ставится. Добавил строку: BannerAd1.LoadAd; в FormCreate помимо FormShow Убрал: procedure TForm1.BannerAd1ActionCanBegin(Sender: TObject; var WillLeaveApplication: Boolean); begin ActionBeginDate := Now; end; procedure TForm1.BannerAd1ActionDidFinish(Sender: TObject); var Seconds: Integer; begin Seconds := SecondsBetween(ActionBeginDate, Now); WastedSeconds := WastedSeconds + Seconds; Label1.Text := IntToStr(WastedSeconds) + ' seconds wasted watching ads so far.' end; с их объявлениями и объявлениями их переменных; отключил TestMode заменил в манифесте строку: <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> на: <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> И появилось чёрное окошко с красными буковками, правда не на всю ширину и это не совсем баннер, но уже что-то, а написано там (то что видно): ....st have AdActivity declared in AndroidM.... xml with configChanges. видимо это: You must have AdActivity declared in AndroidManifest.xml with ConfigChanges
  11. Думаю как-то так: В Delphi XE6: File -> New -> Other... -> Console Application в коде к примеру: program Project3; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin writeln('Hello World!'); // вывод на экран Hello World readln; // ввод, чтобы окно не закрылось пока enter не нажмут end. далее справа в Project Manager'е правой кнопкой мыши по Target Platforms -> Add Platform... -> OS X при компиляции выбираем OS X, и наверное имеем связь с Mac'ом как и при компиляции для iOS
  12. может быть мне этот хотфикс нужен? - ID: 29911, AdMob replacement hotfix for RAD Studio XE6
  13. Скоро выйдут iPhone 6 и iPhone 6 Plus, а на itunesconnect.apple.com при добавлении приложения уже есть возможность загрузить скриншоты для устройств с 4.7 дюймовым экраном (iPhone 6) и с 5.5 дюймовым (iPhone 6 Plus). В Delphi XE6 есть симуляция iPad, iPhone (3.5 дюймов), и iPhone 5 (4 дюйма), где можно также получить скришоты нужного размера, т.е. 640x960 и 640x1136 для 3.5 и 4 дюймов соответственно. Планируется ли обновление с включением возможности выбора iPhone 6 и iPhone 6 Plus в симуляторе и если да, то когда?
  14. не уверен, что в нужный подфорум добавил тему, если я ошибся - не удаляйте пожалуйста, перенесите куда нужно пожалуйста
  15. Недавно старый AdMob от гугла заменили на новый. Со старым я не работал, а новый поднять не выходит, предполагаю, что дело может быть в том, что новый AdMob не предусмотрен в способе настройки старого, но вполне возможно, что дело не в этом. На месте где баннер должен быть в общем не вижу ничего, правда программу собирал в режиме дебага и название её сменил и путь установки (иначе не давало установить, писало что-то о сертификате, насколько я понял дело в том, что у меня по тому адресу, с тем названием стояла уже прога подписанная сертификатом, скаченная с гугл плей) , т.е. по сути это уже не та прога, что на гугл плее, но должно же хоть что-то на месте баннера было появиться наверно (?) К сути: 0) На странице apps.admob.com создал рекламный блок для своего уже активного приложения. Используя старый проект приложения, стал добавлять нужное, а именно: 1) Добавил TBannerAd 2) Настроил соединение с рекламой. Delphi: BannerAd1.AdUnitID := 'YourAdUnitID'; В файле AndroidManifest.template добавил сразу после </activity> на линии 32: <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> В Uses Permissions включил Access network state и Internet. 3) Выставил TestMode в TBannerAd на True. 4) В "Unit1.pas", в private секции добавил: ActionBeginDate: TDateTime; WastedSeconds: Integer; 5) В uses секции прописал "System.DateUtils". 6) Определил обработчики событий с реализациями, показанными в разделе Code ниже. Выбрал форму и определил обработчик событий для её OnShow события. Выбрал баннер и определил обработчики событий для его событий OnActionCanBegin и OnActionDidFinish. Источник 1 Источник 2 На примере: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Advertising, System.DateUtils; type TForm1 = class(TForm) BannerAd1: TBannerAd; Label1: TLabel; procedure FormShow(Sender: TObject); procedure BannerAd1ActionCanBegin(Sender: TObject; var WillLeaveApplication: Boolean); procedure BannerAd1ActionDidFinish(Sender: TObject); private ActionBeginDate: TDateTime; WastedSeconds: Integer; end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.BannerAd1ActionCanBegin(Sender: TObject; var WillLeaveApplication: Boolean); begin ActionBeginDate := Now; end; procedure TForm1.BannerAd1ActionDidFinish(Sender: TObject); var Seconds: Integer; begin Seconds := SecondsBetween(ActionBeginDate, Now); WastedSeconds := WastedSeconds + Seconds; Label1.Text := IntToStr(WastedSeconds) + ' seconds wasted watching ads so far.' end; procedure TForm1.FormShow(Sender: TObject); begin BannerAd1.LoadAd; end; end. У гуглов в их справке в манифест ещё просят внести мету: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> и объявление немного отличается от того, что в справке Rad XE6: <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> но мету когда добавил ошибка вышла, а в объявлении разница состоит в "gms.", но нужен он или нет не знаю (?)
  16. Krug1: TCircle лежащий на TabItem4, TabControl1 лежащим на Form1 Проблема в том, что текст кажется рисуется по координатам формы, а не Krug1, или TabItem4, или TabControl1 (заменял в коде krug1.Canvas на TabControl1.Tabs[3].Canvas всё равно по координатам формы рисует). В теории представляю, что если по координатам круга то TRectF.Create(0, 0, krug1.Width, krug1.Height) должен работать, но нет. В коде (кусок из события Click объекта krug1) ниже по логике в TRectF.Create с опорой на координаты Tab'а, хотя канва krug1, в итоге рисует над TabControl1: with krug1.Canvas do begin BeginScene; try Fill.Color := TAlphaColorRec.Red; Fill.Kind := TBrushKind.Solid; Font.Size := 10; FillText(TRectF.Create(krug1.Position.X, krug1.Position.Y, krug1.Position.X+krug1.Width, krug1.Position.Y+krug1.Height), 'Текст', False, 1, [], TTextAlign.Center, TTextAlign.Center); finally EndScene; end; end;
  17. Собрал другой проект, приложение запустилось без ошибок, полёт нормальный.
  18. Зашел сейчас в органайзер XCode увидел, что моя прога в списке applications там есть, глянул в iPad там ярлык проги) Получилось получается. А ошибка Session ended не знаю зачем и почему, может разрыв связи плановый. Короче есть ещё один момент, у меня сертификатов разраба 2 должно быть теперь, пока тыкался создал ещё один, но в органайзере виден был только один сейчас, рефрешнул, стал видел тоже один, но другой. В общем есть вопросы к этому всему, но прога запустилась и я доволен. Спасибо
  19. Спасибо, помогло, но теперь другая ошибка: деплой проходит, начинается Run, на Маке просится доступ к ключам, разрешаю, но ошибка. Причём вчера (ночью сегодня проверял когда после Вашего сообщения) ещё была другая ошибка: [PAClient Error] Error: E0009 Socket Error # 10054 [PAClient Error] Error: E0009 Connection reset by peer. с отсылкой на справку Troubleshooting: Cannot Connect to the Mac но может тогда на Маке не ткнул что-то, т.е. разрешение к ключам тогда я явно не тыкал, может дело в этом, и фаервол тогда был включён возможно (сейчас нет) + проект другой был, сегодня решил основной проект запустить, т.к. в нём уж побольше сидел с настройками, а в новом мог что-то упустить, в общем так или иначе сейчас ошибка, что на скрине, а в Messages ничего необычного. Ну и опять на Cannot Deploy to the iOS Device ссылается
  20. С радостью, но он создаётся либо через XCode либо на developer.apple.com, и в обоих случаях выбора нет, сам он таким делается. В аккаунта не могу ничего изменить, все данные уже на английском, где-то спрятались русские данные у них базе, но мне их не достать, в нашей (русское отделение Apple по общим вопросам) поддержке не видят тоже, до поддержки developer.apple.com (https://developer.apple.com/contact/submit.php) не могу дойти, там глюк какой-то на сайте и с Мака и с Винды пробовал, с разных браузеров, надеюсь, что дело не в сертификате, и кто-то знает как это исправить. Тыкаюсь уже не первый день, решить не могу.
  21. Но у меня же e800801c (Unable to install package (e800801c) - указание понятное, но где и как?), да и не запущен симулятор кажется. Даже не знаю как это проверить. Во всяком случае когда на симуляторе запускал было явное окно симулятора, тут я даже XCode сам могу не запускать, а ошибка выходит. Может дело в проекте? А у сертификатов у Вас в скобках коды одинаковые или для разраба один код, для распространителя другой? Ещё такой hint выпадал, может дело в нём? [DCC Hint] H2596 dsymlink - Generate dSYM file. Copyright 2012-13 Embarcadero Хотя кажется он уже пропал, был возможно тогда когда у меня был другой Provision (сгенерированный XCode, в последствии заменён на созданный вручную). Создал новый проект, заполнил только Developer Certificate с Debug Config и Build Type: Debug Нажал Run, идёт компиляция, выходит хинт: [DCC Hint] H2596 dsymlink - Generate dSYM file. Copyright 2012-13 Embarcadero но, Success! Далее Deploy Success Затем опять ошибка, и всё. Последние строки Messages'а: paclient command line for "Igor" c:\program files\embarcadero\studio\14.0\bin\paclient.exe -u8 --codesign="Project1.app,'iPhone Developer: Igor ******** (A********6)',Entitlements.plist" Igor Success Elapsed time: 00:01:18.1 *за первыми звёздочками фамилия на русском
  22. Не получается Run'нуть приложение на iPad. Идёт, компиляция, идёт Deploy, начинается Run, и ошибка + справка. Получаю такую ошибку: И открывается справка по пути: http://www.embarcadero.com/starthere/xe6/mobdevsetup/ios/en/runiosdevicefailedhelppage.html Только я всё равно не пойму в чём дело. Погуглил, подумал, отключил антивирус, посмотрел сертификаты, provision'ы. Причём на симуляторе ios запускается, на устройстве не хочет. PAServer запущен, iPad подключён. Мысли у меня такие: сертификат разработчика у меня почему-то с русской фамилией, и в профиле на developer.apple.com написано Name Фамилия + в скобках код отличный от id developer'а, хотя в сертификате дистрибьютора написано Name LastName (т.е. нормально, латиницей и имя и фамилия) + код в скобках такой же как id developer. Звонил в Apple, русскоязычные не помогли, звонить в поддержку developer.apple.com не решаюсь (заграница), написать им не могу, при тыканьи на нужные ссылки в саппорте происходит циклическая переадресация. Думаю может и норм у меня с сертификатом, может в другом проблема? Также есть такой момент, что apple id для девелопера, для макинтоша, для Xcode - у меня один, а для iPad'а другой. Т.е. 2 apple ID, один для IPad и всего что в нём, другой для разработки и компов. Сертификаты стоят в связке ключей, iPad подхватывается, горит зелёным в xcode'е, в Delphi XE6 видится. Не знаю как решать. + ещё один момент Developer Program Id сам не вписался при нажатии Load ID, вписывал вручную, а при Load ID ошибка: может эти два косяка связаны? Доп. данные: SDK iPhoneOS 7.1 Почему-то ещё при дебаге, как не зайду в провижн, там выбран апликейшн стор, в билд тайпе, меняю на дебаг, он всё равно на месте в следующий раз. Настройки Debag-Debag (билд конфиг, таргет платформ). Пока печатал подумал, а может в Debag, в Build Type = App Store, Provision нужно Developer'а запихнуть, а не Distribution'а? (А в Release, в Build Type = App Store, в Provision - Distribution'а оставить как и стоит)
×
×
  • Создать...