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

d7d1cd

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

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

  • Посещение

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

    7

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

  1. Работаю в C++BuilderXE7. Ярослав, можно Вас попросить перевести приведенный Вами код на C++ и указать куда его вставить. И простите за назойливость
  2. Ярослав, спасибо за решение. Интересная вещь получается: Embarcadero допустили ошибку и исправляют ее в следующей версии, а пользователи текущих версий должны использовать костыли? А почему не выпускается обновление, закрывающее ошибку? Тогда с уверенностью можно сказать, что ошибки делаются преднамеренно, потом выпускается новая версия без этой ошибки, но наверняка с другой. Новая версия - новая покупка. Так на исправлении одних ошибок можно делать деньги. На семинаре по продуктам Embarcadero в Нижнем Новгороде программисты сетовали на то, что линейка средств разработки от Microsoft более продвигается. Я не использовал их средства, но судя по Windows могу предположить, что если бы в их продукте обнаружилась подобная ошибка, то они выпустили бы заплатку, а не новую версию среды. Думаю в этом есть своя доля причины успеха мелкомягких на поприще средств разработки. P.S. Но может быть я не прав и все таки будет выпущен Update2...
  3. Я пишу приложение на планшет под Windows в стиле Metropolis. Для ввода текста я решил использовать свое диалоговое окно. Работать оно будет так: при нажатии пальцем на поле ввода, сверху экрана выпадет небольшое окно с полем ввода и кнопками ОК и Отмена, снизу экрана появится сенсорная клавиатура. Остальная часть экрана затемнится. После ввода текста и нажатия ОК, введенный текст будет вставлен в первоначальное поле ввода. Таким образом, если использовать событие OnEnter, то окно ввода текста вызовется снова при нажатии ОК, так как поле ввода снова получит фокус (сами мне это объяснили). Понятно, что все это можно отследить. Просто событие OnClick подошло бы идеально. Использование отдельного окна обосновано тем, что сенсорная клавиатура закрывает почти весь экран и зачастую не видно что ты вводишь в поле.
  4. На С++Builder XE7 Update 1 OnClick тоже не работает. Я скромно надеюсь, что на нашу тему уже обратит внимание Бровин Ярослав. Потому что изобрести костыль для решения проблемы можно почти всегда...
  5. В VCL есть компонент PageControl. Там, когда вкладки не убираются в окно, их можно расположить либо в несколько строк, либо показать кнопки прокрутки (как в панели контролов RAD Studio). Очень жаль, что по очень многим "простым" параметрам, FMX очень сильно отстает от VCL. Или я ошибаюсь и не сильно ознакомлен с FMX?
  6. С Label понял свою ошибку - свойство HitTest. С Edit понятно, что можно использовать события OnMouseDown, OnMouseUp. А если в приложении будет необходимость сделать прокручивание списка тех же Edit-ов? Тогда при прикосновении сразу вызовется OnMouseDown, а при окончании прокручивания и отпускании пальца вызовется OnMouseUp. Однако ни тот ни другой обработчик не должен вызываться. Вопрос открыт: почему не работает событие OnClick?
  7. Что-то гуру FMX молчат... Неужели подобная ошибка только у меня? Если кому-то не сложно, проверьте у себя, работает ли событие OnClick у компонентов Edit и Label.
  8. Вроде разобрался. Вчера функция FindComponent возвращала NULL, сегодня все нормально. Спишем на конец рабочего дня И понял еще, что функция FindComponent относительная, то есть ищет компоненты не во всем приложении сразу, а по иерархии: "в текущем месте и ниже" того места, откуда она была вызвана.
  9. Привет всем! Возник такой вопрос: возможно ли при работе программы получить доступ к свойствам компонента, зная о нем только его имя в текстовой переменной? Например так: UnicodeString name = L"Button1"; // На форме есть кнопка с именем Button1. Как используя переменную name получить доступ к этой кнопке? В VCL это возможно при помощи функции FindComponent. Она по имени компонента возвращает указатель, который надо привести к переменной нужного класса и управление в руках. В FMX эта функция находится в переменной Application, однако она не находит компоненты. Например, на форме есть Edit1, пишу код: UnicodeString name = L"Edit1"; TEdit *edit = static_cast<TEdit*>(Application->FindComponent(name); // В результате работы данного кода переменная edit принимает значение NULL Что я не правильно делаю?
  10. Первый код - это создание второй формы вручную, а не автоматически. Это экономит память, когда вторая форма не используется. delete - это оператор освобождения памяти, выделенной оператором new. Трассировку делал. Брекпоинт на функции Edit1Click не срабатывает при клике на поле ввода. P.S. На TLabel тоже не работает событие OnClick...
  11. Теперь ясно почему срабатывает повторный вызов второй формы. Спасибо. Но вопрос темы открыт: почему не вызывается событие OnClick? И параллельный вопрос: почему в проекте на VCL все работает как надо и повторного вызова второй формы не происходит (используется событие OnEnter)?
  12. Спасибо. Про экранную клавиатуру не знал.
  13. Прикладываю проект. При щелчке на поле ввода в событии OnEnter создается и вызывается другая форма, на которой тоже есть поле ввода. После закрытия второй формы, текст из ее поля ввода копируется в поле ввода первой формы. При попытке закрытия второй формы, она вызывается снова. Мне не понятно почему так происходит. В проекте на VCL все работает идеально. И OnClick работает, в отличие от FMX. Test.zip
  14. У меня при щелчке на поле ввода, должно вызваться окно, в котором происходит ввод данных (делаю проект в стиле MetropolisUI для установки на планшет). Далее эти введенные данные заносятся в поле ввода, на котором был произведен щелчок. Если использовать Ваш совет, то окно ввода данных будет вызываться при занесении данных в "щелкаемое" поле ввода, а этого не должно быть. И почему не работает событие OnClick???
  15. Привет всем. Столкнулся то ли с багом XE7, то ли с не знанием. Проект FMX под Windows. На форме Edit1, создаю событие Edit1Click. При запуске приложения и щелчке на Edit1 событие Edit1Click не вызывается. В чем причина?
  16. Ничего она никому не должна, ибо это функция из Windows API, а вопрос задан в разделе Android. Соглашаюсь с Вами. Только что увидел в каком разделе задан вопрос.
  17. Простите за назойливость: можно Вас попросить привести скриншоты сенсорной и экранной клавиатур, а так же назовите имена exe файлов для этих клавиатур?
  18. Как понять "не та клавиатура"? Она в винде одна. В принципе "другая" вызваться не может. Ваш код - это просто перевод информации ссылки на хабре с С++ на делфи.
  19. Хабр Вам в помощь! http://habrahabr.ru/company/intel/blog/163333/
  20. В принципе, наверное Вы правы. Тогда ждем ответ от гуру.
  21. Как я понимаю, если в dll будет VCL форма, то все хорошо? Надо посудить, что если библиотека создавалась на основе библиотеки FMX, то и работать с ней надо средствами FMX, то есть загружать и выгружать средствами FMX. Но вероятно я не прав. Я бы поэкспериментировал, а именно попробовал бы поработать с dll из проекта на FMX.
  22. А при пошаговой отладке на какой строке кода происходит зависание?
  23. Мня, мня... А что значит "нативный" элемент управления. В XE7 если у TEdit оставить свойство ControlType в значении Styled и сделать приложение в стиле MetropolisUI, то при вводе текста отображение не корректное. Необходимо менять свойство на Platform. Почему так сделали?
  24. Привет всем! У меня есть несколько вопросов по тому, как установить мной написанный компонент на другом компьютере, чтобы система знала где брать все необходимые файлы. Я задам несколько вопросов. Помогите, пожалуйста. Когда мой компонент будет готов, какую сборку мне делать: Debug или Release? Вроде в обоих случаях все работает... После компиляции моего компонента, для переноса на другой компьютер, мне будут нужны файлы *.bpl, *.bpi и *.h. Так? На другом компьютере я кладу каждый из файлов в свои папки (*.bpl в папку BPL, *.bpi в папку BPI, *.h в папку H. Пути к папкам будут разные. Как мне теперь установить мой компонент в систему и настроить пути к файлам так, чтобы можно было открыть новый проект, добавить мой компонент и спокойно делать компиляцию? P.S. Сейчас я пробовал делать так: Component->Install Packages... После этого компонент появляется на палитре. Если его добавить в приложение и сделать запуск, то система спрашивает где взять выше указанные файлы. Я их указываю, но в самом конце система все равно говорит, что не найден файл (не помню какой точно, но вроде *.bpl).
×
×
  • Создать...