AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Objekte An Dynamische erstellte Form übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte An Dynamische erstellte Form übergeben

Ein Thema von Nightwolf · begonnen am 27. Feb 2009 · letzter Beitrag vom 27. Feb 2009
Antwort Antwort
Nightwolf

Registriert seit: 9. Jan 2008
8 Beiträge
 
#1

Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 09:57
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:



//////////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.
irgendwas mache ich falsch bei der übergabe von dem Objekt.
Wäre nett wenn mir jemandhelen könnte.


im vorraus Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 10:05
Erstell dir in der dynamischen Form ein Property, der du das Objekt übergibst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nightwolf

Registriert seit: 9. Jan 2008
8 Beiträge
 
#3

Re: Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 10:19
Code:
    property test : TStringList read ReadTest write SetWriteTest;
hab ich noch vergessen dabei zuschreiben. aber wie ruf ich das irgendwie auf
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 10:28
So aus der Erinnerung, habe hier kein delphi zum testen:
Delphi-Quellcode:
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
Innerhalb der Funktionen "ReadTest" und "SetWriteTest" greifst Du auf "fTest" zu (nicht auf "Test")
  Mit Zitat antworten Zitat
Nightwolf

Registriert seit: 9. Jan 2008
8 Beiträge
 
#5

Re: Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 11:07
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.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Objekte An Dynamische erstellte Form übergeben

  Alt 27. Feb 2009, 11:19
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz