Einzelnen Beitrag anzeigen

Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Parameterrückgabe von Form an aufrufenden Prozess

  Alt 9. Mär 2019, 12:23
Hallo,
das SuchForm über eine lokale Variable erzeugen, starten, warten und fertig.

Delphi-Quellcode:
unit2

type
  TSuchForm = class(TForm)
    public
      ItemNr: Integer;
  end;


unit1

procedure TForm1.Suche;
var
  Frm: TSuchForm;
  ItemNr: Integer;
begin
  ItemNr:= 0;

  Frm:= TSuchForm.Create(Self);
  try
    if Frm.ShowModal=mrOK then
    begin
      ItemNr:= Frm.ItemNr;
    end;
  finally
    Frm.Free;
  end;

  if ItemNr=0 then
  begin
    Exit;
  end;

end;
So wie du würde ich es auch lösen. Ich würde lediglich eine execute-Methode dem Form geben:
Delphi-Quellcode:
type
  TSuchForm = class(TForm)
  private
    FItemNr: Integer;
  public
    class function Execute(var AItemNr: Integer): Boolean;
  published
    property ItemNr: Integer read FItemNr write FItemNr;
  end;

...

class function TSuchForm.Execute(var AItemNr: Integer): Boolean;
var
  Form: TSuchForm;
begin
  Form := TSuchForm.Create(nil);
  try
    Form.ItemNr := AItemNr;
    Result := Form.ShowModal = mrOK;
    if Result then
      AItemNr := Form.ItemNr;
  finally
    FreeAndNil(Form);
  end;
end;
Das Form sollte natürlich aus der auto. erstellen Liste des Projekts entfernt werden.
Andreas Lauß
Blog

Geändert von Andreas L. ( 9. Mär 2019 um 12:26 Uhr)
  Mit Zitat antworten Zitat