Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Adressen von ListItems ändern sich (https://www.delphipraxis.net/183019-adressen-von-listitems-aendern-sich.html)

Wormid 5. Dez 2014 09:46

AW: Adressen von ListItems ändern sich
 
Das mit dem FastMM werden wir mal angehen - Danke für den Tip!

himitsu 5. Dez 2014 10:08

AW: Adressen von ListItems ändern sich
 
Zitat:

Zitat von Wormid (Beitrag 1282322)
Die "alte" Version lief ja vorher auch auf dem gleichen Rechner beim Kunden. (*hust* War XP, ist XP).

Es kann aber auch sein, daß die alten Delphis eine alte API dieser Windows-Komponente benutzen. Beim Richedit gibt es mindestens 4 Versionen und da hat Delphi irgendwann auf eine neuere Version umgestellt, womit sich dort z.B. der Zeilenumbruch im RichEdit von #13#10 auf #13 änderte.

Dejan Vu 5. Dez 2014 11:35

AW: Adressen von ListItems ändern sich
 
Schaut doch bitte einfach in den Quellcode von TListView und sagt dann, ob es irgend etwas mit der API oder dem OS zu tun haben kann. Ich hab hier nur mein olles D6 und da steht nicht drin, das die Instanzen vom OS verwaltet werden. Wäre auch lustig, wenn das OS plötzlich Delphi-Klasseninstanzen drauf hätte. Oder wenn Delphi von sich aus -ab und zu und nur beim Kunden- die Instanz vergisst.

himitsu 5. Dez 2014 11:51

AW: Adressen von ListItems ändern sich
 
Hatte schon kurz reingesehn und auf die Schnelle nix gefunden.

Man könnte sich ja mal via TVirtualMethodInterceptor an eine/alle Item-Instanzen drangängen und vorallem schauen ob/wann das Destroy aufgerufen wird.

Uwe Raabe 5. Dez 2014 15:02

AW: Adressen von ListItems ändern sich
 
Zitat:

Zitat von Dejan Vu (Beitrag 1282323)
Das von Uwe beschriebene 'OwnerDraw'-"Problem" ist nur in "GetItem(Item : TLVItem)" vorhanden, und ob da ein Problem draus wird, würde ich bezweifeln. Denn dieses 'GetItem' hat mit dem Getter von 'Items[Index]' nichts zu tun, denn 'Items' ist eine Liste mit eigenem Getter und liefert einfach das Element an der Stelle zurück (soweit ich mich erinnere).

Stimmt zumindest in neueren Delphis nicht mehr: TListItems.GetItem ruft entweder Owner.GetItem (entspricht TCustomListView.GetItem) auf oder holt sich über ListView_GetItem(Handle, Item) den Pointer auf die Instanz aus Item.lParam. Insofern ist schon das Windows-Control irgendwie in die Speicherung der ListItems involviert.

Dejan Vu 5. Dez 2014 15:31

AW: Adressen von ListItems ändern sich
 
Da muss ich nochmals schauen.... Ich hatte das heute Morgen überflogen, aber der Code dürfte sich nicht geändert haben. Im Zweifelsfall hast Du Recht, weil Du das bestimmt genauer geprüft hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 Uhr.
Seite 2 von 2     12   

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