Главная страница
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.019 c
1-6020
TUser
2004-02-19 12:07
2004.03.03
Breakpoint


4-6270
Bless
2003-12-25 15:19
2004.03.03
обработка сообщений в консольном приложении


8-6164
esVer
2003-10-31 15:41
2004.03.03
Bitmap как результат ф-ции


3-5997
snake7
2004-02-05 13:09
2004.03.03
Работа ч/з ADO


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