rustam_d
-
Постов
200 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Сообщения, опубликованные rustam_d
-
-
вы удалили xcode, а потом поставили заново или обновили просто?
надо снести и установить заново!
Чистая установка. Установил Windows 7 x64, на неё поставил Delphi 10. Затем взял образ OS X Yosemite, установил туда xCode7 с SDK9. В результате всё, как и в прежних вариантах, та же ошибка.
Вы проверяли данную конфигурацию. Работает она вообще?
что то похожее
Win8.1x64proYosemite 10.10(vmware)xcode6.4PAserver16XE8upd1Login мака и конечно логин в xcode - девелопера(99$)сертификаты загружены за счет xcodeЗапускаю пасервер на маке без пароля(для чего инсталлятор под виндовс пока загадка)IOS Device32работает норм -
Установил новую студию ради исправления одной ошибки, и наткнулся на другую, ещё более критичную.
В общем и в новых и в старых проектах одинаковая ситуация. Если на форме имеются компоненты KinveyProvider (ParseProvider) и PushEvent, то в режиме Release - Application Store приложение запускается, но после сплэш скрина просто чёрный экран и ничего не происходит, приложение зависает. В режиме Debug всё отлично запускается и работает, Push приложения приходят. Все разрешения есть, даже больше, специально выставлял абсолютно все разрешение.
В режиме отладки не запускается, приложение просто подвисает, отладчик ругается, что оно не отвечает.
Мучаюсь уже второй день, может кто сталкивался или знает куда копать, буду рад любому совету.
второй день это еще не плохо ))
кинву не юзаю, но кое где местами и среда может поднаср..ь, например переключение справа в билд кофигурэйшн
часто желательно вручную мышой правой Активате делать при сменах режима(дебаг, релиз). Т.к. в опциях проекта переключение мышой не всегда корректно.
После переключения вручную, проверьте в опциях проекта права (permissions) все ли стоят для Релиза.
В манифесте права обязательно должны быть, ну раз в дебаге пашет, то наверно добавили корректно?
Потом ключик подписи надеюсь корректен.
Св-во формы Активате проверьте все ли у вас там красиво...покомменте и снова на тест...
-
Может просто в CreateBitmap еще один параметр добавить?
... b.Bitmap.Assign(b.CreateBitmap('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\arrow_left_32_h.bmp')); ...
vStream.WriteComponent(imgMain);
3. В вашем примере сохраняется и загружается вся коллекция + разная служебная информация, что не добавляет скорости. Лучше бы сохранять и загружать сами битмапы из Source.MultiResBitmap с использованием LoadFromFile, SaveToFile (как в первом примере). Это будут файлы родные png и они будут грузится системными API функциями с максимальной скоростью. А CreateBitmap использовать только при первой загрузке чтобы cмасштабировать и сконвертировать в png. Хотя и так тоже можно, но я бы не стал.
что то не догнал...вот так просто взял и SaveToFile??? а для чего я тогна танцы с бубнами делаю с Destination ? Он что как то стороной проходит?
Т.е. я беру и без всяких танцев с дестинанэйшн сразу Source.MultiResBitmap.LoadFromFile ?
вы уверены? хм...
А если вы про загрузку каждой картинки отдельно, то не вариант, мне же индексировать где то надо...
да и если собьется индекс то уже и не те картинки на кнопках...причем на многих...неее, мне 300% уверенность нужна.
-
XE8 без апдейтов.
На какой строке AV?
Provisioning profile должен включать APN.
uses: System.PushNotification, FMX.PushNotification.iOS
xenon54 заработало, спс!
отсутствовал FMX.PushNotification.iOS в разделе uses
Why do I love you FMX!!!??? сколько крови он выпьет еще...я п'лачу...потерять неделю из-за такой ошибки...жесть
ведь компилиться без него...ком-пи-ли-ться!!!...
-
var APS : TPushService; ASC : TPushServiceConnection; begin APS := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); ASC := TPushServiceConnection.Create(APS); ASC.OnChange := DidAPNSChanged; ASC.OnReceiveNotification := form1.OnReciveAPN; ASC.Active := True; procedure TXAPNS.DidAPNSChanged(Sender: TObject; AChange: TPushService.TChanges); begin if TPushService.TChange.DeviceToken in AChange then begin FDevToken := APS.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken] ;
Так у меня работает все на ура
не работает, тот же access violation, сообщите пож. вашу конфигурацию, у вас XE8 ?
-
Ярослав, может и мне поможете?
Тема то актуальная вроде как...
-
Неужели никто не юзает пуши в ИОС ?
Подсобите пожалуйста...проект горит...
APN сертификат завел, скачал его...но где его указать в делфи не пойму...гонсалес чегото не договорил...
-
но этот код удаляет все колонки
просто у меня такого нет
-
Все сертификаты были созданы, подгружены, на этапе создания/подгрузки ни каких ошибок не выскакивало. Приложение запускается на реальном устройстве в режиме отладки без проблем. Подписываюсь на push вот этим кодом:
APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); AServiceConnection := TPushServiceConnection.Create(APushService); AServiceConnection.Active := True; AServiceConnection.OnChange := OnChange; AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
ADeviceID - это ид устройства (не пустое), ADeviceToken - после того как кликнули на устрйостве разрешать уведомления, стало не пустым, т.е. тоже заполняется без проблемм.
FeLDMARShaL прошу помощи, у меня этот код не работает в XE8, вылетает по access violation... начиная со строки ADeviceID := ...
вот мой пост по ошибке
http://fire-monkey.ru/topic/1697-push-soobscheniia-ios-kak-poluchit-token/?hl=push
-
Всем доброго дня!
Задавал этот вопрос на Stackowerflow, но ответа не получил даже с учетом выделенного bounty http://stackoverflow.com/q/32258525/5043424. Сущность вопроса в следующем. Создается колонка для FMX TGrid:
type TDatecell = class(TCalendarEdit) end; TDateColumn = class(TColumn) private function CreateCellControl: TStyledControl; override; public constructor Create(AOwner: TComponent); override; end; ... constructor TDateColumn.Create(AOwner: TComponent); begin inherited; end; function TDateColumn.CreateCellControl: TStyledControl; begin Result := TDatecell.Create(Self); end;
Все работает. Такую колонку можно добавить в TGrid. Не получается ее связать с полем FDQuery, получающим данные из поля MySQL типа date.
Пробовал в runtime вызывать нечто такое:
LinkGridToDataSourceBindSourceDB1.Columns.Add; LinkGridToDataSourceBindSourceDB1.Columns.Items [LinkGridToDataSourceBindSourceDB1.Columns.Count-1]. MemberName:='date_set_by_user';
но этот код удаляет все колонки (если они определялись автоматически по списку полей) и добавляет единственную колонку - экземпляр класса TColumn. Подскажите, как связать колонку своего типа с TDataSet или как указать свой тип колонки в LinkGridToDataSourceBindSourceDB1.Columns? Я представляю, как заполнить TGrid вручную, но, мне кажется, это замедлит код и вынудит писать обработчики изменения DataState и вручную прописывать все изменения во всех ячейках в DataSet, а также реакцию DS на изменение выделения строки в TGrid. OnGetValue не срабатывает, если есть LiveBindings Link... Подскажите, пожалуйста, как это сделать. Застрял...
я свои типы не проталкиваю пока, но связка у меня норм работает...ниже мой код, может вам и сгодиться...
альясы запроса у меня с шириной сразу, это очень удобно - к примеру пишите select name as ФИО_150 from...вот и вам и имя и ширина сразу )
важно подчеркивание ставить просто в конце...
var vSp: МойДатасет; c: TLinkGridToDataSourceColumn; i,k: integer; begin LinkGrd.Columns.Clear; for i := 0 to vSp.FieldCount - 1 do begin c := LinkGrd.Columns.Add; c.MemberName := vSp.Fields[i].FullName; k := Pos('_',c.MemberName); if k > 0 then begin c.Width := copy(c.MemberName,k+1,length(c.MemberName)-k).ToInteger; c.Header := copy(c.MemberName,1,k-1); end else begin c.Width := 100; c.Header := c.MemberName; end; end; end;
-
Вот такой код судя по форумам у многих работает норм...но не у меня.
procedure TForm1.Button1Click(Sender: TObject); var ADeviceID, ADeviceToken: string; begin APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); AServiceConnection := TPushServiceConnection.Create(APushService); AServiceConnection.Active := true; AServiceConnection.OnChange := OnChange; AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
Писал гонсалес еще для XE7, толи все работают на ХЕ7 то ли у меня руки кривые,
но на строке ADeviceID ...вылетает access violation ...
Мои настройки: XE8upd1, IPAD Estay, OX Osemite 10.10(VMWare).
Сертификат APN выпускал, но чую не в нем дело...
Что только не делал...программа то работает, просто этот код погоняет...
-
Пуш сообщения приходят много и переполняют панель уведомлений.
Вопрос, кто-нить делал прием пуш сообщений группой?
Например как gmail двойная иконка и пачка сообщений? Агент также умеет.
Может надо поковырять манифесты или еще что?
Буду премного благодарен, актуальная тема...
-
и еще может кому сгодиться, если в БД картинки не меняли, то логично, что их не зачем загружать.
Для этого я просто сохраняю компонент ImageList в файл. Если есть лучше решения, то критика приветствуется!
//сохраняем компонент ImageList в файл vStream := TFileStream.Create(TPath.GetDocumentsPath + '/imagelist',fmCreate); try vStream.WriteComponent(imgMain); finally vStream.Free; end; //загружаем файл в компонент ImageList vStream := TFileStream.Create(TPath.GetDocumentsPath + '/imagelist',fmOpenRead); try vStream.ReadComponent(imgMain); finally vStream.Free; end;
-
Может просто в CreateBitmap еще один параметр добавить?
Фил я кстати тоже так подумал ))))
Исправил в своем коде ТОЛЬКО ОДНУ строку и тогда транспарент заработал (чудеса FMX):
b.Bitmap.Assign(b.CreateBitmap('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\eject_blue_32_h.bmp'));и даже удалил b.Bitmap.SetSize(32,32);Сергей, в любом случае вы помогли спасибо!Но мой код по мне куда проще и короче...Вообщем вот готовый простейший кодprocedure TForm1.Button1Click(Sender: TObject); var Layer: TLayer; c: TCustomSourceItem; b: TCustomBitmapItem; d: TCustomDestinationItem; begin d := ImageList1.Destination.Add; Layer := ImageList1.Destination[d.Index].Layers.Add; Layer.SourceRect.Rect := TRectF.Create(TPoint.Zero, 32, 32); c := ImageList1.Source.Add; Layer.Name := c.Name; c.MultiResBitmap.TransparentColor := TAlphaColorRec.Fuchsia; b := c.MultiResBitmap.Add; b.Bitmap.Assign(b.CreateBitmap('C:\Delphi\Images\GlyFX\glyFX\Icons\Aero\BMP\32x32\arrow_left_32_h.bmp')); Button2.ImageIndex := 0; end;
-
Сергей, я был бы очень признателен по сабжу, т.е. не могли бы вы как профи поправить мой код?
Убрать все лишнее, дестинейшн может быть и т.п., и оставить только нужное и правильное?
Попробую. Выкладывайте на всеобщее обозрение здесь, или в комментариях к статье.
так это и есть тема сообщения...
-
Причем прозрачный цвет должен быть выбран до загрузки.
Похоже на очередной косяк разработчиков.
Не похоже нет.
Сергей, я был бы очень признателен по сабжу, т.е. не могли бы вы как профи поправить мой код?
Убрать все лишнее, дестинейшн может быть и т.п., и оставить только нужное и правильное?
-
Эмулятор еще не устанавливал и не знаю насколько быстро он работает. Но ооочень уж долго происходит компиляция, деплой, установка приложения на телефон. Вот и возникла мысль: "А вдруг эмулятор пошустрее?". Что скажете?
PS. Win8.1, 4Гб, Intel Pentium G2130 3.2Ггц
Эмулятор да тормозит, жесть против ИОС эмулятора.
Лучше Андроид устройство какое нить по юсб или вафле (последнее сложнее в реализации).
Компиляция я бы сказал - невыносимая, даже по юсб.
Сделайте следующее:
- установите делфи и проекты ваши на SSD диск скажем 250гб (у меня самс ево 500 и операционка на нем)
- поставьте процессор core i7
после всего этого у вас компиляция будет всего на 95% отставать от VCL, против текущих 550%.
-
Короче, спасибо за ХЕ8, а в остальном видно что пацаны не плохо отдохнули на мальдивах на срезанное анрил бабло 2к...и...решили попросту повторить.
VCL я так понял живет своим мирком и будет дальше жить, добавив .ToString и .ToInteger поняли, что для нас это нечто божественное, и ...на этом харэ.
Остается уповать на стабильность фмх...но это не проверено еще.
Я не разочарован, ведь есть ХЕ8...возможно на их месте я бы делал как они...оттягивался и ловил момент ),.. разводил кроликов дальше.
P.S.: по уму надо было бы книжки нормальные создать по фмх с нормальными примерами, а то просто тупо на свои же продукты публикуют
сторонние блоги делая из этого сенсацию, как типа если я бы изобрел авто и бросил на эксперименты индейцам и угорал..."он поехал!",
"он смог завести!", "а это претендует на блог!!!"...стыдно и за них и за себя...
-
usesAndroidAPI.Helpers,AndroidAPI.JNI.GraphicsContentViewText;typeTForm1 = class(TForm)procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }function BatteryPercent(const aContext: JContext): Integer;end;varForm1: TForm1;implementation{$R *.fmx}function TForm1.BatteryPercent(const aContext: JContext): Integer;varfilter: JIntentFilter;battery: JIntent;beginfilter := TJIntentFilter.Create;filter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED);battery := aContext.registerReceiver(NIL, filter);result := battery.getIntExtra(StringToJString('level'), -1)end;procedure TForm1.FormCreate(Sender: TObject);varmyContext: JContext;beginmyContext := SharedActivityContext;Showmessage(BatteryPercent(myContext).ToString);end;а еще по другим параметрам испанец круто обсосал тута если надо модель, серийный то это у вас на компе Delphi\Samples\Object Pascal\Mobile Snippets\DeviceInfo (но тут хоть ИОС есть).
-
допустим я отдам эти значения в UserDataSet, и FR знакомится с ними, есть мысли как тогда сделать обработчик ? Или я неправильно понял мысль?
думаю стоит идти в направлении frxUserDataSet.RecNo
-
-
Как то с vcl еще привычка была наследоваться от базовых форм.
Тут она и пригодилась, в базовой форме можно все перегрузки и кидать, а в наследованной
все автоматом цепляется...проверенно, работает!
верхняя ссылка глючит, там про перегрузку контрола:
type TSpeedButton = class(FMX.StdCtrls.TSpeedButton) protected procedure AdjustFixedSize(const Ref: TControl); override; end; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; implementation {$R *.fmx} { TSpeedButton } procedure TSpeedButton.AdjustFixedSize(const Ref: TControl); begin SetAdjustType(TAdjustType.None); end;
ну а далее мое предложение про наследование, зато код без мусора...он в предках...:
type TForm2 = class(TForm1)
-
https://delphihaven.wordpress.com/2013/12/30/removing-a-fmx-controls-size-restrictions/
Фил, вот вариант, через одно место, но без стилей.
Если не много форм, то мусорить в типах в начале стоит, ради дальнейшего избавления от стилей.
Это работает, причем не обязательно с спидбатонами.
Но надо смириться, что в дизайне будет изврат.
-
Это можно обойти добавив свой стиль для SpeedButton.
Поясню немного:
1. Заходим в редактор стиля SpeedButton.
2. Сохраняем стиль.
3. В текстовом редакторе удаляем строку FixedHeight = ... и сохраняемся.
4. В редакторе стилей загружаем стиль обратно.
5. Готово)
спасибо Фил,...как всегда на высоте ).
эх кастри..ь бы того прогера кто это сво-во влепил...
[RAD X] Push уведомления
в Push сообщения
Опубликовано
вы говорите все ок...но походу не так ))
выложите манифест файл андроида...он важен для пушей, точнее туда дописывать надо права отдельно