AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung beim Freigeben von Objekten

Ein Thema von stifflersmom · begonnen am 20. Feb 2018 · letzter Beitrag vom 22. Feb 2018
 
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
381 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Zugriffsverletzung beim Freigeben von Objekten

  Alt 20. Feb 2018, 09:33
Moin,
ich seh hier gerade meinen Fehler nicht, vielleicht schubst mich mal jemand in die richtige Richtung.

Ich fülle eine ComboBox mit einem erstellten Objekt und addObject. Das und der Zugriff darauf funktionieren, so weit ich das sehe, einwandfrei.
Aber in meiner Routine zum Freigeben des Speichers beim Schließen des Formulars knallts... aber warum?

Das Objekt:
Code:
type
  TGenericArticleModule = class
  private
    fCaption: string;
    fBg_Nr: Integer;
    property caption: string read fCaption;
    property Bg_nr: Integer read fBg_Nr;
    constructor Create(const caption: string; const bg_nr: Integer);
  end;
Das Hinzufügen zur Combobox:
Code:
procedure TfGenericArticle.GetModules;
var
  gaModule: TGenericArticleModule;
  sAssemblyGroup: string;
  iBg_nr: Integer;
begin
  if q_Work.Active then
    q_work.Close;
  q_work.SQL.Text := sSql_GenericArticleModule;
  q_work.Open;
  while not q_work.Eof do
    begin
      sAssemblyGroup := q_work.FieldByName('assembly_group_description').AsString;
      iBg_nr := q_work.fieldByname('bg_nr').AsInteger;
      gaModule := TGenericArticleModule.Create(sAssemblyGroup, iBg_nr);
      cb_module.Items.AddObject(sAssemblyGroup, gaModule);
      q_work.Next;
    end;
  if q_work.Active then
    q_work.Free;
end;
Und hier die Routine zum Freigeben des Speichers, wird beim Close des Formulars aufgerufen:
Code:
procedure TfGenericArticle.FreeObjects(targetList: Tstrings);
var
  I: Integer;
begin
  for I := targetList.Count - 1 downto 0 do
    targetList.Objects[i].Free;
end;

procedure TfGenericArticle.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  FreeObjects(cb_module.Items); // Hier kommt die Zugriffsverletzung
end;
Für einen kleinen Tipp wär ich dankbar
  Mit Zitat antworten Zitat
 


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 14:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz