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

Лидеры

  1. dnekrasov

    dnekrasov

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


    • Баллы

      3

    • Постов

      317


  2. AndroidHalfNoob

    AndroidHalfNoob

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


    • Баллы

      3

    • Постов

      290


  3. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      2

    • Постов

      2 124


  4. Rusland

    Rusland

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


    • Баллы

      2

    • Постов

      1 204


Популярный контент

Показан контент с высокой репутацией 25.03.2016 во всех областях

  1. вот еще не большой пример. например приложение свернуто и есть NotificationCenter. Пришло уведомление и было бы неплохо оповестить пользователя вибрацией. в Edit1.Text вставляем длительность вибрации. 1000 = 1сек.
    2 балла
  2. dnekrasov

    Глобальные хоткеи в OS X

    Хм... Сам задал вопрос и сам же на него отвечаю... Нашёл ещё один вариант: Импортировал несколько методов из 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 балла
  3. Brovin Yaroslav

    Обновление форума

    Добрый вечер, уважаемые форумчане, Вместе с Андреем Ефимовым мы проделали огромную работу, чтобы сделать наш форум еще удобнее и лучше, а так же решить ряд проблем, возникших в недавнее время. Работа над технической составляющей форума закончена. Однако, работа над структуризацией и модерированием тем начинается, чтобы сделать форум еще удобнее и эффективнее в решении ваших задач. Основные нововведения Быстрый вход. Использование нескольких систем входа на сайт (VK, Facebook, Google, Microsoft, Linked-In, Twitter) Введение нового формата ответов: Вопрос/Ответ. Теперь при вводе вопроса, ценится полнота и исчерпанность ответа. Это, возможно, потребует изменение структуры форума, чтобы разделять вопросы от обсуждений. Пока этот формат в процессе оценки. Мгновенные оповещения. Поддержка оповещений браузером. Теперь, если ваш браузер открыт, а форум закрыт, то при получении сообщения или новых ответов в ваших темах, вы получите системное уведомление.
    1 балл
  4. для мобильных устройств существует специальное событие OnTap
    1 балл
  5. dante333

    Не могу разобратся с BannerAD

    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 балл
  6. dnekrasov

    Глобальные хоткеи в OS X

    Ещё в AppKit.framework у NSEvent есть такой метод как addGlobalMonitorForEventsMatchingMask. Может кто использовал?
    1 балл
  7. пришел домой. запустил код Descrip := TMapMarkerDescriptor.Create(Position); Descrip.Icon:=ImageList1.Source[0].MultiResBitmap.Items[0].Bitmap; MapView1.AddMarker(Descrip); и все работает. все таки на работе 8-ка глючная.
    1 балл
  8. Ну и узнать режим звонка можно так: 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 балл
  9. Народ, что с вами? Сколько уже вопросов без ответов... все самому приходится разбирать Вот написал процедурку переключения режимов в Андроид, пользуйтесь на здоровье: 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 балл
  10. По умолчанию, каждая платформа определяет свои правила оформления пользовательского интерфейса, согласно Руководству пользовательского интерфейса Андроида 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 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...