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

ruslan

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

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

  • Посещение

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

    15

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

  1. fgActivityDialog.Show; // показываем Activity Request.ExecuteAsynch( procedure begin if not Request.Response.Content.IsEmpty then begin lv.beginupdate; // добавляем итемы lv.endupdate; fgActivityDialog.Hide; end end ); Не ?
  2. Как Вы думаете, к чему приведет выполнение следующего кода ? StartTime:= Now; while ( not Embarcadero.EOF ) or ( Embarcadero.Bugs.Count > 0 ) do begin Trolling; if MonthBetween(Now, StartTime) > 12 then Embarcadero.Destroy; end; if ( Embarcadero.Bugs.Count > 0 ) then begin while Embarcadero.Members.Count > 0 do Embarcadero.Members[0].Destroy; Mozg.Delete( Mozg.IndexOf('Delphi') ); end else exit;
  3. Запустите стандартный семпл CameraComponent -> Нажмите start -> потом stop -> сверните(!) приложение -> Запустите стандартное приложение Камера -> PROFIT !)
  4. 1) Спасибо за отклик. 2) Мне не нужен "свой провайдер". Я могу отправить пуш прямо на device_token. Вопрос в том, как мне "подписаться" на прием пушей. 3) в FMX.PushNotification.Android и так есть необходимый сервис для работы с GCM - TGCMPushService и в принципе, сделав gcm:= TGCMPushService.create; gcm.Register('мой app_id'); можно вытащить DeviceToken и это работает и я это знаю 4) Касается не только пушей Ну вот объясните мне: ЗАЧЕМ описывать типы в implementation ?? ну ЗАЧЕМ ? Из-за этого нельзя унаследоваться от типа, нельзя устранять "баги", потому что эти "баги" задействуют private\protected члены, к которым не получить доступ ни через class-хелперы, ни как по другому. Приходится тупо копи-пастить в новый юнит и там править баги, наследоваться и т.п. Тот же самый баг с камерой, кот. не исправляется еще с XE<хз_какой_старой> , исправляется ОДНОЙ строкой кода. Но нет же, нужно все "прятать" в implementation, что б пытливые программеры не лезли куда не нужно и не трогали "наши баги". Может я чего-то конечно не понимаю, но вот какой вообще смысл объявлять типы в implementation, а не как все белые люди ? Че-то меня опять понесло... А если по теме, то идеально конечно было бы пригласить в топик человека, который писал "систему" push-уведомлений. Думаю он смог бы многое пояснить. Мне кажется очень многих разработчиков волнует вопрос приема\отправки push'ей, т.к. это единственный(поправьте если не прав) способ гарантированно уведомить юзера о каких-то событиях\обновлениях даже если андроид убил приложение. Не в смысле спамить всякую ересь, а реально если логика приложения сильно завязана на работу с БД, взаимодействие юзеров, таски там всякие, обмен сообщениями, и сложную корпоративную бизнес-логику. Опять понесло... Тема очень актуальная уже для нескольких разрабов, которые рискнули начать фаирманчить под десктоп\иос\андроид. Поправьте если что не так пишу\понимаю\делаю Заранее спасибо за помощь
  5. ruslan

    Push в Android

    День добрый. Прошу совета. Необходимо реализовать получение push-сообщений на андроиде. Присутствует следующее: - проект в Google Console. Имеются project id и project number; - клиентское приложение на FM - работающий ruby-скрипт,который можно привязать к любому AppID, способный отправлять пуши через GCM(Google Cloud Messanging) на конкретный device_token и доказавший свою корректную работу. Про стандартные BAaS, вроде Kinvey и Parse, кот. раздают СВОИ token'ы слышал -> смотрел -> делал -> не понравилось. Мне не нужен чужой промежуточный не дешевый AppServer только для отправки push-уведомлений. И так, каким образом я могу реализовать регистрацию устройства напрямую в GCM, получить оттуда DeviceToken, и подписаться на push'и. P.S. Дай бог здоровья человеку, который знает решение данного вопроса и готов им поделится !
  6. Да незачто.. Просто после фразы "не добавляет новые свойства для TlistviewItem, а только управляет ими" я подумал что у меня крыша едет..
  7. Гляньте сэмплы по ListView. Там был пример создание своего ItemApperance для TlistviewItem, в котором вроде добавляли дополнильно 3 detail, кот. были видны через биндинг
  8. Если через биндинг в дизайне, то, по-моему, только делать свой компонент наследник от TListBoxItem плюс наследника от TListBox. Вроде через биндинг у дизайне доступны именно published свойства...
  9. да похоже пора создавать раздел "заказы". описывайте конкретную проблему , а не "напишите мне программу"
  10. Чистая винда + ide + мелочь, которая НИКОГДА не тормозила. Сторонних либ нетузаисклюяением fgx от Бровина. Пунто никогда не пользоввлся
  11. ruslan

    Почему...

    День добрый. Уважаемые разработчики, объясните мне, тупому человеку: 1) откуда постоянные подвисания среды при простейших операциях, таких как: ввод текста, F12, Ctrl + Click. причем подвиснуть может как на 1 секунду, так и на целую минуту. Причем не факт, что отвиснет 2) почему очень часто крашится компиляция проектов под мобильные платформы с кодом ошибки что-то типа AV-xxxxxxxxx. Помогает только перезапуск среды 3) почему при нажатии F9 среда может намертво зависнуть 4) почему в самый непредсказуемый момент среда может тупо зависнуть и через пару секунд (а то и минут) винда может выдать "Работа программы завершена" 5) почему автодополнение кода часто не работает, или сильно глючит. 6) почему иногда при открытии юнита начинает бешано сжираться оперативная память. Bds.exe с 400мб может резко съесть + 600мб - 1 гб П.с. вирусов нет, железо добротное, криворукостью вроде не страдаю
  12. ruslan

    Автоселкт в TreeView

    День добрый. Может ли кто-нить подсказать, каким образом можно отключить выделение итема в TreeView при прокрутке на мобильном девайсе. Т.е. я пытаюсь листать вниз, и на каждое тыкание пальцам выделяется контрол под ним. В листбоксе и листвьюве ничего не выделяется Спасибо.
  13. Столкнулся с таким вот "нюансиком". Нужно было программно прокручивать скроллбокс в самый низ. Логично было бы делать так: ScrollBox1.ScrollBy(0, ScrollBox1.ContentBounds.Height * -1 ); т.е. как бы скроллить вниз на величину равную высоте контента. Результат: скролит вниз, НО не до конца. не "докручивает" примерно пикселей 50-80; В результате родилось вот такое вот "прости господи" решение: TVertScrollBox_Helper = class helper for TVertScrollBox procedure Scroll_Down; end; procedure TVertScrollBox_Helper.Scroll_Down; begin // здесь vScrollBar.Value = 0, vScrollBar.Max = 4500; vScrollBar.Value:= vScrollBar.Max; // здесь vScrollBar.Value = 3800, vScrollBar.Max = 4500; Application.ProcessMessages; // без этого никак не хочет. т.е. даем скроллбоксу "глюкануть" vScrollBar.Value:= vScrollBar.Value + 100; // поправляем "недостачу" // здесь уже все норм end; так вот хотелось спросить: это баг, фича, или багофича ?) п.с. может и я олень чегото непонял. обясните пожалуйсто
  14. на XE7 тоже самое прикладываю видос п.с. посмотрите в замедленном режиме Video.zip
  15. у меня все так и осталось. стоит win7 x64. Delphi xe6 завтра поставлю xe7 . проверю п.с. моргание однократное . такое ощущение что форма стилизуется только на OnShow
  16. День добрый. Прошу помощи. в .dpr файле загружаю стиль из ресурсов таким вот образом: var Style: TFMXObject; S_Name: string; begin Style := nil; {$IFDEF MSWINDOWS} S_name:= 'skin_Jet'; {$ENDIF} if S_Name <> '' then Style := TStyleManager.LoadFromResource(HInstance, S_Name, RT_RCDATA); if Style <> nil then TStyleManager.SetStyle(Style); Application.Initialize; Application.CreateForm(TDM, DM); // Application.CreateForm(TfMain, fMain); Application.Run; end. затем при создании датамодуля создаю форму авторизации и вешаю на нее фрейм: procedure TDM.DataModuleCreate(Sender: TObject); var f_LoginForm: TForm; // пустая форма авторизации для фрейма begin Init_Settings; // загрузка настроек Set_REST_Params; // установка параметров REST-компонентов Settings.Load_U_Props; // читаем параметры юзера fr_Login:= Tfr_Login.Create(Application); // фрейм с контролами авторизации f_LoginForm := TForm.CreateNew(Self); // создаем форму авторизации f_LoginForm.Border.Styling := true; // стилизуем бордюры f_LoginForm.Width := Round(fr_Login.Width ) + 30; // подстраиваем размеры формы под фрейм f_LoginForm.Height := Round(fr_Login.Height) + 30; f_LoginForm.Position := TFormPosition.ScreenCenter; // по центру экрана f_LoginForm.FormStyle := TFormStyle.StayOnTop; // поверх окон f_LoginForm.BorderStyle:= TFmxFormBorderStyle.Single; fr_Login.Parent := f_LoginForm; // фрейм - на форму fr_Login.Align := TAlignLayout.Client; fr_Login.Visible:= true; fr_Login.ed_Username.Text := Settings.USER_Props.U_Name; // пользователь fr_Login.ed_Password.Text := Settings.USER_Props.U_Pass; // пароль fr_Login.cb_Save.IsChecked:= Boolean(Settings.USER_Props.U_DoSave); // признак сохранения try fr_Login.ed_Username.SetFocus; // фокус на "Пользователь" Logon_Info.isError:= true; f_LoginForm.ShowModal; // !!!!!!!! finally if f_LoginForm.ModalResult = mrOk then // если залогинился begin f_LoginForm.Free; fMain:= TfMain.Create(Application); // главная форма fMain.Show; end else Application.Terminate; // закрываемся end; end; и вот. на f_LoginForm.ShowModal; форма показывается и есть мерцание. т.е. она не сразу стилизована. сначала виден дефолтный стиль(буквально пол секунды) а потом тот который я подключил перед Application.Initialize мот я что-то делаю не правильно ? подскажите, а то мерцание глаз мозолит. Спасибо p.s. использую Delphi XE6. без Upd1 вот прикрепляю. в .dpr файле подгружаю стиль из ресурсов. при показе формы - моргание test_proj.zip
×
×
  • Создать...