ПредишенСледващото

Аз открих съобщение WM_SETREDRAW. Тя дава възможност за известно време, за да изключите преначертае контрола (кутия), като по този начин освобождава потребителя от ненужни трептящата контур, и други подобни. Кандидатствах в неговата сплитер. Сега, когато преоразмеряване - красота. Сравнете двете анимации (като тази GIF - спаси черно-бяло, или се появяват цветни артефакти).

Преди да кандидатствате WM_SETREDRAW:

Тя перфектно показва, че панела в ляво на сплитера не успява да се съставя (и точно зад).

И това е след код рамка, за да се промени AlignControl'a ширина WM_SETREDRAW:

Рамкиране кодът изглежда по следния начин:

Бих искала да отбележа, че ако просто се пребоядиса родителя (по отношение на сплитер за) контрола, като се обадите Parent.Repaint - перата също няма да бъде, но има трептене, че много по-натоварени (от примера) контролни случая.

Тази техника може да се използва в случаите, когато това е необходимо в един прозорец pereraspolozhit няколко контроли. Е, като пример, когато в IDE променило Layout (Desktop speedsetting) - без да блокира потребителят вижда рисунка неприятно трептене.

И още един важен момент: WM_SETREDRAW промените видимостта на прозореца (като че ли е скрит, но площта под прозореца - не е преначертани). И ако прозорецът е била скрита, тя може да бъде показана погрешно (и обратно), така че не забравяйте да проверите тази точка.

Да, благодаря ти. Този трик се направи с TForm - общоопасни (под формата на даден потребител кликне върху мишката попадне "под" форма и форма губи съсредоточи). Затова е по-добре да се сложи всички контроли на TPanel и "игра" с него вече.

Въпреки това, в случай, че разпределител - такава операция е невъзможно, тъй като Този код работи с вече заловените мишката

Въпреки, че ако наистина се опитаме - може :)
(Има ли възможност да зададете програмно IsSnapped имот). Сега тук мисля, какво да правя.

Добре, остава така. Всички съвети - използване на панели или рамки.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!