Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-07-19 14:55:21 ЛС | профиль | цитата
Galkov писал(а):
Есть люди, которые видят.

видимо эта логика держится в строжайшем секрете

Galkov писал(а):
б) нельзя создать специального метода в KOL, меняющего порядок. Очень маленького и простого.

хех

Ну а мне видится все примерно так:
создавая некую среду с элементами где-то в чем-то мы обязательно имеем список их всех ввиде одного массива. Как только перед нами становится задача сделать Align, то не долго думая достаточно забацать примерно такую логику:
 top := 0;
for i := 0 to Controls.Count-1 do
if Controls[i].Align = caTop then
begin
Controls[i].top := top;
top := top + Controls[i].Height;
end;
вот и всего делов-то. А вот чтобы сделать нормальное выравнивание тут извините нужно постоянной сортировкой элементов заниматься по координатам, соответствающим направлению выравнивания.

Да и не осознал я пока каким образом запретить пользователю менять положение элементов на форме при выравнивание путем изменения их координат. Ну и наконец этот наш "специальный метод" визуализировать в редакторе форм так же не представляю как. Наверно выбираем один элемент, потом второй, жмем кнопку "Поменять местами" и получаем результат...

Galkov писал(а):
И единственный способ никогда не обсуждать такие вопросы - сделать зеркальные обработчики для Resize, с возможностью запустить из зеркал это же событие как для парента, так и для чайлдов.

а кто будет заниматься собственно выравниванием?
карма: 27
0