AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form2 soll auf das ClientSocket von Form1 zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Form2 soll auf das ClientSocket von Form1 zugreifen

Ein Thema von sk0r · begonnen am 10. Jun 2007 · letzter Beitrag vom 11. Jun 2007
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Form2 soll auf das ClientSocket von Form1 zugreifen

  Alt 10. Jun 2007, 21:00
Hallo,

ich habe den Eindruck, dass du die in diesem Thread gemachten Lösungsvorschläge gar nicht bewerten kannst. Es besteht jetzt die Gefahr, dass wir dir ein Detailproblem lösen und dich damit auf einem Holzweg begleiten.

Wenn du eine Komponente aus der Palette auf eine Form (Form1) ziehst, dann werden ihre wesentlichen Eigenschaften in der DFM-Datei (letzten Endes ein resource file) gespeichert und beim Erzeugen der Form wird die Komponente zusammen mit dieser instanziert. Die Form ist dabei der Eigentümer dieser Komponente und der Lebenszyklus der Komponente ist an den Lebenszyklus der Form gebunden. Wird die Form zerstört, dann wird auch die Komponente zerstört.

Übergibst du eine solche Komponente an eine andere Form (Form2), so wird dort eine Referenz gespeichert. Eigentümer bleibt die andere Form (Form1) und es ergeben sich Zugriffsprobleme, wenn Form1 zerstört wird, denn dann wird auch die Komponente zerstört und die Referenz in Form2 wird ungültig. Es ist deine Aufgabe dann dafür zu sorgen, dass die Referenz auf nil gesetzt wird.

Solange du also den Vorschlag von Jens aus Beitrag #3 umsetzt, hast du in Form2 eine Referenz und kein eigenständiges Objekt. Also musst du dort auch keine Instanzierung durchführen, das geschieht ja schon in Form1 - wie oben erläutert. Dein Fehler hat eine andere Ursache.

Deiner Klasse in Beitrag #4 fehlt übrigens ein Konstruktor, der die Objektvariable vom Typ TClientSocket instanziert - und eine entsprechender Destruktor, der sie wieder zerstört.

Gute Nacht.
  Mit Zitat antworten Zitat
 


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 19:02 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-2025 by Thomas Breitkreuz