Вот так присваиваю результат ввода и удаляю объекты.
procedure TForm1.ok(Sender: TObject);
begin
Label2.Text := ((Form1.FindComponent('showrect') as TRectangle)
.FindComponent('showedt') as TEdit).Text;
(Form1.FindComponent('showrect') as TRectangle).DestroyComponents;\\удаляю сначала компоненты на showrect
(Form1.FindComponent('showrect') as TRectangle).Parent := NIL; \\потом удаляю сам showrect
(Form1.FindComponent('showrect') as TRectangle).Release;
end;
Все вроде нормально, но после того как нажимаю на кнопку(showbtn) форма не закрывается(на крестик ) и даже не могу переместить окно формы пока я не кликну на любой компонент на этой форме кроме самой формы(edit, кнопка и т.п).
А если сделать все тоже самое только через таймер,т.е таймер будет убивать компоненты, то все работает как надо.
Может причина была в том что кнопка поторая убивала компоненты , не должна была убивать и саму себя?
Вопрос
Aleks133
Уже замучался, помогите.
Вот так создаю окошко в котором поле ввода тескста и кнопка.
procedure TForm1.Label2Click(Sender: TObject);
var
brect: TRectangle;
edt: TEdit;
btn: TButton;
lb: TLabel;
begin
brect := TRectangle.Create(Form1);
brect.Parent := Form1;
brect.Width := 200;
brect.Height := 200;
brect.Fill.Color := TAlphacolors.Red;
brect.Align := TAlignLayout.Center;
brect.Name := 'showrect';
lb := TLabel.Create(brect);
lb.Parent := brect;
lb.Align := TAlignLayout.Top;
lb.Name := 'showlb';
lb.Text := 'Введите коментарий';
lb.TextSettings.Font.Size := 20;
edt := TEdit.Create(brect);
edt.Parent := brect;
edt.Align := TAlignLayout.Center;
edt.Width := brect.Width;
edt.Name := 'showedt';
btn := TButton.Create(brect);
btn.Parent := brect;
btn.Width := 50;
btn.Height := 30;
btn.Align := TAlignLayout.Bottom;
btn.Text := 'OK';
btn.Name := 'showbtn';
btn.OnClick := ok;
end;
Вот так присваиваю результат ввода и удаляю объекты.
procedure TForm1.ok(Sender: TObject);
begin
Label2.Text := ((Form1.FindComponent('showrect') as TRectangle)
.FindComponent('showedt') as TEdit).Text;
(Form1.FindComponent('showrect') as TRectangle).DestroyComponents;\\удаляю сначала компоненты на showrect
(Form1.FindComponent('showrect') as TRectangle).Parent := NIL; \\потом удаляю сам showrect
(Form1.FindComponent('showrect') as TRectangle).Release;
end;
Все вроде нормально, но после того как нажимаю на кнопку(showbtn) форма не закрывается(на крестик ) и даже не могу переместить окно формы пока я не кликну на любой компонент на этой форме кроме самой формы(edit, кнопка и т.п).
А если сделать все тоже самое только через таймер,т.е таймер будет убивать компоненты, то все работает как надо.
Может причина была в том что кнопка поторая убивала компоненты , не должна была убивать и саму себя?
Изменено пользователем Aleks133Ссылка на комментарий
12 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.