AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Exception EAccessViolation bei inherited add()
Thema durchsuchen
Ansicht
Themen-Optionen

Exception EAccessViolation bei inherited add()

Offene Frage von "blackdrake"
Ein Thema von blackdrake · begonnen am 10. Aug 2008 · letzter Beitrag vom 21. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:01
Hallo.

Man kann doch keine Grund-VCL verändern. Dann würde die VCL ja ohne diese Modifikation nicht laufen.

Ist es so abnormal, eine TColumn durch Ableiten erweitern zu wollen? Kann ich denn nicht einfach relevante Stellen überschreiben, die auf dieses private-Symbol zugreifen?

Ich verstehe außerdem das Problem nicht so ganz:

Wenn ich Funktionen wie z.B. Add() überschreibe, den Vorgänger mit inherited aufrufe und dann innerhalb meiner Funktion eine Konvertierung TColumn -> TSortColumn durchführe, müsste doch alles klaro sein, oder?

Wie sollte ich jetzt vorgehen? Bitte um Vorschläge.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#12

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:02
Wer hat denn gesagt, dass Du die VCL ändern sollst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:05
Entschuldige, ich habe da etwas falsch verstanden. Du meinst also, ich solle alle Stellen überschreiben, die mit TListColumns verbunden sind? Wäre dann die EAccessViolation weg, oder ist das eine Vermutung?
Daniel Marschall
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:09
ADD:

Ich habe gerade bemerkt, dass ich diese Dinger bereits überschrieben habe:

Delphi-Quellcode:
  TSortListView = class(TListView)
  private
    FSortListColumns: TSortListColumns;
    procedure SetSortListColumns(Value: TSortListColumns);
    ...
  published
    property Columns: TSortListColumns read FSortListColumns write SetSortListColumns;
    ...
  end;
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#15

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:44
Was ich gemeint hatte war, den gesamten Source von TCustomListview zu kopieren, in dieser Kopie die relevanten Stellen zu ändern und die gewünschten Funktionalitäten zu ergänzen und das ganze dann als eigene Klasse zu speichern. Ist zwar viel Arbeit, aber eine saubere Lösung.

[edit] TCustomListview heißt das [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:54
Hallo.

Reicht es denn nicht, die relevanten Stellen (die mit Column zu tun haben) in der Ableitung neu zu definieren? Ich habe ja wie bereits erwähnt die wichtigen Funktionen wie SetListColumns(), aber auch TLVColumnClickEvent ersetzt und neu definiert. Das ist doch der Sinn der Ableitung.

Ich wüsste jetzt nicht genau, was ich noch neu definieren sollte, da ich alle Column-Bezogenen Dinge bereits neu definiert / überschrieben habe (anders wäre der Code unkompilierbar gewesen).

Weißt du, wieso es zu der AccessViolation kommt? Für mich ist das immer noch ein Rätsel, da ich keinen Fehler und keine Ungereimtheit sehen kann.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#17

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 14:58
Schau Dir nochmal marabus Beitrag #7 an. Das kannst Du nicht ändern, da es als private deklariert ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 15:03
Ist es denn nicht egal, wenn die untergeordnete Klasse ihr FListColumns vom Typ TListColumns hat?
Meine Klasse hat schließlich ihr eigenes FSortListColumns vom Typ TSortListColumns. Wenn meine Klasse diese Eigenschaft selbstständig handelt, dann ist es doch egal, wenn die untergeordneten Klassen mit dem nicht-erweiterten Typ TListColumns arbeiten, oder?

Verstehst du meinen Gedankengang? (Ist bestimmt absoluter Müll, was ich da denke)

Entschuldige bitte mein großes Unwissen. Wie ich bereits schrieb, habe ich sehr wenig Ahnung von Vererbung und VCL...
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#19

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 15:06
Ach du meinst, Du lässt die Originalliste einfach stehen und biegst die Property Items um? Das könnte evtl. sogar klappen
[edit] Columns, nicht Items (ich bin so verstreut heute ) [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Exception EAccessViolation bei inherited add()

  Alt 12. Aug 2008, 18:34
Irgendwelche Ergebnisse erzielen können? Bei mir negativ. Ich habe lediglich noch herausgefunden, dass die EXE nach der EAccessViolation sich noch ausführen lässt. Aber den Grund habe ich immer noch nicht rausbekommen
Daniel Marschall
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 04:34 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