Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

Не могу изменить размер 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
14-6229
syte_ser78
2004-02-11 11:19
2004.03.03
как запретить перемещение сплитера?


7-6259
DiMoon
2003-12-15 14:26
2004.03.03
WinSpool


1-6155
Серёга
2004-02-19 12:42
2004.03.03
Получение списка всех папкок


3-5987
AlexLine
2004-02-04 10:06
2004.03.03
DbCtrlGrid


14-6199
марсианин
2004-02-11 16:47
2004.03.03
Имена каталогов после восстановления





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский