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

Pavel M

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

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

  • Посещение

Весь контент Pavel M

  1. Спасибо. Меня интересует именно уровень приема от вышки (не тип или скорость интернета). А больше интересует как где рашририть свои знания как пользоваться сайтом android.developer - покупать книжку по программам под студию, изучить и тогда пытаться на родном Delphi?
  2. Как получить уровень приема сотовой сети? Google пользоваться умею, а вот отсутствие опыта дает о себе знать. Буду благодарен за ссылки, что почитать для общего понятия написания по android c учетом специфики Delphi. Нашел: TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); int dbm = 0; if ( tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE){ dbm = Integer.parseInt(parts[8])*2-113; } else{ if (signalStrength.getGsmSignalStrength() != 99) { int intdbm = -113 + 2 * signalStrength.getGsmSignalStrength(); dbm = Integer.toString(intdbm); } } Вот что пытаюсь сделать: function GetLevel: string; var TelephonyObj: JObject; TelephonyManager: JTelephonyManager; Listner: JPhoneStateListener; begin TelephonyObj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); TelephonyManager := TJTelephonyManager.Wrap((TelephonyObj as ILocalObject).GetObjectID); Listner := TelephonyManager.listen(Listner, 2); result := JStringToString(Listner.toString); //ПОЛАГАЮ ПОЛУЧУ НАЗВАНИЕ КОМПОНЕНТА ВМЕСТО РЕЗУЛЬТАТА??? )) end; Пытаюсь и вот так function GetSim1Level: integer; var TelephonyObj: JObject; TelephonyManager: JTelephonyManager; cellinfogsm: JCellInfoGsm; CellSignalStrengthGsm: jcellSignalStrengthGsm; Level: integer; begin TelephonyObj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); TelephonyManager := TJTelephonyManager.Wrap((TelephonyObj as ILocalObject).GetObjectID); cellinfogsm:= (TelephonyManager.getAllCellInfo.get(0) as JCellInfoGsm); CellSignalStrengthGsm := cellinfogsm.getCellSignalStrength(); Result := cellSignalStrengthGsm.getLevel; end; В на выходе конечно же получаю ошибку... Как я понимаю тут надо создать какой то ресивер? Он используется постоянно и вызываетя при событии описываемой в Delphi процедурой? Или к нему разовый доступ и получение текущей информации при обращении к его свойствам? Прошу больше помочь не готовым кодом, а что почитать. Поскольку есть желание понять.
  3. Ещё актуально. Почему ListBoxItem переносится в TreeView? Можно конечно делать в TFormMain.TreeRazdelDragDrop костыль (Data.Source as TListBoxItem).Visible := False; но это же не выход?
  4. Добрый день! TreeRazdel (TTreeView) отражает разделы с подкатегориями ListDocs (TListBox) отражает элементы выбранной категории Необходимо перемещение элементов ListDocs по категориям (с изменениями в БД) Включаю AllowDrag для ListDocs и TreeRazdel. procedure TFormMain.TreeRazdelDragDrop(Sender: TObject; const [Ref] Data: TDragObject; const [Ref] Point: TPointF); begin if Data.Source is TListBoxItem then begin idRazdel := TreeRazdel.ItemByPoint(Point.X,Point.Y).Tag; idDocs := (Data.Source as TListBoxItem).Tag; //(Data.Source as TListBoxItem).Free; - ДАЁТ ОШИБКУ if (idRazdel > 0) and (idDocs >0) then MoveDocs(idDocs, idRazdel); //процедура перемещения элемента в другой раздел end; end; Проблемы: 1) Элементы ListBox реально переносятся в TTreeView (как их сразу же уничтожать?) 2) При перемещении в свободное место TTreeView (не в категорию) - ошибка 3) При включении у TTreeView DragMode := dmAutomatic не возможно выбрать его элементы.
  5. Надо использовать Self.DataSet.FieldByName('Фамилия').Text
  6. Вывожу в ListBox содержимое таблицы. В основной текст хочу вывести 3 поля, а в заголовок Lookup значение (таблицы-справочника). Для Item.Text выставляю CustomFormat: Owner.FieldByName('Фамилия').Text+' '+Owner.FieldByName('Имя').Text+' '+Owner.FieldByName('Отчество').Text ПОКА ВСЁ РАБОТАЕТ НОРМАЛЬНО Показывает список как надо - полные "Фамилия Имя Отчество" для каждой записи. Если на Header забросить поле ID_должность (числовое) оно прекрасно отображается в ListBox. Но задача привязать значение из справочника. Как только добавляю дополнительное поле Lookup в таблицу (TFDQuery->Fields Editor->New field->Lookup ... ) у меня перестает работать ФИО - выдает значение "()" т.е. как только я добавляю поля или создаю новые весь LiveBindings теряет доступ к Self.Owner.FieldByName(....) . если в CustomFormat написать: %s+' '+Owner.FieldByName('Имя').Text+' '+Owner.FieldByName('Отчество').Text Выводит: "Фамилия ()" Как обращаться к полям в CustomFormat когда они добавление через Fields editor?
  7. Пытаюсь познакомиться с FMX и найти как исполнить то что на VCL было очень просто: (база mdb) Добавлял DBGrid подключал источником таблицу, одно поле создавал вручную (отражал его на гриде - в нем Lookup подгружал текстовые названия из другой таблицы, связаны по ID) в итоге при редактировании прямо на гриде выпадающий комбобокс. Выбирам из него текстовые данные и в начальной таблице прекрасно менялся числовой ID хотя визуально выбираешь текст из второй таблицы. В FMX подключил отражение таблицы на Grid через LiveBindings так же создал поле lookup из второй таблице, ID скрыл. НО ни какого ComboBox конечно же нет, и редактировать это поле я вообще не могу. Я думаю надо делать отдельный комбобокс но как показывать текст из справочника (второй таблицы), а передать ID в первую? Я понимаю что можно ручками, событиями и SQL..., а можно ли это сделать LiveBindings без тонн кода?
×
×
  • Создать...