AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Listview - readonly führt zu Zugriffsverletzung?!
Thema durchsuchen
Ansicht
Themen-Optionen

Listview - readonly führt zu Zugriffsverletzung?!

Ein Thema von Hyperspacer · begonnen am 14. Jun 2009 · letzter Beitrag vom 8. Okt 2009
Antwort Antwort
Hyperspacer

Registriert seit: 23. Apr 2006
53 Beiträge
 
Delphi 7 Personal
 
#1

Listview - readonly führt zu Zugriffsverletzung?!

  Alt 14. Jun 2009, 15:37
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 14. Jun 2009, 15:46
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hyperspacer

Registriert seit: 23. Apr 2006
53 Beiträge
 
Delphi 7 Personal
 
#3

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

  Alt 14. Jun 2009, 19:14
Habs eben probiert. Geht leider auch nicht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 14. Jun 2009, 19:27
hmmm, meine ListBoxen waren zwar immer sichtbar, aber da macht schon alleine das ReadOnly Probleme

dann wird wohl das "unsichtbar" noch zusärtzliche Probleme verursachen, aber dafür hab ich keinen Tipp mehr parat
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 14. Jun 2009, 19:48
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:  ListView1.Items.Add.Delete;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Hyperspacer

Registriert seit: 23. Apr 2006
53 Beiträge
 
Delphi 7 Personal
 
#6

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

  Alt 8. Okt 2009, 11:48
@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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 8. Okt 2009, 11:56
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hyperspacer

Registriert seit: 23. Apr 2006
53 Beiträge
 
Delphi 7 Personal
 
#8

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

  Alt 8. Okt 2009, 18:09
Hab das übersehen
aber das gefällt mir am besten!
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:22 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