AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zugriffsverletztung ohne grund - ratlos..
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletztung ohne grund - ratlos..

Ein Thema von Tommy0014 · begonnen am 13. Sep 2007 · letzter Beitrag vom 14. Sep 2007
Antwort Antwort
Seite 2 von 2     12   
s-off
(Gast)

n/a Beiträge
 
#11

Re: Zugriffsverletztung ohne grund - ratlos..

  Alt 14. Sep 2007, 07:59
Dominik hat schön die allgemeine Syntax beschrieben.

Hier noch ein Beispiel mit einer TStringlist, welche im OnCreate Deiner Mainform erzeugt, und im OnDestroy Deiner Mainform wieder freigegeben wird.

@Dominik
Möchte Dir nicht reinpfuschen - nur ist ein Beispiel, welches auf den aktuellen Fall zugeschnitten ist, für manche einfacher zu verstehen. Das allgemeine Vorgehen ist natürlich noch wichtiger.

Delphi-Quellcode:
Unit Unit1;

Interface

Uses
   Windows,
   Messages,
   SysUtils,
   Variants,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs;

Type
   TForm1 = Class(TForm)
      Procedure FormCreate(Sender: TObject);
      Procedure FormDestroy(Sender: TObject);
   private
      lstMeineStringlist: TStringlist; //Deklaration unserer zukünftigen Instanz einer TStringlist
   End;

Var
   Form1: TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.FormCreate(Sender: TObject);
Begin
   lstMeineStringlist := TStringList.Create; //Die Stringliste erzeugen
End;

{
[...]
Hier stehen die Methoden, in denen mit der Stringliste gearbeitet wird.
[...]
}


Procedure TForm1.FormDestroy(Sender: TObject);
Begin
   FreeAndNil(lstMeineStringlist); //Die Stringliste wieder freigeben
End;

End.
  Mit Zitat antworten Zitat
Tommy0014

Registriert seit: 9. Aug 2007
34 Beiträge
 
Delphi 7 Personal
 
#12

Re: Zugriffsverletztung ohne grund - ratlos..

  Alt 14. Sep 2007, 13:25
ah ok danke, werd ich mal ausprobieren, aber noch eine frage was bringt mir das freigeben einer tstringlist?


mfg
tommy
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Zugriffsverletztung ohne grund - ratlos..

  Alt 14. Sep 2007, 13:51
@s-off: kein problem

@Tommy0014:
mit dieser anweisung:
lstMeineStringlist := TStringList.Create; reservierst du speicher auf dem heap der von der Stringlist benutzt wird.
wenn du die Stringliste nicht mehr brauchst kannst du den speicher freigeben, damit andere programme (oder dein programm) diesen speicher wieder benutzen kann und anschließend mit "Destroy" freigegeben wird.
Dies kannst du mit dem destruktor "Destroy" machen, allerdings ist es sicherer den speicher mit "free" freizugeben da bei "free" zuerst geprüft wird ob überhaupt speicher da ist den man freigeben kann.

mit lstMeineStringlist.Free wird er also freigegeben, allerdings "zeigt" lstMeineStringlist immernoch auf den Platz wo der speicher früher war. besser ist also FreeAndNil(lstMeineStringlist) zu verwenden, da hier noch zusätzlich der Zeiger auf NIL (= Not In List) gestellt wird.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Tommy0014

Registriert seit: 9. Aug 2007
34 Beiträge
 
Delphi 7 Personal
 
#14

Re: Zugriffsverletztung ohne grund - ratlos..

  Alt 14. Sep 2007, 14:44
ah ok danke, weil ich dachte was bringt mir das nun versteh ich es... danke an euch

mfg
tommy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:59 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