unit ClassForm;
interface
uses
Classes, SysUtils, Windows, Controls, Graphics, Forms, Dialogs, StdCtrls;
type
TFormNeu =
class
private
Form : TForm;
GroupBoxArt : TGroupBox;
Radio1 : TRadioButton;
Radio2 : TRadioButton;
ButtonRadioWahl : TButton;
OkButton : TButton;
CancelButton : TButton;
FormNeuEdit : TEdit;
FormNeuLabel : TLabel;
FListeEingang : TStringList;
FListeAusgang : TStringList;
function Aufgabe:
string;
virtual;
procedure NeuerWert(Sender : TObject);
procedure WertSenden(Sender : TObject);
procedure Exit(Sender : TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
public
constructor Create(Logo:
String;
const Liste: TStringList);
destructor Destroy;
override;
property Erstellen :
string read Aufgabe;
property ListeAusgang : TStringList
read FListeAusgang;
end;
implementation
uses Unit1;
constructor TFormNeu.Create(Logo:
string;
const Liste: TStringList);
begin
inherited Create;
FListeAusgang := TStringList.Create;
FListeEingang := TStringList.Create;
FListeEingang.AddStrings(Liste);
end;
destructor TFormNeu.Destroy;
begin
inherited Destroy;
FListeEingang.Free;
FListeAusgang.Free;
//Muss ich hier einzelne Komponenten freigeben ???
// oder reicht es Form.Free ???
Form.Free;
end;
function TFormNeu.Aufgabe :
string;
begin
Form := TForm.Create(Form1);
with Form
do
begin
BorderStyle := bsDialog;
Width := 350;
Height := 322;
Left := Form1.Left + Form1.Width;
Top := Form1.Top;
Caption := FListeEingang.Strings[1];
OnClose := FormClose;
Show;
end;
GroupBoxArt := TGroupBox.Create(Form);
with GroupBoxArt
do
begin
Parent := Form;
Caption := '
Wert-Wahl';
Width := 342;
Height := 59;
Left := 1;
Top := 4;
Show;
end;
Radio1 := TRadioButton.Create(Form);
with Radio1
do
begin
Parent := GroupBoxArt;
Checked := True;
Caption := '
Wert1';
Left := 8;
Top := 21;
Show;
end;
Radio2 := TRadioButton.Create(Form);
with Radio2
do
begin
Parent := GroupBoxArt;
Checked := False;
Caption := '
Wert2';
Left := 8;
Top := 37;
Show;
end;
ButtonRadioWahl := TButton.Create(Form);
with ButtonRadioWahl
do
begin
Parent := GroupBoxArt;
Caption := '
Wert aktivieren';
Width := 100;
Height := 18;
Left := 94;
Top := 37;
OnClick := NeuerWert;
Show;
end;
FormNeuLabel := TLabel.Create(Form);
with FormNeuLabel
do
begin
Width := Form.Width - 50;
Height := 20;
Left := 15;
Top := 200;
Caption := '
Label für sonstwas';
Parent := Form;
end;
FormNeuEdit := TEdit.Create(Form);
with FormNeuEdit
do
begin
Width := Form.Width - 50;
Height := 20;
Left := 15;
Top := 225;
Text := FListeEingang.Strings[0];
Parent := Form;
//PasswordChar := '*';
end;
OkButton := TButton.Create(Form);
with OKButton
do
begin
Width := 80;
Height := 25;
Left := FormNeuEdit.Left;
Top := FormNeuEdit.Top + FormNeuEdit.Height + 10;
Caption := '
OK';
Parent := Form;
Default := True;
OnClick := WertSenden;
end;
CancelButton := TButton.Create(Form);
with CancelButton
do
begin
Width := 80;
Height := 25;
Left := FormNeuEdit.Left + FormNeuEdit.Width - 80;
Top := FormNeuEdit.Top + FormNeuEdit.Height + 10;
Caption := '
EXIT';
Parent := Form;
OnClick := Exit;
Cancel := True;
end;
try
try
FListeAusgang.Add(FormNeuEdit.Text);
//Beim Erstellen der Form gebe ich paar Parameter zurück
except
on E:
Exception do Result := '
Fehler: ' + E.
Message;
end;
finally
//...
end;
end;
procedure TFormNeu.NeuerWert(Sender : TObject);
begin
if Radio1.Checked
then
ShowMessage('
Wert1')
else
ShowMessage('
Wert2');
end;
procedure TFormNeu.WertSenden(Sender : TObject);
begin
Form1.Memo1.Lines.Add(FormNeuEdit.Text);
// Hiermit übergebe ich etwas an die Memo1 in Form1.
end;
procedure TFormNeu.Exit(Sender : TObject);
begin
Form1.ButtonForm_2.Enabled := True;
Form1.ButtonForm_3.Enabled := True;
TForm(Form).Close;
{Damit schliesse ich die zur Laufzeit erstellte Form}
end;
procedure TFormNeu.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
end.