-
Постов
2 517 -
Зарегистрирован
-
Посещение
-
Победитель дней
264
Весь контент Равиль Зарипов (ZuBy)
-
если выбрать правильные инструменты, то возможно. FMX + сервак + PHP (или любой серверный язык) всю работу с БД и с картами (такие как запросы геокодинга и прочие ssl запросы на другие сайты) на PHP, а клиент-приложение только в виде отображения контента. и можно делать не только одноформенные приложения, а сложные
-
в таких случаях называют всегда на английском, программно никак не поменять. и манифест не поможет. а в маркете можно указать нескольок языков с описанием
-
так его там и нету, используйте вот этот запрос wchar_t* ss=(L"SELECT Description,MACAddress,IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE"); вернётся Mac/IP адрес
-
почитайте тут http://stackoverflow.com/questions/20062151/c-builder-wmi-invalid-query
-
OFFTOP: то что хранится в программе можно вытащить, заменить в реестре на это значение обход защиты не обсуждаем, не превращайте тему в свалку
-
Мы не злые, ответили на ваш вопрос. Нет смысла дублировать ответы, если на них уже даны исчерпывающие ответы. Переходим по ссылкам и читаем, там все написано
-
уже дал ответ выше WMI поддерживается с Windows Vista, для ранних версии нужно что нить другое думать (если вообще есть смысл)
-
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]));
-
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);
-
меняет конечно, это совсем разные компоненты. ничего общего у них 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/
-
это не TListView, а TListBox и почитайте на форуме про стили
-
вот так ListBox1.InsertObject(ListBox1.Count-1, aItem);
-
Вы смотрели компонент, который я написал? Аналогично нужно сделать, только используя JPhoneStateListener
- 12 ответов
-
- delphi
- SignalStrength
-
(и ещё 1 )
C тегом:
-
Посмотрите как сделано у меня в DeviceInfo, это не скорость интернета, а тип сети. У меня там разбито сразу правильно, что к чему относится
- 12 ответов
-
- delphi
- SignalStrength
-
(и ещё 1 )
C тегом:
-
я пробовал прикрутить событие делфовое, пока не получилось. нужно посидеть чуть дольше, почитать. у Ярослава в компоненте есть такое "присваивание", посмотрите 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;
- 12 ответов
-
- delphi
- SignalStrength
-
(и ещё 1 )
C тегом:
-
Нужно не только обновить/установить приложение, но и зарегистрировать ваш токен для получения уведомлений
-
использовать специальное событие это костыль? на windows это событие не отловить, т.к. это для мобильных платформ
- 21 ответ
-
- scrollbox
- запрет нажатия
- (и ещё 1 )
-
убрать [Ref]
-
для мобильных устройств есть специальное событие OnTap в случае с комбобокс оно не поможет а вот для кнопок самое то
- 21 ответ
-
- scrollbox
- запрет нажатия
- (и ещё 1 )
-
подсказка на будущее 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);
-
наверное еще подключить нужно IPPeerClient
-
все общение через Intent, смотрите внимательней демо-проекты.
-
через интент передать основной и там вызвать, в демо-проекте вроде четко показано как нужно делать
- 10 ответов
-
- NotificationCenter
- Notification
-
(и ещё 2 )
C тегом: