Kitty
-
Постов
792 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Сообщения, опубликованные Kitty
-
-
Подскажите, пожалуйста, как можно правильно выполнить поиск в ListBox?
Список без TSearchBox выглядит так:
Заголовок 1(TListBoxGroupHeader)
Основной текст
Детализирующий текст
Основной текст
Детализирующий текст
Заголовок2(TListBoxGroupHeader)
Основной текст
Детализирующий текст
и т.д.Детализирующий текст ListBoxItem->ItemData->Detail везде разный. В программе становиться известно одно из значений детализирующего текста, как программно получить текст Заголовка и текст Основного текста которому принадлежит этот детализирующий текст? Мне надо найденные данные перенести в другой ListBox. Спасибо.
-
Надо пересмотреть курсы...
Мне просто нужен описанный э ффект правильными средствами....
-
-
В одном из приложений андроида увидела как от краев кнопки плавно расходиться окружность - уходит за края формы и затем снова появляется из под кнопки - призывая пользователя нажать кнопку. Решила повторить.
Чтобы анимировать размер Circle добавила два FloatAnimation один для Scale.X другой для Scale.Y. Loop=true. Тригиры IsVisible=true и IsVisible=false.
Circle выравнен по центру TRectangle.
Почему-то анимация не расходиться красиво от центра, а съезжает вправо-вниз. Как сделать чтобы края окружности красиво и плавно расходись и цент окружности не менялся?
Спасибо.
-
Вот так удалось скрыть:
ListBoxItem->StylesData["detail.visible"] = TValue::From<bool>(false);
-
Программно заполняется свойство 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);
Однако мне надо чтобы в списке это свойство было невидимым.
Что мною упущено ибо не получается сделать невидимым? Спасибо.
-
Насколько правильным будет придуманный мною подход с промежуточным сохранением для моб. устройств?
#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"Файл с сервера не получен"); } }
-
На хостинге храниться файл INI. Программа при старте должна прочитать этот файл и на основании его содержимого построить список. Как правильно это организовать? Надо сначала скачать этот файл на моб.устройство и затем читать его или как правильно? Может кто-то делал подобное?
Спасибо.
-
Все таки этот код не защищает полностью от английского окна... Пользователь может совершит не адекватное действие и тогда английское исключение.
Действие: в работающем приложении с включенным блютуз, зайти в настройки телефона и выключить блютуз, после чего вернуться в приложение.
-
Избавиться от английского окна, вроде удалось с помощью таймеров, но это предварительная оценка. Пока английского окна не вижу. Вижу информацию понятную пользователю для его дальнейших действий без перезапуска приложения. насколько правильно, не знаю...:
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 включен } }
-
Спасибо. А еще вопрос, на каком этапе и как можно перехватить исключение EBluetoothAdapterException?:
http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Bluetooth.TBluetoothManager.CurrentAdapter
-
А еще такой вопрос:
Берем стандартный пример и компилируем при выключенном блютуз на устройство 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.Как сделать это сообщение на русском или заменить полностью своим?
-
Похоже, что так работает, правда не известно ли для всех телефонов будет стабильно:
if(FBluetoothManagerLE->ConnectionState == TBluetoothConnectionState::Connected) { ShowMessage(L"Connected"); } else { ShowMessage(L"Disconnected"); }
-
Без компонента тоже 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"); } }
-
Спасибо. Посмотрела, что для 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"); } }
-
Подскажите, пожалуйста, как на iOS телефоне проверить при старте программы или включен Bluetooth? И если нет, предложить включить Bluetooth пользователю.
Спасибо.
-
-
Проблема решена:
<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>
-
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 61. Открываем стандартный пример в режиме дебаг 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У кого есть опыт оформите, пожалуйста, в баг-трекер. Досадно, что базовый функционал не работает. Будем ждать нового релиза.
-
чтобы увидеть дробную часть:
double x = 3.2
-
Благо вспомнила, что в 64 бит работает отладка. В дебаге работает обращение к галерее, а вот на событии получения фото:
void __fastcall TForm1::TakePhotoFromCameraAction1DidFinishTaking(TBitmap *Image)
---------------------------
Debugger Exception Notification
---------------------------
Project raised exception class 6.
-
Дополнительно выяснилось, что если деплоить в режиме дебаг 64 bit, то все работает. Если деплоить в режиме релиз, то приложение падает при обращении к фото/галереи.
Ключи в обоих конфигурациях одинаковые...
-
Забыла добавить что тестировалась на двух телефонах iPhone 5 и 5s.
-
Последовательность действий (на стенде EL Capitan):
1. Деплоим на телефон 32 битную версию в релизе.
2. При обращении к галерее/фото видим окно с просьбой разрешить обращение к галереи. Соглашаемся. Все работает.
3. Деплоим поверх версию в 64 бита тоже в релизе. При обращении к галерее никаких запросов уже нет и все также четко работает.
4. Полностью удаляем приложение с устройства.
5. Деплоим начисто 64 битную версию. При обращении к галереи приложение сразу падает.
Видимо откомпилированный 64 битный код не может вызвать окно запроса с разрешением использовать галерею/фото.
Что еще можно попробовать т.к. для публикации в app store требуется именно 64 битная версия приложения?
[TListBoxGroupHeader] настройки
в TListBox
Опубликовано
Подскажите, пожалуйста, почему 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);