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

Kitty

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

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

  • Посещение

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

    16

Весь контент Kitty

  1. Kitty

    [TListBoxGroupHeader] настройки

    Подскажите, пожалуйста, почему ListBox не воспринимает настройки в ран тайм? Код ниже ничего не делает. Цвет текста не меняется, текст не центрируется. Вижу зеленый цвет шрифта с дефолным размером выровненным по левому краю. Что упущено? TListBoxGroupHeader *ListBoxGroupHeader; ListBoxGroupHeader = new TListBoxGroupHeader(ListBox2); ListBoxGroupHeader->TextSettings->FontColor = TAlphaColor(0xffff0000); ListBoxGroupHeader->TextSettings->HorzAlign = TTextAlign::Center; ListBoxGroupHeader->TextSettings->Font->Size = 16; ListBoxGroupHeader->Text = L"Текст текст текст"; ListBox2->AddObject(ListBoxGroupHeader);
  2. Kitty

    [ListBox]Поиск по ItemData.Detail

    Подскажите, пожалуйста, как можно правильно выполнить поиск в ListBox? Список без TSearchBox выглядит так: Заголовок 1(TListBoxGroupHeader) Основной текст Детализирующий текст Основной текст Детализирующий текст Заголовок2(TListBoxGroupHeader) Основной текст Детализирующий текст и т.д. Детализирующий текст ListBoxItem->ItemData->Detail везде разный. В программе становиться известно одно из значений детализирующего текста, как программно получить текст Заголовка и текст Основного текста которому принадлежит этот детализирующий текст? Мне надо найденные данные перенести в другой ListBox. Спасибо.
  3. Надо пересмотреть курсы... Мне просто нужен описанный э ффект правильными средствами....
  4. Вроде получилось надо анимировать Size. Однако возникли проблемы. Остаются артефакты от предыдущей окружности. Как исправить? Тестирую в Windows.
  5. Kitty

    Aнимация ТCircle

    В одном из приложений андроида увидела как от краев кнопки плавно расходиться окружность - уходит за края формы и затем снова появляется из под кнопки - призывая пользователя нажать кнопку. Решила повторить. Чтобы анимировать размер Circle добавила два FloatAnimation один для Scale.X другой для Scale.Y. Loop=true. Тригиры IsVisible=true и IsVisible=false. Circle выравнен по центру TRectangle. Почему-то анимация не расходиться красиво от центра, а съезжает вправо-вниз. Как сделать чтобы края окружности красиво и плавно расходись и цент окружности не менялся? Спасибо.
  6. Kitty

    ItemData.Detail

    Вот так удалось скрыть: ListBoxItem->StylesData["detail.visible"] = TValue::From<bool>(false);
  7. Kitty

    ItemData.Detail

    Программно заполняется свойство ListBoxItem->ItemData->Detail и затем используется в программе. TListBoxItem *ListBoxItem; ListBoxItem = new TListBoxItem(ListBox1); ListBoxItem->Height = 45; ListBoxItem->Text = ValuesIniSection->KeyNames[j];//основной текст ListBoxItem->ItemData->Detail = ValuesIniSection->ValueFromIndex[j];//дополнительный текст должен быть невидимым! // (aNone=0, aMore=1, aDetail=2, aCheckmark=3) ListBoxItem->ItemData->Accessory = static_cast<TListBoxItemData::TAccessory>(1); ListBox1->AddObject(ListBoxItem); Однако мне надо чтобы в списке это свойство было невидимым. Что мною упущено ибо не получается сделать невидимым? Спасибо.
  8. Насколько правильным будет придуманный мною подход с промежуточным сохранением для моб. устройств? #include <memory> #include <System.IOUtils.hpp> #include <System.IniFiles.hpp> void __fastcall TForm1::Button1Click(TObject *Sender) { std::unique_ptr<TMemoryStream> WelcomeINI(new TMemoryStream()); IdHTTP1->Get(L"http://путь к ini файлу на серрвере", WelcomeINI.get()); WelcomeINI->Position = 0; #ifdef __ANDROID__ String path = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetTempPath(), L"welcome.ini"); #elif _Windows String path = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetTempPath(), L"welcome.ini"); #endif WelcomeINI->SaveToFile(path); if(FileExists(path)) { ShowMessage(L"Файл с сервера получен");//тест //заполняем ListView из полученного файла //std::unique_ptr<TIniFile> FileINI(new TIniFile(path)); //*** } else { ShowMessage(L"Файл с сервера не получен"); } }
  9. На хостинге храниться файл INI. Программа при старте должна прочитать этот файл и на основании его содержимого построить список. Как правильно это организовать? Надо сначала скачать этот файл на моб.устройство и затем читать его или как правильно? Может кто-то делал подобное? Спасибо.
  10. Kitty

    [iOS]Bluetooth

    Все таки этот код не защищает полностью от английского окна... Пользователь может совершит не адекватное действие и тогда английское исключение. Действие: в работающем приложении с включенным блютуз, зайти в настройки телефона и выключить блютуз, после чего вернуться в приложение.
  11. Kitty

    [iOS]Bluetooth

    Избавиться от английского окна, вроде удалось с помощью таймеров, но это предварительная оценка. Пока английского окна не вижу. Вижу информацию понятную пользователю для его дальнейших действий без перезапуска приложения. насколько правильно, не знаю...: void __fastcall TForm1::TimerStartTimer(TObject *Sender) { //через 2 секунды запускаем Beacon1 если Bluetooth включен TimerStart->Enabled = false; //и сразу отключаем таймер Beacon1->Enabled = true; } //--------------------------------------------------------------------------- //проверка включен ли Bluetooth bool __fastcall TForm1::ManagerConnected(void) { if(FBluetoothManagerLE->ConnectionState == TBluetoothConnectionState::Connected) { return true; } else { return false; } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { try { FBluetoothManagerLE = TBluetoothLEManager::Current; if(ManagerConnected()) { //есть Bluetooth TimerStart->Enabled = true;//программа идет по нужному сценарию т.к. Bluetooth включен } else { //нет Bluetooth ShowMessage(L"Включите Bluetooth."); TimerCheckBluetooth->Enabled = true; //проверяем вкл. Bluetooth каждые 10 секунд } } catch (Exception &ex) { ShowMessage(L"Ошибка: " + ex.Message); } } //--------------------------------------------------------------------------- void __fastcall TForm1::TimerCheckBluetoothTimer(TObject *Sender) { if(ManagerConnected()) { //если Bluetooth был включен пользователем уже при включенной программе отключаем таймер проверки Bluetooth TimerCheckBluetooth->Enabled = false; TimerStart->Enabled = true; //и запускаем программу по нужному сценарию т.к. Bluetooth включен } }
  12. Kitty

    [iOS]Bluetooth

    Спасибо. А еще вопрос, на каком этапе и как можно перехватить исключение EBluetoothAdapterException?: http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Bluetooth.TBluetoothManager.CurrentAdapter
  13. Kitty

    [iOS]Bluetooth

    А еще такой вопрос: Берем стандартный пример и компилируем при выключенном блютуз на устройство ios: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\CPP\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner В приложении получаем окно, после нажатия кнопки: Error Bluetooth device not found: discconnected of turned off. Как сделать это сообщение на русском или заменить полностью своим?
  14. Kitty

    [iOS]Bluetooth

    Похоже, что так работает, правда не известно ли для всех телефонов будет стабильно: if(FBluetoothManagerLE->ConnectionState == TBluetoothConnectionState::Connected) { ShowMessage(L"Connected"); } else { ShowMessage(L"Disconnected"); }
  15. Kitty

    [iOS]Bluetooth

    Без компонента тоже OFF... private: // User declarations TBluetoothLEManager * FBluetoothManagerLE; //*** void __fastcall TForm1::FormActivate(TObject *Sender) { FBluetoothManagerLE = TBluetoothLEManager::Current; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if(FBluetoothManagerLE->CurrentAdapter->State == TBluetoothAdapterState::Off) { ShowMessage(L"OFF"); } else { ShowMessage(L"ON"); } }
  16. Kitty

    [iOS]Bluetooth

    Спасибо. Посмотрела, что для CurrentAdapter можно также использовать компонент TBluetoothLE. Подскажите, где ошибка? Блютуз на телефоне iPhone 5 включен, а при нажатии на кнопку вижу сообщение OFF: void __fastcall TForm1::FormActivate(TObject *Sender) { BluetoothLE1->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if(BluetoothLE1->CurrentAdapter->State == TBluetoothAdapterState::Off) { ShowMessage(L"OFF"); } else { ShowMessage(L"ON"); } }
  17. Kitty

    [iOS]Bluetooth

    Подскажите, пожалуйста, как на iOS телефоне проверить при старте программы или включен Bluetooth? И если нет, предложить включить Bluetooth пользователю. Спасибо.
  18. Выяснилось, что если таргет iOS 64 bit, то FMX.PhoneDialer.hpp работает, проект стартует нормально.
  19. Проблема решена: <key>NSPhotoLibraryUsageDescription </key> <string>To choose photo</string> <key>NSCameraUsageDescription </key> <string>Get photo</string> Обнаружен лишний пробел перед закрывающей </key>. Странно, но это все ломало. Убрать пробел: <key>NSPhotoLibraryUsageDescription</key> <string>To choose photo</string> <key>NSCameraUsageDescription</key> <string>Get photo</string>
  20. C++ Builder 10.1 Up.1 (iOS 10 sdk) Теперь уже точно, можно сказать, что не работает: 1. Открываем стандартный пример в режиме дебаг iOS 64 bit: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\CPP\Mobile Snippets\AccessCameraApp 2. В настройках проекта добавляем ключ NSCameraUsageDescription и ставим галочку С++ Compiler->Advanced: Cenerate iOS universal binary file (armv7 + arm64)=true 3. Запускаем на iPhone5/5s. При нажатии кнопки получаем raised exception class 6 1. Открываем стандартный пример в режиме дебаг iOS 64 bit: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\CPP\Mobile Snippets\CameraRoll 2. В настройках проекта добавляем ключ NSPhotoLibraryUsageDescription и ставим галочку C++ Compiler->Advanced: Cenerate iOS universal binary file (armv7 + arm64)=true 3. Запускаем на iPhone5/5s. При нажатии кнопки получаем raised exception class 6 У кого есть опыт оформите, пожалуйста, в баг-трекер. Досадно, что базовый функционал не работает. Будем ждать нового релиза.
  21. чтобы увидеть дробную часть: double x = 3.2
  22. Благо вспомнила, что в 64 бит работает отладка. В дебаге работает обращение к галерее, а вот на событии получения фото: void __fastcall TForm1::TakePhotoFromCameraAction1DidFinishTaking(TBitmap *Image) --------------------------- Debugger Exception Notification --------------------------- Project raised exception class 6.
  23. Дополнительно выяснилось, что если деплоить в режиме дебаг 64 bit, то все работает. Если деплоить в режиме релиз, то приложение падает при обращении к фото/галереи. Ключи в обоих конфигурациях одинаковые...
  24. Последовательность действий (на стенде EL Capitan): 1. Деплоим на телефон 32 битную версию в релизе. 2. При обращении к галерее/фото видим окно с просьбой разрешить обращение к галереи. Соглашаемся. Все работает. 3. Деплоим поверх версию в 64 бита тоже в релизе. При обращении к галерее никаких запросов уже нет и все также четко работает. 4. Полностью удаляем приложение с устройства. 5. Деплоим начисто 64 битную версию. При обращении к галереи приложение сразу падает. Видимо откомпилированный 64 битный код не может вызвать окно запроса с разрешением использовать галерею/фото. Что еще можно попробовать т.к. для публикации в app store требуется именно 64 битная версия приложения?
×
×
  • Создать...