AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TStringList - Zugriffsverletzung beim erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList - Zugriffsverletzung beim erstellen

Ein Thema von stiftII · begonnen am 27. Nov 2009 · letzter Beitrag vom 27. Nov 2009
Antwort Antwort
Seite 2 von 2     12   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: TStringList - Zugriffsverletzung beim erstellen

  Alt 27. Nov 2009, 20:54
Moin Stift,

probiers's doch mal so:
(Ich hoffe, die Kommentare helfen Dir weiter)

Delphi-Quellcode:
type
  // Wenn man von TObject ableitet ist es zwar nicht erforderlich das direkt mit anzugeben,
  // ich empfinde es aber als angenehmer die Basisklasse immer explizit anzugeben
  // TTest, da ein neuer Typ immer mit grossem T anfangen sollte
  TTest = class(TObject)

  // Interne Felder als private deklarieren, da sie nicht ausserhalb der Unit in der die
  // Klasse deklariert wurde sichtbar sein sollten (eben intern)
  // Diese sollten immer mit einem grossen F beginnen
  private
    FAll : TStringList;
    FMale : TStringList;
    FFemale : TStringList;

  // Was von aussen zugänglich sein soll, mit der Sichtbarkeit public versehen, damit
  // sie überall zugänglich sind, wo die Klasse instanziert wird.
  public

    // Der Konstruktor sollte auch immer so benannt werden, auch wenn es sich
    // eigentlich um eine Funktion handelt.
    constructor Create;

    // Da im Konstruktor Resourcen belegt werden müssen diese auch wieder freigegeben werden,
    // deshalb wird ein Destruktor benötigt
    destructor Destroy; override;

    // Die internen Felder nur als Eigenschaften zugänglich machen
    // Wenn es sich um Objekte handelt, die von der Klasse selber verwaltet werden, wie in
    // diesem Falle sollte man keinesfalls Schreibzugriff ermöglichen, deshalb kein write.
    property All : TStringList read FAll;
    property Male : TStringList read FMale;
    property Female : TStringList read FFemale;
  end;

  implementation

  constructor TTest.Create;
  begin
    // inherited ist bei der Ableitung von TObject zwar nicht notwendig, würde ich aber
    // sicherheitshalber auch hier mit angeben, falls der Constructor von TObject mal
    // mit Inhalt gefüllt wird.
    inherited;
    FAll := TStringList.Create;
    FMale := TStringList.Create;
    FFemale := TStringList.Create;
  end;

  destructor TTest.Destroy;
  begin
    // Auf das ansonsten meist zu empfehlende FreeAndNil kann man hier verzichten, da
    // die internen Felder nach Abarbeitung des Destruktors in keinem Falle mehr
    // angesprochen werden.
    FAll.Free;
    FMale.Free;
    FFemale.Free;
    // Für das inherited bei Destruktor gilt hier das gleiche wie beim Konstruktor
    inherited;
  end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#12

Re: TStringList - Zugriffsverletzung beim erstellen

  Alt 27. Nov 2009, 23:55
Wow, bin überwältigt.

Danke für die ausführliche Antwort!, habe ne Menge gelernt !!

~stift
  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 05:16 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