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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    264

Весь контент Равиль Зарипов (ZuBy)

  1. если выбрать правильные инструменты, то возможно. FMX + сервак + PHP (или любой серверный язык) всю работу с БД и с картами (такие как запросы геокодинга и прочие ssl запросы на другие сайты) на PHP, а клиент-приложение только в виде отображения контента. и можно делать не только одноформенные приложения, а сложные
  2. в таких случаях называют всегда на английском, программно никак не поменять. и манифест не поможет. а в маркете можно указать нескольок языков с описанием
  3. Каким инструментом хотите пользоваться для воспроизведения?
  4. так его там и нету, используйте вот этот запрос wchar_t* ss=(L"SELECT Description,MACAddress,IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE"); вернётся Mac/IP адрес
  5. почитайте тут http://stackoverflow.com/questions/20062151/c-builder-wmi-invalid-query
  6. OFFTOP: то что хранится в программе можно вытащить, заменить в реестре на это значение обход защиты не обсуждаем, не превращайте тему в свалку
  7. Мы не злые, ответили на ваш вопрос. Нет смысла дублировать ответы, если на них уже даны исчерпывающие ответы. Переходим по ссылкам и читаем, там все написано
  8. уже дал ответ выше WMI поддерживается с Windows Vista, для ранних версии нужно что нить другое думать (если вообще есть смысл)
  9. procedure GetWMIInfo(mem: TMemo); // uses Winapi.ActiveX, System.Win.ComObj; const wbemFlagForwardOnly = $00000020; var FSWbemLocator: OLEVariant; FWMIService: OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject: OLEVariant; oEnum: IEnumvariant; iValue: LongWord; begin FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); FWbemObjectSet := FWMIService.ExecQuery('Select * from Win32_MotherboardDevice', 'WQL', wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin if not VarIsNull(FWbemObject.DeviceID) then mem.Lines.Add(VarToStr(FWbemObject.DeviceID)); if not VarIsNull(FWbemObject.PrimaryBusType) then mem.Lines.Add(VarToStr(FWbemObject.PrimaryBusType)); if not VarIsNull(FWbemObject.SecondaryBusType) then mem.Lines.Add(VarToStr(FWbemObject.SecondaryBusType)); FWbemObject := Unassigned; end; end; что вы там собрались брать? Результат: я могу вам предложить вот такой вариант замените этими строками код выше, вы получите все устройства доступные на ПК FWbemObjectSet := FWMIService.ExecQuery('Select * from CIM_LogicalDevice', 'WQL', wbemFlagForwardOnly); ......... if not(VarIsNull(FWbemObject.Name) and VarIsNull(FWbemObject.DeviceID)) then mem.Lines.Add(VarToStr(FWbemObject.Name) + ' - ' + VarToStr(FWbemObject.DeviceID)); или использовать защиту по MAC адресу FWbemObjectSet := FWMIService.ExecQuery ('SELECT Description,MACAddress,IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE', 'WQL', wbemFlagForwardOnly); .............. if not(VarIsNull(FWbemObject.MacAddress) and VarIsNull(FWbemObject.IpAddress)) then mem.Lines.Add(VarToStr(FWbemObject.MacAddress) + ' - ' + VarToStr(FWbemObject.IpAddress[0]));
  10. ShowLoad; TTask.Run( procedure begin case Btn.Id of BACK_TO_MENU_TYPES: Self.ShowMenuTypes; BACK_TO_MENU: Self.LoadMenu(Global.CURRENT_MENU); BACK_TO_PREV_FOLDER: Self.OpenMenuFolder(Btn.OpenFolder); OPEN_MENU: Self.LoadMenu(Btn.OpenFolder); OPEN_FOLDER: Self.OpenMenuFolder(Btn.OpenFolder); OPEN_TRADE_POSITION: Self.OpenTradePosition(Btn); end; TThread.Synchronize(nil, procedure begin // тут разбираем даные пришедшие с БД HideLoad; end); end); я правда не понимаю что происходит в этих процедурах, но там должно быть только получение данных. т.е. выполниться сам запрос в БД. а отрисовка/работа с визуальными компонентами должна произойти в этом блоке TThread.Synchronize(nil, procedure begin // тут разбираем даные пришедшие с БД HideLoad; end);
  11. меняет конечно, это совсем разные компоненты. ничего общего у них http://fire-monkey.ru/forum/146-stilizatciia/ http://fire-monkey.ru/topic/2280-sobstvennyi-tlistboxitem-na-c/ http://fire-monkey.ru/topic/1456-tlistbox-kak-otobrazit-itemy-v-vide-panelei/
  12. это не TListView, а TListBox и почитайте на форуме про стили
  13. вот так ListBox1.InsertObject(ListBox1.Count-1, aItem);
  14. Вы смотрели компонент, который я написал? Аналогично нужно сделать, только используя JPhoneStateListener
  15. Посмотрите как сделано у меня в DeviceInfo, это не скорость интернета, а тип сети. У меня там разбито сразу правильно, что к чему относится
  16. я пробовал прикрутить событие делфовое, пока не получилось. нужно посидеть чуть дольше, почитать. у Ярослава в компоненте есть такое "присваивание", посмотрите FGX.ActionSheet.Android.pas TfgActionSheetListener = class(TJavaLocal, JDialogInterface_OnClickListener) private FOnButtonClicked: TfgNotifyButtonClicked; public constructor Create(const AOnButtonClicked: TfgNotifyButtonClicked); { JPopupMenu_OnMenuItemClickListener } procedure onClick(dialog: JDialogInterface; which: Integer); cdecl; end;
  17. Нужно не только обновить/установить приложение, но и зарегистрировать ваш токен для получения уведомлений
  18. использовать специальное событие это костыль? на windows это событие не отловить, т.к. это для мобильных платформ
  19. для мобильных устройств есть специальное событие OnTap в случае с комбобокс оно не поможет а вот для кнопок самое то
  20. подсказка на будущее 1) кидаем компонент на форму 2) откомпилим 3) смотрим какие модули добавились (правда не все нужны, но методом тыка убираем ненужные) важный блок в таких модулях initialization, там обычно регистрируются сервисы и прочие плюшки для работы. ошибка показала что у вас не инициализировались нужные интерфейсы initialization PeerFactory.RegisterPeer(IPImpId, IIPHTTP, TIdHTTPPeer); PeerFactory.RegisterPeer(IPImpId, IIPTCPClient, TIdTCPClientPeerIP); PeerFactory.RegisterPeer(IPImpId, IIPBasicAuthentication, TIdBasicAuthenticationPeer); PeerFactory.RegisterPeer(IPImpId, IIPURI, TIdURIPeerFactory); PeerFactory.RegisterPeer(IPImpId, IIPHashMessageDigest5, TIdHashMessageDigest5Peer);
  21. наверное еще подключить нужно IPPeerClient
  22. все общение через Intent, смотрите внимательней демо-проекты.
  23. через интент передать основной и там вызвать, в демо-проекте вроде четко показано как нужно делать
×
×
  • Создать...