Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Не могу изменить размер Edit a   Найти похожие ветки 

 
jack128 ©   (2004-02-19 16:30) [0]

Вот такой код компонента (едит и рядом кнопочка)
TButtonEdit = class(TWinControl)
private
FEdit: TEdit;
FButton: TSpeedButton;
{ Private declarations }
protected
{ Protected declarations }
procedure InitSize;
procedure Resize; override;
property Edit: TEdit read FEdit;
property Button: TSpeedButton read FButton;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
end;

{ TButtonEdit }

constructor TButtonEdit.Create(AOwner: TComponent);
begin
inherited;
FEdit := TEdit.Create(Self);
FEdit.Parent := Self;
FButton := TSpeedButton.Create(Self);
FButton.Parent := Self;
FButton.Caption := "...";
FButton.Width := FEdit.Width - 2;
FButton.Height := FButton.Width;
Width := FEdit.Width;
Height := FEdit.Height + FButton.Height;
InitSize;
end;

procedure TButtonEdit.InitSize;
begin
FButton.Top := 0;
FEdit.Top := 0;
FEdit.Height := Self.Height;
FButton.Height := FEdit.Height;
FButton.Width := Self.Height;
FEdit.Left := 0;
FEdit.Width := Self.Width - FButton.Width;
FButton.Left := FEdit.Width;
end;

procedure TButtonEdit.Resize;
begin
inherited;
InitSize;
end;
В дизин тайм при измении размеров все выгледит ОК, а вот в ран тайм едит не меняет своих размеров. Я так поминаю delphi где то еще меняет размеры едита, но не вызывает Resize? Пробовал вызывать InitSize в обработчике wm_size - тот же нулевой эффект. Почему так происходит?


 
NAlexey ©   (2004-02-19 16:52) [1]

Все нормально ресайзится, мож что не так делаю? Я выставляю у TButtonEdit Anchors := [akLeft, akTop, akRight, akBottom] и меняю размеры формы. Все выглядит хорошо.


 
jack128 ©   (2004-02-19 17:08) [2]

Да, с якорями все нормально выглядит. А попробуй вот так

type
TForm1 = class(TForm)
....
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
BE1: TButtonEdit;
public
{ Public declarations }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
BE1 := TButtonEdit.Create(Self);
BE1.Parent := Self;
BE1.Top := 10;
BE1.Left := 10;
BE1.Height := 100;
end;


 
_none_ ©   (2004-02-19 18:12) [3]

to [jack128]
создай свойства Left, Top и т.д. у TButtonEdit и при их изменении подифицируй св-ва кнопки и едита



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-6069
Гиричев Руслан
2004-02-21 18:09
2004.03.03
Как вернуться в прошлое?


3-5966
_san_
2004-02-05 12:16
2004.03.03
SQL Запрос


6-6176
Checist [root]
2003-12-27 03:04
2004.03.03
Проверка полной загрузки


3-5970
ALEX2
2004-02-05 13:27
2004.03.03
Поле типа boolean проставляется автоматически


1-6062
F...
2004-02-20 04:56
2004.03.03
Пара вопросов по размеру и положению окна