Create mit eigenen Parametern will nicht
Hallo zusammen,
ich habe wieder ein Problem und zwar habe ich bei einer Bestimmten Klasse einen Constructor, der wie folgt aussieht:
Delphi-Quellcode:
Ich habe eigentlich schon alles gecheckt, VerwaltungsKlasse ist initialisiert, das Array ist gefüllt und eigentlich dürfte nichts schiefgehen, oder gibt es da wieder Regeln bezüglich bestimmter Dinge, die man beim Create nicht tun sollte?
constructor TMeineKlasse.Create(index: integer);
begin inherited Create; self.FIndex:= index; self.FWert:= StrToInt(VerwaltungsKlasse.Array[index].Wert);//Hier stürzt das Programm ab. end; Das Array ist übrigens gefüllt mit Records mit verschiedenen Werten. |
AW: Create mit eigenen Parametern will nicht
Übergib lieber den Wert und greife nicht auf ein externes Objekt zu. Du kannst Dir nicht seicher sein, ob dieses existiert, für die Unit sichtbar ist oder ein anderes Objekt im Scope ist.
|
AW: Create mit eigenen Parametern will nicht
Hallo,
wie äußert sich der Absturz? Wie viele Einträge hat das Array, welchen Wert hat Index ? Womit beginnt das Array, mit 0 oder 1? Den Parameter solltest die besser AIndex nennen, Dann musst du nicht mit Self hantieren (hier ja eh nicht). Setze mit F5 einen Breakpoint und schau dir deine Variablenwerte an. Heiko |
AW: Create mit eigenen Parametern will nicht
Also, in der VerwaltungsKlasse wird beim Create das Array aus einer Typisierten Datei geladen. Dazu wird einfach in einer Schleife von 0 hochgezählt. Da ich entsprechend synchron eine Liste mit Instanzen von TMeineKlasse benötige, wird noch in der Schleife jeweils ein Objekt von TMeineKlasse erzeugt und der Liste hinzugefügt. Schon beim 1. Create von TMeineKlasse kracht es, da ist der Index noch 0.
Fehlermeldung ist nur das bekannte EXC_BAD_ACCESS. Könnte es vielleicht daran liegen, dass ich das Create praktisch noch im Create von der VerwaltungsKlasse aufrufe? Wie ließe sich das sonst lösen, denn ich muss ja irgendwie doch auf die VerwaltungsKlasse zugreifen können? |
AW: Create mit eigenen Parametern will nicht
Zitat:
|
AW: Create mit eigenen Parametern will nicht
Zitat:
Zitat:
Es gibt mehrere Möglichkeiten das zu lösen. Zum Beispiel kannst du einen direkten Zugriff auf die andere Klasse in der einen und Events in der anderen Richtung nutzen. |
AW: Create mit eigenen Parametern will nicht
Zitat:
|
AW: Create mit eigenen Parametern will nicht
Zitat:
Dazu noch ein kleines Beispiel: Wenn du an einem Kiosk (Klasse TKiosk) eine Zeitung (TProduct) kaufen möchtest, übergibst du dann deinen Geldbeutel (TWallet) damit der Kioskbesitzer sich das Geld entnimmt oder übergibst du direkt den Geldbetrag (TMoney)? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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