Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listview - readonly führt zu Zugriffsverletzung?! (https://www.delphipraxis.net/135609-listview-readonly-fuehrt-zu-zugriffsverletzung.html)

Hyperspacer 14. Jun 2009 15:37


Listview - readonly führt zu Zugriffsverletzung?!
 
Hallo,
Ich habe zwei Forms. Eine aktive Hauptform und eine unsichtbare form2. In Form2 befindet sich ein Listview im vsReport mit 13 Einträgen.
Nun weise ich von der hauptform aus den 13 Einträgen in der Listview neue texte für die subitems zu. Dabei ist die Form2 unsichtbar. Wenn ich die listview nicht auf readonly habe, funktioniert das einwandfrei.
Stelle ich die listview im objektinspektor auf readonly und versuche das gleiche wie oben beschrieben gibts nen fehler (zugriffsverletzung). Das listview "glaubt", es hätte keine einträge (items.count ergibt 0)... aber es hat welche!!! Ich habe sie im Designer hinzugefügt... Wenn ich dann die form2 über einen button manuell sichtbar schalte, sind die einträge vorhanden. Wenn ich sie dann wieder unasichtbar schalte und wieder versuche neue subitems zuzuweisen, funktioniert es... das listview gibt dann bei items.count auch wieder 13 aus.

Kann mir jemand dieses Phänomen erklären? Und mir sagen wie ich die Listview dazu bringe, zu wissen dass sie einträge enthält ohne sie einmal zu zeichnen?

Liebe Grüße
Daniel

himitsu 14. Jun 2009 15:46

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
erklären kann ich es nicht, aber meine bisherige Lösung:

schalte das ReadOnly aus, bevor du was an der ListView änderst und setz das ReadOnly danach wieder auf True :nerd:

Hyperspacer 14. Jun 2009 19:14

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
Habs eben probiert. Geht leider auch nicht :(

himitsu 14. Jun 2009 19:27

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
hmmm, meine ListBoxen waren zwar immer sichtbar, aber da macht schon alleine das ReadOnly Probleme :wall:

dann wird wohl das "unsichtbar" noch zusärtzliche Probleme verursachen, aber dafür hab ich keinen Tipp mehr parat :?

jaenicke 14. Jun 2009 19:48

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
Also das ReadOnly macht hier mit Delphi 2006 keine Probleme, aber solange die ListView nicht angezeigt wurde, werden auch die vordefinierten Einträge nicht hinzugefügt.

Einfache Lösung: Die Einträge erst in OnCreate des zweiten Formulars hinzufügen. Seltsamerweise werden nach dem Hinzufügen des ersten Eintrags per Code auch die anderen hinzugefügt, die in der IDE hinzugefügt wurden...

Notfalls (wenns wirklich in der IDE eingefügt werden soll, was meistens wenig sinnvoll sein dürfte) reicht auch in FormCreate diese Zeile:
Delphi-Quellcode:
  ListView1.Items.Add.Delete;

Hyperspacer 8. Okt 2009 11:48

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
@jaenicke:
Die Lösung habe ich jetzt noch nicht ausprobiert, aber sie klingt vielversprechend.
Ich habe mir in der zwischenzeit meine eigenes Readonly gebastelt: Im OnEditing Event der Listview sende ich den Tatendruck Return an die Listview selber. Dadurch wird das sich öffnende Editfenster gleich wieder geschlossen. Sehen tut man davon nichts;-)

himitsu 8. Okt 2009 11:56

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
Zitat:

Zitat von Hyperspacer
Ich habe mir in der zwischenzeit meine eigenes Readonly gebastelt: Im OnEditing Event der Listview sende ich den Tatendruck Return an die Listview selber. Dadurch wird das sich öffnende Editfenster gleich wieder geschlossen. Sehen tut man davon nichts;-)

Warum dort nicht einfach AllowEdit auf False setzen?
Dieses würde doch gleich verhindern, daß das Edit überhaupt erst angezeigt wird.

Hyperspacer 8. Okt 2009 18:09

Re: Listview - readonly führt zu Zugriffsverletzung?!
 
Hab das übersehen :mrgreen:
aber das gefällt mir am besten!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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