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

Kitty

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

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

  • Посещение

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

    16

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

  1. Спасибо. В 10 уроке курсов Ярослава показана похожая ситуация, но для текста. Но я пока не разобралась как инициализировать StylesData для битмапа который в памяти... Как я поняла надо заменить строку: ListBoxItem->ItemData->Bitmap->LoadFromStream(WelcomeINI.get()); на нечто похожее на это: ListBoxItem->StylesData["ItemData.Bitmap"] = TValue::From<TMemoryStream>(WelcomeINI.get()); но это не правильная конструкция. Покажите, пожалуйста, на паскале как заполнить StylesData картинкой из TMemoryStream, а я затем переделаю для билдера. Спасибо.
  2. Попытка добавить дополнительную строку кода, также не помогла, картина не меняется: **** ListBox1->AddObject(ListBoxItem); ListBoxItem->ApplyStyleLookup(); //<- вот эту... ***
  3. Kitty

    [ListBox] загрузка картинок

    Здравствуйте. Картинки грузятся с хостинга в потоке. Что не правильно в коде ниже? Картинки появляются только если прокрутить список вверх вниз т.е. после скролирования. Т.е. все грузиться правильно, но картинки появляются только если прокрутить список вверх-вниз после загрузки. Тест в WIN64. Спасибо. #include <memory> int ThreadsRunning = 0; void __fastcall TForm1::Button1Click(TObject *Sender) { TListBoxItem *ListBoxItem; TListBoxGroupHeader *ListBoxGroupHeader; AniIndicator1->Enabled = true; ListBox1->BeginUpdate(); try { //test for 5 images: for (int i = 1; i <= 5; i++) { ListBoxGroupHeader = new TListBoxGroupHeader(ListBox1); ListBoxGroupHeader->Text = L"Custom header"; ListBox1->AddObject(ListBoxGroupHeader); ListBoxItem = new TListBoxItem(ListBox1); ListBoxItem->StyleLookup = L"listboxitemleftdetail"; ListBoxItem->Height = 44; //image heigth ListBoxItem->TextSettings->Trimming = TTextTrimming::None; ListBoxItem->TextSettings->WordWrap = true; ListBoxItem->Text = L"Custom text"; ListBox1->AddObject(ListBoxItem); String URLLink = L"http://welcome.um.la/myimg/" + IntToStr(i) + ".png"; TThread *thread = TThread::CreateAnonymousThread( [URLLink, ListBoxItem, this]() { std::unique_ptr<TMemoryStream> WelcomeINI(new TMemoryStream); std::unique_ptr<TIdHTTP> HTTP(new TIdHTTP); try { HTTP->Get(URLLink, WelcomeINI.get()); } catch(...) { WelcomeINI->LoadFromFile("44x44.png"); //image by default } WelcomeINI->Position = 0; ListBoxItem->ItemData->Bitmap->LoadFromStream(WelcomeINI.get()); } ); thread->OnTerminate = &ThreadTerminated; thread->Start(); ++ThreadsRunning; } } __finally { ListBox1->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::ThreadTerminated(TObject *Sender) { if (--ThreadsRunning <= 0) AniIndicator1->Enabled = false; }
  4. Не ужели встреча состоиться? P.S. Не верю, говорил Станиславский.
  5. Просьба, если встреча состоиться, предоставить фотоотчет с участниками. Мне очень хочеться ники транслировать в реальные образы. Ярослава знаю в лицо, например, по семинарам эмбаркадеро...
  6. Похоже тут срез того, что происходит с Дельфи... Несколько разработчиков не могут собраться. Все заняты - кто нефтью торгует, кто ищет жизнь на Марсе... Ребята соберитесь наконец и результат встречи расскажите другим. Это будет классно! Спасибо.
  7. Kitty

    Item.ItemData.Bitmap

    Ясно. В андроид стиле вроде как detail находиться внизу слева как и положено. Это наверное только для Windows detail стоит в странной позиции справа? Стиль с detail мне нужен. Я там храню ссылки на сайт и делаю сам detail не видимым: ListBoxItem->StylesData["detail.visible"] = TValue::From<bool>(false); и при нажатии на кнопку переход по ссылке. Значит окончательный вывод такой - чтобы получить итемы с нормальным текстом и картинками нужного размера, надо делать свой стиль. Правильно?
  8. Kitty

    Item.ItemData.Bitmap

    Спасибо, вижу полный текст. Но выглядит очень криво. Много пустого места справа, а могло бы свободно поместиться одно-два слова. ListBoxItem = new TListBoxItem(ListBox1); ListBoxItem->StyleLookup = L"listboxitemleftdetail"; ListBoxItem->Height = 72; //image heigth ListBoxItem->TextSettings->Trimming = TTextTrimming::None; ListBoxItem->TextSettings->WordWrap = true; ListBoxItem->Text = L"Магазин на втором этаже"; ListBoxItem->StyledSettings = ListBoxItem->StyledSettings >> TStyledSetting::Other; ListBoxItem->ItemData->Accessory = static_cast<TListBoxItemData::TAccessory>(1); ListBoxItem->ItemData->Bitmap->LoadFromStream(WelcomeINI.get()); ListBox1->AddObject(ListBoxItem);
  9. Kitty

    Item.ItemData.Bitmap

    К сожалению не помогло. А стиль я никакой не меняла просто положила ListBox на форму. Тестирую в Windows. //*** ListBoxItem->TextSettings->Trimming = TTextTrimming::None; ListBoxItem->TextSettings->WordWrap = true; ListBoxItem->Text = L"Магазин на втором этаже"; И еще почему не взирая на то, что высота всех картинок 72 и высота выставлена: ListBoxItem->Height = 72; тем не менее картинки отображаются 44х44, а не 72х72.
  10. Kitty

    Item.ItemData.Bitmap

    А какой настройки не хватает, чтобы увидеть текст полностью в итеме? ListBox1->BeginUpdate(); TListBoxItem *ListBoxItem; TListBoxGroupHeader *ListBoxGroupHeader; ListBoxGroupHeader = new TListBoxGroupHeader(ListBox1); ListBoxGroupHeader->Text = L"Заголовок"; ListBox1->AddObject(ListBoxGroupHeader); ListBoxItem = new TListBoxItem(ListBox1); ListBoxItem->StyleLookup = L"listboxitemleftdetail"; ListBoxItem->Height = 72; //высота картинки ListBoxItem->TextSettings->WordWrap = true; ListBoxItem->Text = L"Магазина на втором этаже"; ListBoxItem->ItemData->Bitmap->LoadFromStream(WelcomeINI.get()); ListBox1->AddObject(ListBoxItem); ListBox1->EndUpdate();
  11. Kitty

    Item.ItemData.Bitmap

    Ошибка найдена, не правильно был установлен ListBoxItem->StyleLookup: listboxitemleftdetail
  12. Kitty

    Item.ItemData.Bitmap

    Прежде чем приступить к полному заполнению листбокса пытаюсь вообще получить картинку в одном итеме. Что не правильно в этом коде? Я не вижу картинку в листбоксе: void __fastcall TForm1::Button1Click(TObject *Sender) { std::unique_ptr<TMemoryStream> WelcomeINI(new TMemoryStream()); try { IdHTTP1->Get(L"http://welcome.um.la/myimg/11.png", WelcomeINI.get()); WelcomeINI->Position = 0; } catch(...) { WelcomeINI->LoadFromFile("72x72.png"); //картинка по дефолту WelcomeINI->Position = 0; } ListBox1->BeginUpdate(); TListBoxItem *ListBoxItem; TListBoxGroupHeader *ListBoxGroupHeader; ListBoxGroupHeader = new TListBoxGroupHeader(ListBox1); ListBoxGroupHeader->Text = L"ONE"; ListBox1->AddObject(ListBoxGroupHeader); ListBoxItem = new TListBoxItem(ListBox1); ListBoxItem->StyleLookup = L"listboxitemdetaillabel"; ListBoxItem->Height = 72; //высота картинки ListBoxItem->Text = L"Test1"; ListBoxItem->ItemData->Bitmap->LoadFromStream(WelcomeINI.get()); ListBox1->AddObject(ListBoxItem); ListBox1->EndUpdate(); }
  13. Kitty

    Item.ItemData.Bitmap

    Реально на С++ тупик. в справке...
  14. Kitty

    Item.ItemData.Bitmap

    Пол царства тому кто напишет на С++. ...
  15. Пересмотрела курсы. Так и не поняла и не увидела там решения для TCircle.
  16. Kitty

    Item.ItemData.Bitmap

    Спасибо. Проект с TListBox - придется все переделывать. Картинки маленькие и строк TListBox будет не больше 50 штук. Можно все же с TListBox?
  17. Kitty

    Item.ItemData.Bitmap

    Подскажите, как правильно реализовать: На хостинге хранятся картинки. Имена картинок можно задать произвольные, чтобы было удобно их перебирать в цикле. Как правильно добавить картинки в ListBox с удаленного хостинга? Надо использовать в цикле TIdHTTP скачивать картинку во временный файл и потом: Item.ItemData.Bitmap.LoadFromFile('011.jpg') ?
  18. bool __fastcall TForm1::HandleAppEvent(TApplicationEvent AAppEvent, TObject *AContext) { if (AAppEvent == TApplicationEvent::EnteredBackground) { MainActivity()->finish(); } return true; } Эксперимент показал, что если приложение на переднем плане и если ничего не делать, а дождаться чтобы экран телефона сам погас и затем включить экран, то приложения на переднем плане уже нет. Значит затемнение экрана это тоже EnteredBackground. Правильно?
  19. А на каком варианте Вы бы окончательно остановились для решения такой задачи - exit или finish?
  20. #include <FMX.Platform.Android.hpp> MainActivity()->finish(); Да, работает тоже стабильно.
  21. Интересная тема. Вот почему то Close не работает стабильно. Приложение уходит в фон и после этого его можно почему-то запустить только со второго раза. А вот _exit(0); похоже работает как надо. Все ли правильно тут, похоже, что работает, но надежно ли так? Спасибо. public: // User declarations bool __fastcall HandleAppEvent(TApplicationEvent AAppEvent, TObject *AContext); //***CPP*** #include <stdlib.h> bool __fastcall TForm1::HandleAppEvent(TApplicationEvent AAppEvent, TObject *AContext) { if (AAppEvent == TApplicationEvent::EnteredBackground) { //Close(); после ухода в фон и попытки стартовать снова иногда надо две попытки //Application->Terminate(); после ухода в фон и попытки стартовать снова иногда надо две попытки _exit(0); //похоже работает как надо } return true; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { _di_IFMXApplicationEventService Intf; if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXApplicationEventService)) ) { Intf = TPlatformServices::Current->GetPlatformService(__uuidof(IFMXApplicationEventService)); Intf->SetApplicationEventHandler(HandleAppEvent); } }
  22. Фирменное приложение города не нуждается в рекламе и дополнительном сервисе. Туристы ознакомлены с ним заранее и те кто хотел скачал.
  23. Мне не до конца понятно. 1.Приехал автобус. 2. Человек вышел из автобуса, запустил фирменное приложение Плеса и пошел гулять. Это все. 3. В процессе прогулки он получал бы интересную информацию от взаимодействия с маячками. Как гуру это бы реализовали окончательно?
  24. Т.е. контакт с администрацией Плеса не избежен?
  25. Тут как бы выбора и нет. Всего 20 маячков по городу (20 экскурсий и все) и при входе в зону маячка надо получить свой аудио файл. Вот и все. Ваше окончательное решение запилить все в apk и сделать фирменное приложение для города все внутри?
×
×
  • Создать...