Jeg har prøvet at lave 2 forme hvor 1. form har en label1. og en button1.
når man trykker på på button så åbner en ny form hvor en edit1 og button1 findes.
når man har indtastet noget i edit1 og trykket button knappen, så skal formen lukkes og det
der er indtastet skal overføres i Label1. og det virker bare ikke.
Du skal tilføje et "Event" til din indtastningsform:
type
TOnInput = procedure (ASender : TObject; AText : String; AAccepted : Boolean) of object;
TMyInput = class(TForm)
edtInput: TEdit;
btnOk: TButton;
btnCancel: TButton;
procedure btnOkClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure MyInputCreate(Sender: TObject);
private
FOnInput : TOnInput;
public
property OnInput : TOnInput read FOnInput write FOnInput;
end;
implementation
procedure TMyForm.btnOkClick(Sender: TObject);
begin
if Assigned(FOnInput) then
begin
FOnInput(Self, edtInput.Text, True);
end;
end;
procedure TMyForm.btnCancelClick(Sender: TObject);
begin
if Assigned(FOnInput) then
begin
FOnInput(Self, edtInput.Text, False);
end;
end;
procedure TMyForm.MyInputCreate(Sender: TObject);
begin
FOnInput := nil;
end;
Du skal nu, i din hoved form, implementere en event funktion:
TMainForm = class(TForm)
Label1 : TLabel;
btnTest: TButton;
procedure btnTestClick(Sender: TObject);
private
procedure OnInput(ASender : TObject; AText : String; AAccepted : Boolean);
protected
procedure DoInput(ADefaultText : String);
end;
implementation
procedure TMainForm.OnInput(ASender : TObject; AText : String; AAccepted : Boolean);
begin
if (AAccepted) then
begin // Wheee, nyt input :0)
Label1.Caption := AText;
end
else
begin
// Ups, input var "canceled"
Label1.Caption := 'Ups...no go!';
end;
end;
procedure TMainForm.DoInput(ADefaultText : String);
var
Dlg : TMyInput;
begin
Dlg := TMyInput.Create;
Dlg.edtInput := ADefaultText;
Dlg.OnInput := OnInput;
Dlg.ShowModal;
Dlg.Free;
end;
procedure TMainForm.btnTestClick(Sender: TObject);
begin
DoInput('Hello world!');
end;
Så skulle du kunne få dine informationer tilbage :0)
Du må selv implementere dine forms og de buttons, Edits og Labels som skal bruges.
Jeg har ikke testet koden (så jeg kan ikke garantere at der ikke er en "taste-bæ" eller to i mellem) men det skulle give dig noget at gå ud fra.
God fornøjelse
Michael.