unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
const
UM_RESETFORM = WM_USER+100;
type
TForm1 =
class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
procedure HandleResetForm(
var Message: TMessage);
message UM_RESETFORM;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses Consts;
{$R *.DFM}
procedure ResetForm(
const frm:TForm);
begin
if Assigned(frm)
then
begin
// Alle Komponenten auf dem Formular löschen
while frm.ComponentCount > 0
do
frm.Components[0].Free;
(*
frm.Name := '';
Screen.RemoveForm(frm); // leider kann diese Methode nicht aufgerufen werden :-(
frm.Create(frm.Owner); // sonst könnte man den Konstruktor aufrufen
*)
// Komponenten neu laden
if not InitInheritedComponent(frm, TForm)
then
raise EResNotFound.CreateFmt(SResNotFound, [frm.ClassName]);
frm.Visible := True;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Message an das eigene Formular schicken
PostMessage(Self.Handle, UM_RESETFORM, 0, 0);
end;
procedure TForm1.HandleResetForm(
var Message: TMessage);
begin
ResetForm(Self);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := '
Hallo';
Edit2.Text := '
TESTTEST';
end;
end.