Einzelnen Beitrag anzeigen

blackdrake

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

Re: Exception EAccessViolation bei inherited add()

  Alt 18. Aug 2008, 23:10
Hallo.

Ich habe bei meinem Demoprojekt die ganzen Schritte von OnCreate() in ein Button-Click-Ereignis geschoben (soll später in OnShow, mit Aufruf von Loaded). Bei OnCreate ist die ImageList ja noch gar nicht geladen, weswegen es das Loaded() Problem gab (das du für mich gefunden hast).

Ich erhalte bei folgender Stelle nun eine Meldung "Listenindex überschreitet Maximum 0":

Delphi-Quellcode:
with tag_history.Columns.Add do
begin
  Caption := '1'; // EXCEPTION
  Width := (tag_history.Width - 20) div 3 * 2;
end;
Das Seltsame:

Delphi-Quellcode:
function TSortListColumns.Add: TSortListColumn;
begin
  Result := TSortListColumn(inherited Add);
end;
Der Debugger sagt bei F7 nicht, dass es bei "inherited Add" weiter (in die "tiefe") geht!!

Normalerweise sollte er bei

Delphi-Quellcode:
{ ComCtrls }

function TListColumns.Add: TListColumn;
begin
  Result := TListColumn(inherited Add);
  UpdateCols;
end;
weitermachen! Hier wird der Haltepunkt aber niemals erreicht.

Auch die noch weiter oben liegende Weiterleitung

Delphi-Quellcode:
{ Classes }

function TCollection.Add: TCollectionItem;
begin
  Result := FItemClass.Create(Self);
  Added(Result);
end;
wird niemals erreicht...

Komisch. TSortListColumns ist das Kind von TListColumns, also müsste doch die inherited-Variante bei TListColumns.Add() anknüpfen, oder nicht???

Irgendeine Idee?

Gruß
Daniel Marschall
blackdrake
Angehängte Dateien
Dateityp: zip sortlistviews-erweiterung-wip2_146.zip (282,1 KB, 0x aufgerufen)
Daniel Marschall
  Mit Zitat antworten Zitat