AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Add element into object list erzeugt eine access violation
Thema durchsuchen
Ansicht
Themen-Optionen

Add element into object list erzeugt eine access violation

Ein Thema von bernhard_LA · begonnen am 11. Jan 2022 · letzter Beitrag vom 11. Jan 2022
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

Add element into object list erzeugt eine access violation

  Alt 11. Jan 2022, 13:16
was ist denn an dem code sample unten falsch, warum kommt es hier zu einer AV beim Einfügen eines neuen Elements ?


Delphi-Quellcode:
type
  /// <summary>
  /// read content between start search key and ending search key word
  /// </summary>
  TPContent = class
    InstanceType: String;
    text_startPos: Integer;
    text_StopPos: Integer;
    InstanceString: String;
  end;

type
  TPList = class(TobjectList<TPContent>)

  private
 fInfoStrlst: TStringList;

  public

    constructor Create;

    destructor Destroy; override;

    procedure SavetoFile(aFilename: String);

   property InfoStrLst: TStringList read fInfoStrlst write fInfoStrlst;

  end;



procedure TForm2.Button2Click(Sender: TObject);
var
  aPlist: TPlist;
  aPContent: TPContent;
  i: Integer;
begin
  aPlist := TPlist.Create;

  for i := 0 to 1000 do
  begin
    aPContent := TPContent.Create;
    aPContent.InstanceType := 'xxxxx';
    aPContent.InstanceString := 'CCCCCCCC';
    aPContent.text_startPos := 0;
    aPContent.text_StopPos := 0;
    aPlist.Add(aPContent); // hier tritt der AV Fehler auf
  end;

end;


Fehler

Delphi-Quellcode:
  // Calculate the needed size of the heap object
  t := PDynArrayTypeInfo( PByte(typeInfo) + PDynArrayTypeInfo(typeInfo).name );
  elSize := t.elSize;

Geändert von bernhard_LA (11. Jan 2022 um 13:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Add element into object list erzeugt eine access violation

  Alt 11. Jan 2022, 13:18
inherited vergessen?



Ist natürlich bissl doof, wenn alle Funktionen geheim sind und wir nix sehn.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Add element into object list erzeugt eine access violation

  Alt 11. Jan 2022, 13:26
@ Danke & Volltreffer !



die alte version der Klasse war :

Delphi-Quellcode:

TPList = class(TobjectList<TPContent>)

    procedure SavetoFile(aFilename: String);

  end;
und da brauchte es keine Constructor in keine inherited

Geändert von bernhard_LA (11. Jan 2022 um 13:29 Uhr)
  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 11:53 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