Пересоздать форму (обновить)

Григорий Карпов

Нужно сделать так, чтобы при нажатии на кнопку происходило что-то в этом роде:
Form1.Free;
Form1.Create;
Form1.Show;
Ну я совсем не знаю как это сделать...
12 ответов

Григорий Карпов

Form1.Update недостаточно?


Григорий Карпов

Григорий Карпов,
Form1.Refresh
не спасет? В чем цель?


Григорий Карпов

Ни то, ни другое не помогло (Form1.Update или Form1.Refresh). Лежит у меня на форме memo, ввожу туда текст, нажимаю на кнопку с этим кодом, а он там остаётся. А мне надо так, чтобы реально, как будто закрыл программу и запустил заново - всё подчистую заново создалось.


Григорий Карпов

Ни то, ни другое не помогло (Form1.Update или Form1.Refresh). Лежит у меня на форме memo, ввожу туда текст, нажимаю на кнопку с этим кодом, а он там остаётся. А мне надо так, чтобы реально, как будто закрыл программу и запустил заново - всё подчистую заново создалось.
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Free;
Application.CreateForm(TForm1, Form1);
Form1.Show;
end;
а если так?Еще как выход: очищать все контролы. Например
memo1.clear;


Григорий Карпов

Лежит у меня на форме memo
Memo1.Clear;


Григорий Карпов

Ни то, ни другое не помогло
Правильно заданный вопрос, половина решения. Ваш вопрос, к последующему уточнению не имеет никакого отношения.


Григорий Карпов

Не выйдет - у меня там слишком много чего лежит...


Григорий Карпов

Не выйдет
Куда оно денется. Очищайте и/или инициализируйте всё что нужно.


Григорий Карпов

Не выйдет - у меня там слишком много чего лежит...
Если вам нужно очищать много полей различных, то создайте процедуру, в которой это все происходит и вызывайте ее когда вам понадобиться.


Григорий Карпов

И не только лежит


Григорий Карпов

Зациклило. Вы читайте внимательно, что вам пишут.


Григорий Карпов

А ещё как быть с опцией отмены (memo.undo), как её например сбросить?
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Free;
Application.CreateForm(TForm1, Form1);
Form1.Show;
end;
Помогло. Спасибо!