![]() |
Objekte An Dynamische erstellte Form übergeben
Hallo,
ich habe ein Problem was wahrscheinlich ich soll eine Dynamische Form erstellen und dieser Form ein Objekt übergeben. aber irgendwie bin ich da zu dumm zu.
Code:
irgendwas mache ich falsch bei der übergabe von dem Objekt.//////////MainForm///////////////////////7 procedure TForm13.Button1Click(Sender: TObject); begin with TForm12.Create(self) do try Showmodal; if (ModalResult = mrOK) then begin test1; end; finally free(); end; end; ////////////erstellte Form////////////////////7 procedure TForm12.Button1Click(Sender: TObject); begin Label1.Caption := test.ValueFromIndex[0]; end; procedure TForm12.FormCreate(Sender: TObject); begin test := TStringList.Create; end; function TForm12.ReadTest: TStringList; begin result :=test; end; procedure TForm12.SetWriteTest(const Value: TStringList); begin test.Assign(Value); end; end. Wäre nett wenn mir jemandhelen könnte. im vorraus Danke. |
Re: Objekte An Dynamische erstellte Form übergeben
Erstell dir in der dynamischen Form ein Property, der du das Objekt übergibst.
|
Re: Objekte An Dynamische erstellte Form übergeben
Code:
hab ich noch vergessen dabei zuschreiben. aber wie ruf ich das irgendwie auf
property test : TStringList read ReadTest write SetWriteTest;
|
Re: Objekte An Dynamische erstellte Form übergeben
So aus der Erinnerung, habe hier kein delphi zum testen:
Delphi-Quellcode:
Innerhalb der Funktionen "ReadTest" und "SetWriteTest" greifst Du auf "fTest" zu (nicht auf "Test")
TForm12 = class(TForm)
private fTest : TSringList; // Hier wird die Stringlist gespeichert [...] published property Test : TStringList read ReadTest write SetWriteTest; // Test ist der publizierte Name der Eigenschaft und gleichzeitig // Methode zum Lesen/Schreiben auf fTest |
Re: Objekte An Dynamische erstellte Form übergeben
Hey Danke für eure schnelle Hilfe.
Jetzt Funktioniert es auch soweit nur das ftest jetzt immer leer ist irgendwas stimmt da beim kopieren nicht. habe nicht die große ahnung von delphi tu mich auch mit der Syntax recht schwer aber ich muss leider ein kleines Programm damit schreiben. |
Re: Objekte An Dynamische erstellte Form übergeben
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:
natürlich musst du die "FMeineStringListe" vorher noch im OnCreate erzeugen.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; Gruß Reli |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz