Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objektzuweisung zu TStrings funktioniert nicht (https://www.delphipraxis.net/166145-objektzuweisung-zu-tstrings-funktioniert-nicht.html)

Popov 31. Jan 2012 21:59

Delphi-Version: 5

Objektzuweisung zu TStrings funktioniert nicht
 
Ich sehe wieder vor lauter Bäume den Wald nicht mehr. Seit paar Stunden sehe ich den Fehler nicht. Das Schöne dabei ist, dass ich den nicht mal reproduziert kriege. Ich habe inzwischen fünf neue, leere Projekte erstellt, diesen Code eingegeben und versucht den Fehler zu reproduzieren, aber es funktioniert immer. Nur hier nicht. Auch habe ich das schon an die 100 mal so in anderen Projekten erstellt. Das ist ein simpler Code.

List ist in diesem Fall eine ListBox.


Delphi-Quellcode:
type
  TInfo = class
    Test: String;
  end;
 
 ...
 
  Info := TInfo.Create;
  Info.Test := 'Test';

  //a := List.AddObject(Str, Info);

  a := List.Add(Str);
  List.Objects[a] := Info;

  Info := TInfo(List.Objects[a]); //Info wird hier nil
   
  ShowMessage(List[a]); // Funktioniert
  ShowMessage(Info.Test); / Es knallt

Luckie 31. Jan 2012 22:16

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Wo wird List erzeugt?

Popov 31. Jan 2012 22:19

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Ok, alles zurück. Es funktioniert. So schnell geht es manchmal mit der Lösung.

Ich sitze nun seit paar Stunden an einem Code der funktionieren sollte und nicht funktioniert.

Des Rätsels Lösung: Statt ListBox habe ich mich verknickt und Memo genommen. Das kann ja nicht funktionieren

//Edit:
Zitat:

Zitat von Luckie (Beitrag 1148606)
Wo wird List erzeugt?

Du warst schon fast auf dem richtigen Weg. ICh habe mich zu sehr auf den Code konzentriert.

DeddyH 1. Feb 2012 07:07

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Und wo ist nun der Unterschied zwischen Listbox.Items und Memo.Lines? Sind doch beides TStrings.

himitsu 1. Feb 2012 09:13

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Beim Memo/RichEdit werden die Objekts nicht gespeichert, da es keine eindeutig stabile Unterteilung der Zeilen gibt, bzw. der Benutzer durch seine Eingaben alles schrotten kann.

Leider wirft TMemoStrings keine Fehlermeldung bei Zuweisung von Objekts.

DeddyH 1. Feb 2012 09:15

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Klar, ich hätte mal einen Kaffee mehr trinken sollen :mrgreen:

himitsu 1. Feb 2012 09:19

AW: Objektzuweisung zu TStrings funktioniert nicht
 
BorCodEmba hätte auch einfach langsam mal eine Exception einbauen können. :angle2:

Popov 1. Feb 2012 09:57

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Zitat:

Zitat von himitsu (Beitrag 1148643)
BorCodEmba hätte auch einfach langsam mal eine Exception einbauen können. :angle2:

Das mit einer Exception wäre eine gute Idee gewesen. Ich saß paar Stunden an den paar Zeilen, habe 100 Abfragen eingebaut, habe die Zeilen immer und immer wieder zerlegt, es musste funktionieren, aber es funktionierte nicht. Es gibt eine Exception, aber erst beim lesen, nicht beim schreiben.

himitsu 1. Feb 2012 10:42

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Wobei dir die Exception mit dem geheimen Text ala "Zugriffsverletzung bei Adresse 00000xxx" (welche man vergessen hat uns zu verraten) dir auch zagen wollte, daß dort etwas fehlt 00000xxx = nil (mit 'nem kleinen Offset)

Und das nil hätte einen schon auf eine gute Fährte bringen können.

DeddyH 1. Feb 2012 10:46

AW: Objektzuweisung zu TStrings funktioniert nicht
 
Trotzdem ist damit nicht leicht auf die Ursache zu schließen, hier wäre eine Exception bei AddObject wirklich angebracht gewesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.
Seite 1 von 2  1 2      

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