-
Постов
135 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные zairkz
-
-
Приложение на андроид 5.1 компилится и работает корректно, на андроид 4.2.2 работает плохо, а на 4.0.3 вовсе не запускается и пишет(приложение не поддерживается устройством).
В чём проблема?
А какой проц на 4.2.2 и на 4.0.3?
Если плохо работает, то скорее всего на 4.2.2 стоит Intel, а там эмулятор ARM вот он и тормозит,
и сдается мне что и на 4.0.3 стоит Intel, а там эмулятора вообще нет вот он и не запускается.
-
procedure TForm_Main.RegisterPush;varADeviceID, ADeviceToken: string;begin{$IFDEF ANDROID}// Для AndroidAPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);APushService.AppProps[TPushService.TAppPropNames.GCMAppID] := '**************';{$ELSE}// Для iOSAPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);{$ENDIF}// Создаём подключение к серверуAServiceConnection := TPushServiceConnection.Create(APushService);// Активируем подключениеAServiceConnection.Active := True;// Подключаем делегатыAServiceConnection.OnChange := OnServiceConnectionChange;AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];if (ADeviceID <> '') AND (ADeviceToken <> '') thenbegin// Регистрируем устройство на сервере для отправки push сообщенийRegisterDevice(ADeviceID, ADeviceToken, User_id.ToString);end;end;GCM не работает для apple. Я так понимаю Вы сертификаты еще не сгенерировали для PUSH в iOS?Хотя судя по картинке может и работает)
-
Кто нибудь сталкивался с таким?
Нет не было, но бывают такие аномальные явления, скорее всего из за вспышек на солнце или фаза луны не та.
Исходник давай)
-
нее, это как раз несложная штука
и она не меняется, андроид это или айос
сервер вызывает google, google шлет пуш
интересует именно то, что делается на клиенте
сижу ковыряю
А что именно в клиенте? В статье есть регистрация токенов и принятие OnReciveNotification, в iOS Push сообщения поддерживает перенос строки через (#13#10) или если на сервере PHP генерируете, тогда через %0A, кстати в пуше можно слать полноценный JSON, который не выводится в шторку (текст сообщения выводится), Zuby делал такое.
-
А какая задача именно? Может лучше на ListView сделать? Если ListView подойдет могу скинуть ListViewHelper(Zuby), но только он под Delphi Seatle 10, не знаю подойдет ли к Seatle 10 Update 1.
-
На ListView будет достаточно сложно это реализовать.
Попробуйте TPresentedScrollBox и элементы стиля.
Вам необходимо фиксированные размеры панелек, например глобальные переменные
ObjectHeight := 205;
ObjectWidth := 160;
PanHeight := 200;
PanWidth := 148;
Затем вычислить количество колонок на FormResize, тоже глобальные пр.
procedure TForm_main.FormResize(Sender: TObject);
begin
PrColumns := Floor(Form_main.ClientWidth / ObjectWidth);
AllMargins := (Form_main.ClientWidth - (PrColumns * PanWidth)) / (PrColumns + 1);
end;
Процедура заполнения, здесь только создания панелей в скроллбоксе, я использовал обычный button в виде панельки
procedure TForm_main.LoadObject();
var
x, i: integer;
LT: TLayout;
Butt: TButton;
begin
x := 0;
for i := 0 to OBJ.Count - 1 do
begin
if x mod PrColumns = 0 then
begin
LT := TLayout.Create(PresentScrolBox);
LT.Parent := PresentScrolBox;
LT.Position.y := PresentScrolBox.ContentBounds.Height + 100;
LT.Align := TAlignLayout.Top;
LT.Height := ObjectHeight;
LT.HitTest := false;
end;
Butt:= TButton.Create(LT);
Butt.Parent := LT;
Butt.Position.x := LT.Width;
Butt.Height := PanHeight;
Butt.Width := PanWidth;
Butt.Align := TAlignLayout.Left;
Butt.Margins.Top := (ObjectHeight - PanHeight) / 2;
Butt.Margins.Bottom := (ObjectHeight - PanHeight) / 2;
Butt.Margins.Left := AllMargins;
Butt.StyleLookup := 'buttonx';
Butt.text := '';
Butt.tag := 55; //Пример
Butt.TextSettings.WordWrap := True;
Butt.OnTap := Form_main.ButObjTap;
{$IFDEF MSWINDOWS}
Butt.OnClick := Form_main.ButtObjectClick;
{$ENDIF}
Butt.OnApplyStyleLookup := Form_main.ObjectStyle;
x := x + 1;
end;
end;
LT := TLayout.Create(SB_Object);
LT.Parent := SB_Object;
LT.Position.y := SB_Object.ContentBounds.Height + 100;
LT.Align := TAlignLayout.Top;
LT.Height := 72;
end;
После создания заполнять данными необходимо в Butt.OnApplyStyleLookup := Form_main.ObjectStyle;
procedure TForm_main.ObjectStyle(Sender: TObject);
var
i: integer;
begin
for i := 0 to 9 do
if TButton(Sender).tag=i then
begin
TButton(TButton(Sender).FindStyleResource('btn_add')).tag := i;
// TButton(TButton(Sender).FindStyleResource('btn_add')).text := ‘+’;
TButton(TButton(Sender).FindStyleResource('btn_add')).OnClick := Form_main.But_Main_Add;
TText(TButton(Sender).FindStyleResource('text')).text := 'i = '+inttostr(i);
TText(TButton(Sender).FindStyleResource('obj_price')).text := ‘500’;
TImage(TButton(Sender).FindStyleResource('img')).Bitmap.Assign(Какой нибудь битмап);
break;
end;
end;
Желательно данные и картинки загрузить сперва в Record, затем заполнять их в OnApplyStyleLookup.
ХЗ может подойдет вариант, на слабых телефонах лагов не много, но и ListView на слабых подлагивает.
Как вариант старое наше с Zuby приложение по доставке еды Gepard, не судите строго мы его забросили): https://play.google.com/store/apps/details?id=kz.vbaze.Gepard
-
если требуется отобразить тиканье времени, каким образом производится обновление перерисовки итема ?
Нужен Timer и ListView
Например в ListView -> OnUpdateObjects
procedure TForm1.ListViewPoiskUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var aTime: TListitemText; begin aTime := AItem.Objects.FindDrawable('time') as TListitemText; if aTime = nil then begin aTime := TListitemText.Create(AItem); aTime.Name := 'time'; aTime.PlaceOffset.X := 0; aTime.PlaceOffset.Y := 2; aTime.Font.Size := 14; aTime.TextVertAlign := TTextAlign.Center; aTime.TextAlign := TTextAlign.Center; end; aTime.Width := 72; aTime.Height := 20; //Двигаем Text итема с отступом AItem.Objects.TextObject.PlaceOffset.X := aTime.Width + 6; end; И таймер procedure TForm1.Timer1Timer(Sender: TObject); var i: integer; begin if ListView1.ItemCount > 0 then for i := 0 to ListView1.ItemCount - 1 do ListView1.Items[i].Data['time'] := FormatDateTime('ss сек.', Now); end;
-
А мог бы уважаемый автор, или кто либо из скачавших выложить в другое место? На Яндексе - нет файла, на RGhost - файл не доступен. Заранее благодарю.
-
-
А у меня вчера, действительно эпопея), поэтому и создал тему что бы кто нибудь не разбил свой монитор, не качал бы образ Мака гигов под 40), не убил свои клетки нервные))
-
Добрый день, это просто стрессовая ночь без сна, как меня з..бал APPLE ((
Если кто то собирается выпускать сертификаты Apple (сертификаты разработчика или Push сертификаты), и начнет парится потому что сертификаты выпускаются просроченными, знайте что вы не виноваты)
Вообщем в маке в "Связке ключей" в меню "Вид" кликнете на "Показать скрытые сертификаты"
Далее в Связке "Система" найдите просроченный сертификат Apple и удалите его.
После чего с кабинета разработчика скачайте и установите новый сертификат, ссылка на скачивания есть при создания нового сертификата в самом низу. ((
Подробнее на
Извиняются...
-
Используйте
Судя по всему "решения из коробки" нет.
Будем писать костыли... но считаю что наличие такой возможности по умолчанию для TScrollBox было бы не лишним.
Спасибо за ответы.
Тема открыта, может кто-то сталкивался с такой ситуацией. Не ленитесь делится опытом и кодом тут.
Вам же написали, используйте OnTap прекрасно работает, не мешает при скроле.
Вы хотите сказать что это не костыль?
Какой же костыль)), костыль это при клике запускать таймер и если изменился фокус в течении секунды тогда что то делать, типа того, вот это костыль))
Tap - Нажатие
-
Используйте
Судя по всему "решения из коробки" нет.
Будем писать костыли... но считаю что наличие такой возможности по умолчанию для TScrollBox было бы не лишним.
Спасибо за ответы.
Тема открыта, может кто-то сталкивался с такой ситуацией. Не ленитесь делится опытом и кодом тут.
Вам же написали, используйте OnTap прекрасно работает, не мешает при скроле.
-
Неужели никак нельзя получить доступ к вложенным элементам? Просто стилем накидать проще, чем городить свой объект с прямым доступом к дочерним элементам.
----
Что самое интересное, в TStyledControl.FindStyleResource объект FResourceLink = nil.
Вот так все работает, но может я не понял вопроса
Желательно это делать в OnApplyStyleLookup данного объекта.
например если хотите заполнить стилевой текст или картинку:
Новый объект стиля TButton содержит TText, TLabel, TImage и TButton
procedure TForm_main.Button1ApplyStyleLookup(Sender: TObject);
beginTText(TButton(Sender).FindStyleResource('detail')).Text := 'Детали';TLabel(TButton(Sender).FindStyleResource('titul')).Text := 'Наименование';TImage(TButton(Sender).FindStyleResource('img')).Bitmap.Assign(BTMP);TButton(TButton(Sender).FindStyleResource('but_min')).Tag := 58;TButton(TButton(Sender).FindStyleResource('but_min')).OnClick := ButW_Min;end;Сделайте одну процедуру OnApplyStyleLookup и присвойте необходимым объектам.
Можно напрямую заполнять хоть откуда напримерTText(Button1.FindStyleResource('detail')).Text := 'Детали';но тогда страшные аномалии происходят если ваш объект находятся допустим в скролбоксе. -
Способов много, попробуйте например через ActionList, откройте пример на TabControl
Запустите студию -> Open Sample Project -> Samples\Object Pascal\Mobile Snippets\TabSliding
Запустил ради интереса этот пример. Если быстро двигать пальцем влево-вправо, приложение вылетает
Да согласен не лучший пример)), но для освоения работы жестов думаю подойдет для начала
-
Это косяк)
-
-
Если вам подойдет можете на MultiView1 ->OnHidden прописать
ListBox1.ItemIndex:=-1; -
Первое что пришло в голову в виде "бреда", точнее так уже сделали))
Но не знаю насколько вам подойдет такое решение.
У нас есть сервер базы данных, на сервере понятно есть все данные необходимые для печати, принтер настроен на сервере, на сервере есть служба которая мониторит базу (таблицу) в которой если появилась новая команда для печати тогда служба формирует документ из данных базы с использованием FastReport, и кидает на принтер по умолчанию для печати.
Сервер (а точнее комп Pentium DualCore, 2 gb RAM) на котором MySQL, Windows (хотя FastReport есть и для Linux (beta)) работает автономно уже 8-й месяц, и за это время не прикоснулись к нему ни разу (даже если честно очень странно)
-
ListBox1.ItemIndex:=-1;
-
Новые ключи, которые не предусмотрены опциями проекта, можно добавить (например) при помощи бесплатной утилиты iOS9 Fix от TMSSoftware
Спасибо, это то что надо!
-
попробовал я добавить, но нечего не вышло ошибку выдает когда указываю в Gestures жесты лево право таки дела=)
Способов много, попробуйте например через ActionList, откройте пример на TabControl
Запустите студию -> Open Sample Project -> Samples\Object Pascal\Mobile Snippets\TabSliding
и посмотрите вебинары от Embarcadero
https://www.youtube.com/channel/UCtqzKKPLL1uoI7yyCBmKP1w/videos
еще ведь есть компонент от Ярослава в составе FGX
TfgFlipView - слайдер изображений -
Может можно таким же способом добавить ключ?
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict>При добавлении получается:<key>NSAppTransportSecurity</key><string><dict><key>NSAllowsArbitraryLoads</key><true/></dict></string>ХЗ пройдет проверку или нет -
Такое же поведение наблюдается если включить на Iphone режим модема, и к Iphone подключить хотя бы одно устройство. Но пока понятия не имею что с этим сделать.
listBoxItem управление цветом
в Стилизация
Опубликовано · Изменено пользователем zairkz
На ListView скролл значительно лучше и без лагов, и вообще очень мощный компонент, все равно, рано или поздно вы откажетесь от ListBOX.
Кнопку можно разместить стандартным способам в настройках самой ListView. Если же вам нужно сто кнопок в одном Итеме, тогда да придется чуток заморочиться.
Во первых надо в настройках ListView в ItemAppearance включить ImageListItemBottomDetailRightButton.
Далее в ItemAppearanceObjects -> ItemObjects можете указывать любые настройки, через PlaseOffset.X - Y перемещать текст и детайл текст как хотите и куда хотите, тоже самое с картинкой и кнопкой, менять цвета и шрифты.
Можете повесить обработчик в свойствах на OnItemClick, а также нажатие на саму кнопку OnButtonClick.
При заполнении Item'ам присваивайте Tag и по ним ориентируйтесь.
Далее для покраски Item'ов подключите Хелпер Zuby(все таки не хелпер, а измененный исходник TListView) FMX.ListView.zip, пропишите пару процедур:
procedure myDefaultItemColor(const aLV: TListView; const aItemIndex: integer; const aUseCustomColor: Boolean = false);