Текущий архив: 2004.05.16;
Скачать: CL | DM;
ВнизPanel не изменяет размеры Найти похожие ветки
← →
European (2004-04-30 18:02) [0]Добрый день, уважаемые! Вопрос следующий: при создании форма создаётся максимизированной. После минимизации Panel2 не изменяет размеры и закрывает собой StatusBar. Подскажите где я туплю. Заранее благодарен.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, RXSplit;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
StatusBar1: TStatusBar;
RxSplitter1: TRxSplitter;
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Align:=alTop;
RxSplitter1.Align:=alTop;
Panel2.Align:=alClient;
Form1.WindowState:=wsMaximized;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
Panel1.Height:=(Form1.ClientHeight-StatusBar1.Height-RxSplitter1.Height) shr 1;
ShowMessage("Panel1.Height="+IntToStr(Panel1.Height)+#10#13+
"Panel2.Height="+IntToStr(Panel2.Height));
end;
end.
← →
European (2004-04-30 18:21) [1]По-моему решение лежит на поверхности, но что-то я его не вижу :(
← →
Dimaxx © (2004-04-30 22:16) [2]Зачем FormResize??? При Panel2.Align:=alClient она сама изменит размеры!
← →
Fay © (2004-05-01 02:24) [3]Кто "она сама"? Panel1? Да hren!
← →
European (2004-05-01 13:57) [4]
> Dimaxx © (30.04.04 22:16) [2]
> Зачем FormResize??? При Panel2.Align:=alClient она сама
> изменит размеры!
Дык не изменяет же. Уважаемые, помогите пожалуйста!
← →
Cardinal © (2004-05-01 14:44) [5]Если у компонента свойство align установлено в alClient, она
занимает все свободное пространство формы. Если изменить размер
формы, то компонент просто уменьшит/увеличит свои размеры
← →
European (2004-05-01 16:56) [6]
> Cardinal © (01.05.04 14:44) [5]
> Если у компонента свойство align установлено в alClient,
> она
> занимает все свободное пространство формы. Если изменить
> размер
> формы, то компонент просто уменьшит/увеличит свои размеры
Вы пробовали? Мой код приведён выше. Это только у меня глючит?
← →
CPAS © (2004-05-02 08:14) [7]1.
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Align:=alTop;
RxSplitter1.Align:=alTop;
Panel2.Align:=alClient;
Form1.WindowState:=wsMaximized;
end;
Вставь перед Panel2.Align := alClient; строку
StatusBar1.Align := alBottom;
2.procedure TForm1.FormResize(Sender: TObject);
begin
Panel1.Height:=(Form1.ClientHeight-StatusBar1.Height-RxSplitter1.Height) shr 1;
Это совсем не нужно. У тебя просто на Panel2 не хватает места.
Ты ставишь высоту Panel1 в высоту формы - высота статуса - высота сплиттера. А высоту и она занимает у тебя ВСЕ свободное место на форме.
ИТОГО
Убери FormResize!!!!
← →
European (2004-05-02 16:58) [8]
CPAS © (02.05.04 08:14) [7]
Вставь перед Panel2.Align := alClient; строку
StatusBar1.Align := alBottom;
Это помогло. Спасибо. Однако, странно, ведь StatusBar1.Align := alBottom ещё при создании формы в дизайн-тайме.Cardinal © (01.05.04 14:44) [5]
Если у компонента свойство align установлено в alClient, она
занимает все свободное пространство формы. Если изменить размер
формы, то компонент просто уменьшит/увеличит свои размеры
--------------------------------------------------------------------------------
European (01.05.04 16:56) [6]
> Cardinal © (01.05.04 14:44) [5]
> Если у компонента свойство align установлено в alClient,
> она
> занимает все свободное пространство формы. Если изменить
> размер
> формы, то компонент просто уменьшит/увеличит свои размеры
Вы пробовали? Мой код приведён выше. Это только у меня глючит?
--------------------------------------------------------------------------------
CPAS © (02.05.04 08:14) [7]
Убери FormResize!!!!
Вообще-то FormResize нужно для того, чтобы при изменении размеров формы панели имели одинаковую высоту. Как же тут без FormResize?
Страницы: 1 вся ветка
Текущий архив: 2004.05.16;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.041 c