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 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.