Kitty
Пользователи-
Постов
792 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Весь контент Kitty
-
Пункт №2 предусматривает наличие сервера в Плесе и хороший интернет? И все таки как бы вы гуру решали этот вопрос окончательно исходя из реалий провинции и времен года?
-
Вот берем, к примеру, город Плес, где Левитан на Волге писал свои картины. Каждую группу туристов сопровождает гид, и каждый гид рассказывает свою историю и понимание истории. Довольно часто бред. Берем по городу и в 20-и местах развешиваем антивандальные маячки: https://accent-systems.com/product/ibks-plus/ При входе в зону действия маячка запускаем нужный аудио файл и слушаем информацию на телефоне. Вопрос, можем ли мы эти двадцать аудио файлов засунуть в apk, или надо с мером Плеса договариваться о хорошем интернете и сервере для получения данных в нужной точке для туристов? Как правильно покрыть город аудио гидом? Спасибо.
-
С помощью каких компонентов fmx можно создать неравномерные, автомаштабирумые под экран области, реагирующие на нажатие? Пример - приложение estimote: https://play.google.com/store/apps/details?id=com.estimote.apps.main Спасибо.
-
Кто смотрел веб.бинар? Что там сказали об идиотском решении распустить Питерский офис? Спасибо.
-
Задайте ваш вопрос автору библиотеки Remy здесь: http://bcbj.org/forums/viewforum.php?f=10&sid=e022f859f55a36e1a172e415bf163bad Просто создайте тему. На этом форуме он бывает раз в сутки. Любые вопросы с Indy решаються там и всегда со 100% успехом.
- 9 ответов
-
- Delphi
- TIdTcpClient
-
(и ещё 1 )
C тегом:
-
Если FireDAC - ком не будет заниматься автор Дмитрий Арефев - конец этому продукту. Если FMX не будут заниматься специалисты уровня Ярослава Бровина - конец этому продукту. Если Идера их не привлечет к работе - гудбай ide в течении года. Подпись - провидица Ванга.
-
Если увольняют создателей библиотек, которые являются ядром продукта (FireDAC, FMX), то даже женская логика говорит, что здесь что то не так...
-
http://www.sandon.it/node/107 На просторах интернета... http://joseleon.es/?p=254
-
Нет, просто открыла проэкт и запустила компиляцию после апдейта 2. А как правильно добавить? Я этого при апдейте 1 не делала...
-
Сутки дискуссии, мне точно подсказали, что С++ Билдеру похоже как кросплатформе мало перспектив в свете нового подхода руководства.
-
Проект использует файл UVibrate.pas unit UVibrate; interface procedure Vibrate; implementation {$IFDEF ANDROID} uses Androidapi.JNI.Os, Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNIBridge; {$ENDIF} {$IFDEF IOS} uses IOSapi.MediaPlayer, IOSapi.CoreGraphics, FMX.Platform, FMX.Platform.IOS, IOSapi.UIKit, Macapi.ObjCRuntime, Macapi.ObjectiveC, iOSapi.Cocoatypes, Macapi.CoreFoundation, iOSapi.Foundation, iOSapi.CoreImage, iOSapi.QuartzCore, iOSapi.CoreData; {$ENDIF} {$IFDEF IOS} const libAudioToolbox = '/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox'; kSystemSoundID_vibrate = $FFF; procedure AudioServicesPlaySystemSound( inSystemSoundID: integer ); cdecl; External libAudioToolbox Name _PU + 'AudioServicesPlaySystemSound'; {$ENDIF} procedure Vibrate; {$IFDEF ANDROID} var Vibrator: JVibrator; {$ENDIF} begin {$IFDEF ANDROID} Vibrator := TJVibrator.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE) as ILocalObject).GetObjectID); // Vibrate for 500 milliseconds Vibrator.vibrate(500); {$ENDIF} {$IFDEF IOS} AudioServicesPlaySystemSound( kSystemSoundID_vibrate ); {$ENDIF} end; end. После апдейта 2 ошибка компиляции: [ld Error] Error: "_AudioServicesPlaySystemSound", referenced from: __ZN8Uvibrate28AudioServicesPlaySystemSoundEi in .\\iOSDevice64\\Release\\UVibrate.o; Как исправить?
-
Проект прекрасно компилировался без апдейта 2 а теперь имеем ошибку на строке: _di_JIntent intent; intent = new TJIntent; [bccaarm Error] UnitServis.cpp(131): no viable overloaded '=' systobj.h(312): candidate function not viable: no known conversion from 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' to 'const DelphiInterface<Androidapi::Jni::Graphicscontentviewtext::JIntent>' for 1st argument systobj.h(329): candidate function not viable: no known conversion from 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' to 'Androidapi::Jni::Graphicscontentviewtext::JIntent *' for 1st argument systobj.h(303): candidate template ignored: could not match 'DelphiInterface<type-parameter-0-0>' against 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' Если написать так: _di_JIntent intent = new TJIntent; Ошибка: [bccaarm Error] UnitServis.cpp(131): no viable conversion from 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' to '_di_JIntent' (aka 'DelphiInterface<Androidapi::Jni::Graphicscontentviewtext::JIntent>') systobj.h(261): candidate constructor not viable: no known conversion from 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' to 'const DelphiInterface<Androidapi::Jni::Graphicscontentviewtext::JIntent> &' for 1st argument systobj.h(268): candidate constructor not viable: no known conversion from 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' to 'Androidapi::Jni::Graphicscontentviewtext::JIntent *' for 1st argument systobj.h(254): candidate template ignored: could not match 'DelphiInterface<type-parameter-0-0>' against 'Androidapi::Jni::Graphicscontentviewtext::TJIntent *' systobj.h(278): candidate template ignored: disabled by 'enable_if' [with TArg = Androidapi::Jni::Graphicscontentviewtext::TJIntent *] Как исправить?
-
ASovtsov и сразу глобальный для меня вопрос: в последние релизы было видно, что С++ Builder подтянули. Отставание от Дельфи только сейчас в двух пунктах: 1. Не возможно создавать сервисы для Андроида. 2. Не возможно использовать эмулятор в проектах iOS. А вопрос такой: каково будущее С++ Builder на фоне последних событий? Спасибо.
-
TurboCocoa это строго для Дельфи, а как будет с C++ Builder для кросплатформы? Спасибо.
-
За форум спасибо, но похоже FMX не будет развиваться без таких специалистов. P.S. Также уволился легенда дельфи David I: https://community.embarcadero.com/blogs/entry/david-i-becomes-an-embarcadero-mvp-starts-new-job-at-evans-data-corporation Капец...
-
Основатель FMX Евгений Крюков в поисках работы: https://plus.google.com/u/0/105338484741532774705/posts/SnK5twK939Y Основатель FireDAC Дмитрий Арефьев тоже больше не работает. По Вашему мнению какие все же перспективы RAD при такой кадровой политике?
-
А как объявить ShowShareSheetAction1, когда у ListBoxItem нет свойства Action?
-
В документации рассказано как поделиться текстом в соц. сетях из своего приложения. Чтобы это сделать у компонента должно быть в инспекторе объектов свойство Action (например кнопка). У меня ListBox служит как выпадающее меню и один из итемов хотелось бы по клику задействовать как поделиться в соц. сетях. Однако у ListBoxItem нет свойства Action. Как правильно решить эту задачу: при клике на ListBoxItem - поделиться текстом в соц. сетях? Спасибо.
-
Приобретите курсы Ярослава и ваши приложения перестанут быть тусклыми.
-
По этой ссылке, есть пример с кодом, движения человека относительно маячка и реакция на это: https://community.embarcadero.com/blogs/entry/developer-skill-sprint-proximity-awareness-with-beacons Используется событие маячка OnBeaconBeaconProximity (TBeaconProximity::Immediate, TBeaconProximity::Near, TBeaconProximity::Far, TBeaconProximity::Away) Мой эксперимент показал, что маячок может просто лежать на столе и произойдет многократно какое-то событие в зависимости от расстояния (TBeaconProximity::Immediate или TBeaconProximity::Near...). Т.е. в течении несколько секунд может произойти одно и то же событие. Какой правильный подход применить, чтобы отсечь лишние сработки в OnBeaconBeaconProximity? Может надо вычислять расстояние и как-то отсекать повторные не нужные сработки?: http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Beacon.IBeacon.Distance Просто хочется узнать правильный подход. Спасибо.
-
Большое спасибо. На основании вашего кода, получилось такая конструкция. На первый взгляд вроде работает, но насколько надежно пока не знаю. String WEBLink = *** ListBox2->Clear(); int i; for (i = 0; i < ListBox1->Count; i++) { if(CompareStr(WEBLink, ListBox1->ItemByIndex(i)->ItemData->Detail) == 0) { int j = i; while(j >= 0) { if(ListBox1->ItemByIndex(j)->ClassName() == L"TListBoxGroupHeader") { TListBoxGroupHeader * ListBoxGroupHeader = new TListBoxGroupHeader(ListBox2); ListBoxGroupHeader->Text = ListBox1->ItemByIndex(j)->Text; ListBoxGroupHeader->Parent = ListBox2; break; } j--; } TListBoxItem * aItem = new TListBoxItem(ListBox2); aItem->Text = ListBox1->ItemByIndex(i)->Text; aItem->ItemData->Detail = ListBox1->ItemByIndex(i)->ItemData->Detail; aItem->ItemData->Accessory = static_cast<TListBoxItemData::TAccessory>(1); aItem->Parent = ListBox2; break; } } Есть ли существенная разница как добавлять? ListBoxGroupHeader->Parent = ListBox2; или ListBox2->AddObject(ListBoxGroupHeader);
-
Спасибо. Картина проясняется у меня почему-то не работала подсказка после стрелки ListBox1->ItemByIndex(i)-> и поэтому не понятно было как добраться до ItemData. Благодаря вашему коду теперь понятно. Однако остался вопрос, у списка присутствуют заголовки TListBoxGroupHeader. Как получить заголовок которому принадлежит aItem: TListBoxItem?
-
Пока не доходит... for (int i = 0; i < ListBox1->Count; i++) { ListBox1->ItemByIndex(i); //как сравнивать с ItemData->Detail ? } У меня есть детальный текст, его надо найти в списке и понять к какому заголовку он принадлежит и какой у него основной текст...
-
Как в цикле получить заголовок секции?