Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Своиство Align на компоненте Panel-ь [Delphi, KOL]


AlbertHakimov ©   (2002-09-07 15:50:00) 

Помогите разобраться со свойством Align!
Создаю Panel c выравниванием по левому краю, далее накидываю на panel-ь кнопки ( caButtom ). В ниже привёдённом куску кода, кн. создаются с 3 по 0 и располагаются так: кн. с Caption - "Btn 0" над всеми предыдущими.

Далее я захотел изменить расположение какой-нибудь кн. и вот что обнаружил:
выполнив
procedure TForm1.Button4Click(Sender: PObj); с Edit1.Text=1;
и
procedure TForm1.Button4Click(Sender: PObj); с Edit1.Text=0;

кн. располагаюятся не совсем так как в VCL варианте TPanel,
т.е. кн. с Caption="Btn 1" над кн. с Caption="Btn 0" - как
задумывалось, а совсем наоборот - "Btn 0" над "Btn 1".

Уничтожать и снова создавать кн. можно, но зачем так сложно,
хочется проще

;==================================================
var TmpList :PList;

procedure TForm1.Button3Click(Sender: PObj);
var Btn: PControl;
i: Byte;
begin
TmpList:=NewList;
for i:=3 downto 0 do begin
Btn := NewButton(Panel1, Int2Str(i)).SetAlign(caBottom);
Btn.Caption := Int2Str(i);
Btn.CreateWindow;
TmpList.Add(Btn);
end;
form.Show;
end;

procedure TForm1.Button4Click(Sender: PObj);
var Btn: PControl;
i: Byte;
begin
PControl(TmpList.Items[Str2Int(EditBox1.Text)]).Align:=caTop;
end;

procedure TForm1.Button5Click(Sender: PObj);
begin
PControl(TmpList.Items[Str2Int(EditBox1.Text)]).Align:=caBottom;
end;


Vladimir Kladov   (2002-09-11 09:51:00) [1]

Если очень хочется свой порядок видимости, то TabOrder имеется. В
некоторых случаях помогает создание промежуточных панелей с
EdgeStyle=esNone.


AlbertHakimov   (2002-09-09 16:12:00) [2]

>Если я правильно понял : не соответствует расположение объектов в >запущеном пролекте, от того что задумывалось (при одинаковом >Align)
>у меня тоже кое было. Я так понял от TabOrder это зависит.

Спасибо за отклик.
Но дело, как оказалось, в самом KOL, вернее как он отрабатывает установку свойтсва Align (перебор по номеру дочернего компонента) и следовательно, тот компонент, который раньше создан, а значит и имеет меньщий номер, отработает изменение раньше. И с этим ничего поделать нельзя, ну, по крайней мере я ещё не нашёл :).

Задумывалось, во общем-то, написать компонент, на подобие MS Outllok. Если есть какие-то задумки буду признателен.


BorisMor   (2002-09-09 08:54:00) [3]

Если я правильно понял : не соответствует расположение объектов в запущеном пролекте, от того что задумывалось (при одинаковом Align)
у меня тоже кое было. Я так понял от TabOrder это зависит.


Наверх

Титульная страница Поиск, карта сайта Написать письмо