Лидеры
Популярный контент
Показан контент с высокой репутацией 25.03.2016 во всех областях
-
Как включать/отключать звук и вибрацию?
Alex7wrt и ещё один отреагировал AndroidHalfNoob за вопрос
вот еще не большой пример. например приложение свернуто и есть NotificationCenter. Пришло уведомление и было бы неплохо оповестить пользователя вибрацией. в Edit1.Text вставляем длительность вибрации. 1000 = 1сек.2 балла -
Хм... Сам задал вопрос и сам же на него отвечаю... Нашёл ещё один вариант: Импортировал несколько методов из Carbon.framework и всё получилось: uses Macapi.CocoaTypes, Macapi.ObjCRuntime, Macapi.CoreFoundation, Macapi.CoreServices; const HITFwk = '/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/HIToolbox'; type EventParamName = OSType; EventParamNamePtr = ^EventParamName; EventParamType = OSType; EventParamTypePtr = ^EventParamType; EventRef = ^SInt32; EventRefPtr = ^EventRef; EventHotKeyIDPtr = ^EventHotKeyID; EventHotKeyID = record signature: OSType; id: UInt32; end; EventTypeSpec = record eventClass: OSType; eventKind: UInt32; end; EventTypeSpecPtr = ^EventTypeSpec; EventTargetRef = ^SInt32; EventHotKeyRef = ^SInt32; OptionBits = UInt32; ByteCountPtr = ^ByteCount; EventHandlerRef = ^SInt32; EventHandlerRefPtr = ^EventHandlerRef; EventHandlerCallRef = ^SInt32; EventHandlerCallRefPtr = ^EventHandlerCallRef; type EventHandlerProcPtr = function(inHandlerCallRef: EventHandlerCallRef; inEvent: EventRef; inUserData: Pointer): OSStatus; cdecl; EventHandlerUPP = EventHandlerProcPtr; const kEventHotKeyNoOptions = ; kEventHotKeyExclusive = 1 shl ; kEventRawKeyDown = 1; kEventRawKeyRepeat = 2; kEventRawKeyUp = 3; kEventRawKeyModifiersChanged = 4; kEventHotKeyPressed = 5; kEventHotKeyReleased = 6; kEventClassKeyboard: UInt32 = Ord('k') shl 24 + Ord('e') shl 16 + Ord('y') shl 8 + Ord('b'); typeEventHotKeyID: UInt32 = Ord('h') shl 24 + Ord('k') shl 16 + Ord('i') shl 8 + Ord('d'); typeWildCard: UInt32 = Ord('*') shl 24 + Ord('*') shl 16 + Ord('*') shl 8 + Ord('*'); kEventParamDirectObject: UInt32 = Ord('-') shl 24 + Ord('-') shl 16 + Ord('-') shl 8 + Ord('-'); const cmdKeyBit = 8; { command key down?} shiftKeyBit = 9; { shift key down?} optionKeyBit = 11; { option key down?} controlKeyBit = 12; { control key down?} cmdKey = 1 shl cmdKeyBit; shiftKey = 1 shl shiftKeyBit; optionKey = 1 shl optionKeyBit; controlKey = 1 shl controlKeyBit; // in version 10.0 and later in Carbon.framework function GetApplicationEventTarget: EventTargetRef; cdecl; external HITFwk name _PU + 'GetApplicationEventTarget'; {$EXTERNALSYM GetApplicationEventTarget} // in version 10.0 and later in Carbon.framework function InstallEventHandler(inTarget: EventTargetRef; inHandler: EventHandlerUPP; inNumTypes: UInt32; {const} inList: {variable-size-array} EventTypeSpecPtr; inUserData: Pointer; outRef: EventHandlerRefPtr { can be NULL } ): OSStatus; cdecl; external HITFwk name _PU + 'InstallEventHandler'; {$EXTERNALSYM InstallEventHandler} // in version 10.0 and later in Carbon.framework function RemoveEventHandler( inHandlerRef: EventHandlerRef ): OSStatus; cdecl; external HITFwk name _PU + 'RemoveEventHandler'; {$EXTERNALSYM RemoveEventHandler} // in version 10.0 and later in Carbon.framework function RegisterEventHotKey(inHotKeyCode: UInt32; inHotKeyModifiers: UInt32; inHotKeyID: EventHotKeyID; inTarget: EventTargetRef; inOptions: OptionBits; var outRef: EventHotKeyRef): OSStatus; cdecl; external HITFwk name _PU + 'RegisterEventHotKey'; {$EXTERNALSYM RegisterEventHotKey} // in version 10.0 and later in Carbon.framework function UnregisterEventHotKey(inHotKey: EventHotKeyRef): OSStatus; cdecl; external HITFwk name _PU + 'UnregisterEventHotKey'; {$EXTERNALSYM UnregisterEventHotKey} // in version 10.0 and later in Carbon.framework function GetEventParameter(inEvent: EventRef; inName: EventParamName; inDesiredType: EventParamType; outActualType: EventParamTypePtr { can be NULL }; inBufferSize: ByteCount; outActualSize: ByteCountPtr { can be NULL }; outData: Pointer { can be NULL } ): OSStatus; cdecl; external HITFwk name _PU + 'GetEventParameter'; {$EXTERNALSYM GetEventParameter}2 балла
-
Обновление форума
Alex7wrt отреагировал Brovin Yaroslav за тема
Добрый вечер, уважаемые форумчане, Вместе с Андреем Ефимовым мы проделали огромную работу, чтобы сделать наш форум еще удобнее и лучше, а так же решить ряд проблем, возникших в недавнее время. Работа над технической составляющей форума закончена. Однако, работа над структуризацией и модерированием тем начинается, чтобы сделать форум еще удобнее и эффективнее в решении ваших задач. Основные нововведения Быстрый вход. Использование нескольких систем входа на сайт (VK, Facebook, Google, Microsoft, Linked-In, Twitter) Введение нового формата ответов: Вопрос/Ответ. Теперь при вводе вопроса, ценится полнота и исчерпанность ответа. Это, возможно, потребует изменение структуры форума, чтобы разделять вопросы от обсуждений. Пока этот формат в процессе оценки. Мгновенные оповещения. Поддержка оповещений браузером. Теперь, если ваш браузер открыт, а форум закрыт, то при получении сообщения или новых ответов в ваших темах, вы получите системное уведомление.1 балл -
Клик сразу после прокрутки
Lem0nti отреагировал Равиль Зарипов (ZuBy) за вопрос
для мобильных устройств существует специальное событие OnTap1 балл -
AndroidManifest.template видимо не правили.Добавьте Перед <activity> <meta-data android:name="com.google.android.gms.version" android:value="4323000"/> После </activity> <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> Должно помочь. Вот тут можете посмотреть.1 балл
-
Ещё в AppKit.framework у NSEvent есть такой метод как addGlobalMonitorForEventsMatchingMask. Может кто использовал?1 балл
-
Как изменить картинку маркеру?
Rusland отреагировал AndroidHalfNoob за вопрос
пришел домой. запустил код Descrip := TMapMarkerDescriptor.Create(Position); Descrip.Icon:=ImageList1.Source[0].MultiResBitmap.Items[0].Bitmap; MapView1.AddMarker(Descrip); и все работает. все таки на работе 8-ка глючная.1 балл -
Как включать/отключать звук и вибрацию?
azm_ezm_ivan отреагировал Rusland за вопрос
Ну и узнать режим звонка можно так: function GetRingerMode():integer; var AudioObj: JObject; Audio: JAudioManager; begin AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); Audio:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); Result:=Audio.getRingerMode; // 0 - silent, 1 - vibrate, 2 - normal end;1 балл -
Народ, что с вами? Сколько уже вопросов без ответов... все самому приходится разбирать Вот написал процедурку переключения режимов в Андроид, пользуйтесь на здоровье: uses Androidapi.JNIBridge, Androidapi.Helpers, AndroidApi.JNI.Media, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.App, Androidapi.JNI.JavaTypes; procedure RingerMode(Mode:integer); var AudioObj: JObject; AudioMng: JAudioManager; begin AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); AudioMng:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); case Mode of 0: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_SILENT); 1: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_VIBRATE); 2: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL); else AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL); end; end;1 балл
-
[Android] Не получается увеличить высоту TProgressBar
Kitty отреагировал Brovin Yaroslav за вопрос
По умолчанию, каждая платформа определяет свои правила оформления пользовательского интерфейса, согласно Руководству пользовательского интерфейса Андроида TProgressBar не может быть по высоте другого размера. Поэтому стиль андроид платформы в Firemonkey запрещает изменять высоту некоторых контролов, в том числе TProgressBar. Аналогичная ситуация в Eclipse для андроида. Там также нельзя менять для этого компонента его высоту. Фиксация размера происходит путем сохранения в стиле свойств FixedHeight и FixedWidth (не доступного в дизайнере). Если эти свойства больше 0, значит контрол будет иметь фиксированный размер. Решение Если вы вдруг захотели нарушить стандарты, рекомендованные Google по оформлению UI, вы можете сделать следующее: 1. Открыть BitmapStyleDesigner (находится в папке bin студии bin\BitmapStyleDesigner.exe) 2. В выпадающем списке первой кнопки на панели инструментов Создать новый стиль (светлый или темный) для платформы андроид. Редактор автоматически создаст вам стандартный стиль для андроида. 3. Сохранить стиль для Firemonkey. В диалоге сохранения выбрать тип файла "FireMonkey Style (*.style)" 4. Открыть сохраненный файл стиля в текстовом редакторе и найти в нем стиль TProgressBar - "progressbarstyle". 5. Удалить из стиля строчку: FixedHeight = 10 6. Сохранить стиль и загрузить файл стиля в TStyleBook. Теперь для TProgressBar можно менять высоту. Однако, учтите, что стили для Андроид и iOS растровые. Это значит, что при растровое исходное изображение прогресс бара рассчитано на высоту в 10 пикселей и при увеличении высоты, вы потеряете качество отрисовки прогресс бара (смотрите рисунок выше).1 балл