Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Stringlists (.free) (https://www.delphipraxis.net/107739-problem-mit-stringlists-free.html)

Apollonius 1. Feb 2008 14:03

Re: Problem mit Stringlists (.free)
 
In Destruktoren werden ja auch andere Dinge gemacht als die eigentliche Zerstörung (die erfolgt in FreeInstance).

omata 1. Feb 2008 14:09

Re: Problem mit Stringlists (.free)
 
Deine Fragen wurden schon beantwortet...

Zitat:

Zitat von Kroko1999
Erstellen im FormCreate-Ereignis und zerstören im FormDestroy-Ereignis ist imho die beste Lösung!

Zitat:

Zitat von Kroko1999
dann sollte er die globalen in lokale Klassen-Variablen umwandeln!

Also so...
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
    { Private-Deklarationen }
    Fsc  : TStringlist;
    Ftx  : TStringlist;
    Fms  : TStringlist;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  // hier werden niemals eigene Variablen deklariert.

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Fsc := TStringlist.Create;
  Ftx := TStringlist.Create;
  Fms := TStringlist.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Fsc.free;
  Ftx.Free;
  Fms.Free;
end;

end.
Gruss
Thorsten

Kroko1999 1. Feb 2008 14:11

Re: Problem mit Stringlists (.free)
 
@omata: ja, aber dann bitte mit einem F vor privaten Variablen!

omata 1. Feb 2008 14:13

Re: Problem mit Stringlists (.free)
 
Ups, du hast natürlich recht. Habs nur kopiert, sorry :oops:

Helmi 1. Feb 2008 14:15

Re: Problem mit Stringlists (.free)
 
Zitat:

Zitat von Kroko1999
@omata: ja, aber dann bitte mit einem F vor privaten Variablen!

auch wenns offtopic ist, aber warum?

DeddyH 1. Feb 2008 14:16

Re: Problem mit Stringlists (.free)
 
Damit Du gleich erkennen kannst, dass Du auf ein privates Feld zugreifst.

Apollonius 1. Feb 2008 14:17

Re: Problem mit Stringlists (.free)
 
Das ist keine Pflicht, aber praktisch alle Styleguides empfehlen, die Namen von Feldern mit f beginnen zu lassen.

Kroko1999 1. Feb 2008 14:18

Re: Problem mit Stringlists (.free)
 
Zitat:

Zitat von DeddyH
Damit Du gleich erkennen kannst, dass Du auf ein privates Feld zugreifst.

ja und es nennt sich Style-Guide(o.s.ä.)

Helmi 1. Feb 2008 14:28

Re: Problem mit Stringlists (.free)
 
Danke für die Erklärung!

aber mein Styleguides sagt das nicht - ist nämlich von mir :-)
Ich komm so, wie ich es bisher mach ganz zurecht

DeddyH 1. Feb 2008 14:37

Re: Problem mit Stringlists (.free)
 
Ich hole mal ein bisschen aus: wenn Du Felder einer Klasse nach außen hin bekannt machen willst, gewährst Du keinen direkten Zugriff auf sie, sondern definierst Schnittstellen (Getter- und Settermethoden). Die Variable wird dann auch nicht als Variable angesprochen, sondern als Eigenschaft (property). Mal ein Beispiel (Feld soll nur einen Wert zwischen 1 und 1000 annehmen können):
Delphi-Quellcode:
type
  TMyClass = class
  ...
  private
    FFeld: integer;
    procedure SetFeld(value: integer); //Setter
    function GetFeld: integer;        //Getter
    ...
  public
    property Feld: integer read GetFeld write SetFeld;
    ...
end;

procedure TMyClass.SetFeld(value: integer);
begin
  if (value in [1..1000]) then
    FFeld := value;
end;

function TMyClass.GetFeld: integer;
begin
  Result := FFeld;
end;
So funktioniert OOP ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 Uhr.
Seite 3 von 4     123 4      

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-2025 by Thomas Breitkreuz