Hi,
also ich tue mich gerade leicht schwer was deine benamsung und deine formatierung an geht.
das ist unleserlich und wenn jede 2. variable / funktion "test" heißt hat man null übersicht was wo passiert. daher mal ein kleiner tipp von mir:
1. Gib jeder variable, funktion, klasse einen aussagekräftigen namen!
2. formatier deinen quellcode. so unleserlich wirst du unglücklich damit
3. bei solch unstrukturierten codes bitte mehr als nur die hand voll funktionen anhängen
4. die delphi tags benutzen
5. den quellcode kommentieren
so ist mein lösungsvorschlag:
Delphi-Quellcode:
type
TAufruferForm = class(TForm)
procedure ButtonErstelleDynamischeForm(Sender: TObject);
private
FMeineStringListe : TStringList;
// ....
end;
TDynamischerstellteForm = class(TForm)
private
FAusgabeListe: TStringList;
procedure SetAusgabeListe(const Value: TStringList);
// ....
public
procedure TuIrgendwas;
property AusgabeListe: TStringList read FAusgabeListe write SetAusgabeListe;
end;
////////////Main Form////////////////////
procedure ButtonErstelleDynamischeForm(Sender: TObject);
begin
with TDynamischerstellteForm.Create(self) do
begin
try
// Zuweisen der Stringliste
AusgabeListe := self.FMeineStringListe;
// Aufrufen
Showmodal;
if (ModalResult = mrOK) then
begin
TuIrgendwas;
end;
finally
Free;
end;
end;
end;
////////////erstellte Form////////////////////
{ TDynamischerstellteForm }
procedure TDynamischerstellteForm.SetAusgabeListe(const Value: TStringList);
begin
FAusgabeListe := Value;
end;
procedure TDynamischerstellteForm.TuIrgendwas;
begin
// Wurde die liste zugewiesen?
if Assigned(FAusgabeListe) then
begin
FAusgabeListe.Clear;
end;
end;
natürlich musst du die "FMeineStringListe" vorher noch im OnCreate erzeugen.
Gruß
Reli