POV Опубликовано 23 июня, 2015 Поделиться Опубликовано 23 июня, 2015 Для VCL примеров полно, но тут никакой реакции на повторение этих примеров нет. Примеры вот такого типа BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_MOVING, System::Messaging::TMessage, OnMove) END_MESSAGE_MAP(TForm) MESSAGE void __fastcall OnMove(System::Messaging::TMessage &Message); Может оно как-то принципиально не так в FMX делается? Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 23 июня, 2015 Администраторы Поделиться Опубликовано 23 июня, 2015 Могу только предложить перекрыть метод procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Этот метод всегда вызывается, когда меняется положение или размер формы. P.S. Надо не забыть вызвать базовый метод. Цитата Ссылка на комментарий
0 POV Опубликовано 23 июня, 2015 Автор Поделиться Опубликовано 23 июня, 2015 (изменено) Мммм.. сделал я virtual void __fastcall SetBounds(int ALeft, int ATop, int AWidth, int AHeight); Этот метод действительно вызывается. Но значения координат и размеры не присваиваются никуда. В этом методе присвоить нельзя - оно начинается вызываться бесконечно.. как быть чтобы не по-колхозному? Изменено 23 июня, 2015 пользователем Brovin Yaroslav Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 23 июня, 2015 Администраторы Поделиться Опубликовано 23 июня, 2015 Покажите код самой реализации вашего перекрытого SetBounds. Цитата Ссылка на комментарий
0 POV Опубликовано 23 июня, 2015 Автор Поделиться Опубликовано 23 июня, 2015 Ну как код.. предельно тупой код )) void __fastcall TfrmMain::SetBounds(int ALeft, int ATop, int AWidth, int AHeight) { // Left = ALeft; // Top = ATop; // Width = AWidth; // Height = AHeight; Caption = ALeft; } Это неверно? (я имею в виду закомменченые присваивания) Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 23 июня, 2015 Администраторы Поделиться Опубликовано 23 июня, 2015 Надо не забыть вызвать базовый метод. Цитата Ссылка на комментарий
0 POV Опубликовано 23 июня, 2015 Автор Поделиться Опубликовано 23 июня, 2015 (изменено) Всё, сообразил void __fastcall TfrmMain::SetBounds(int ALeft, int ATop, int AWidth, int AHeight) { TForm3D::SetBounds(ALeft, ATop, AWidth, AHeight); И вот тогда уж вопросы отвлеченные чтобы тему не создавать: 1) за годы пользования делфями народ наводнил инет вопросом о событии перемещения формы. Отчего этот event в новой библиотеке ввести не захотели? 2) чекбокс и радиобаттон по событию онклик имеют пока ещё не изменённое состояние. В отличие от VCL. Это сознательно сделано или недоработка? Изменено 23 июня, 2015 пользователем POV Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 23 июня, 2015 Администраторы Поделиться Опубликовано 23 июня, 2015 Я думаю, что событие для формы OnMove не будет лишним. От себя скажу, что не видел среди реквестов на добавление этого события. Но согласен, что оно будет полезным. На сколько я знаю, Click у нас приходит до OnMouseUp. Не могу вам так с лёту сказать почему. Но на моей памяти, что-то было связано с экшенами. Если хочется получить актуальное состояние изменения CheckBox или RadioButton используйте специальное событие OnChange. Цитата Ссылка на комментарий
0 POV Опубликовано 23 июня, 2015 Автор Поделиться Опубликовано 23 июня, 2015 (изменено) Спасибо за помощь.. ПыСы 1) Касаясь OnMove формы вопрос частый - люди пытаются делать "прилипающие" окошки как в winamp. 3) Может я чего не так делал, но OnChange случается лишь при потере фокуса контрола. Та же ерунда с Едитом, пришлось вопреки привычке использовать OnChangeTracking если не сложно, то не посмотрите вон ту старую мою тему? ...там я так и не смог ничего сделать. http://fire-monkey.ru/topic/1116-kmmeru-iz-freima-peredat-glavnoi-forme/ Изменено 23 июня, 2015 пользователем POV Цитата Ссылка на комментарий
Вопрос
POV
Для VCL примеров полно, но тут никакой реакции на повторение этих примеров нет.
Примеры вот такого типа
Может оно как-то принципиально не так в FMX делается?
Ссылка на комментарий
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.