![]() |
Re: Problem mit Stringlists (.free)
In Destruktoren werden ja auch andere Dinge gemacht als die eigentliche Zerstörung (die erfolgt in FreeInstance).
|
Re: Problem mit Stringlists (.free)
Deine Fragen wurden schon beantwortet...
Zitat:
Zitat:
Delphi-Quellcode:
Gruss
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. Thorsten |
Re: Problem mit Stringlists (.free)
@omata: ja, aber dann bitte mit einem F vor privaten Variablen!
|
Re: Problem mit Stringlists (.free)
Ups, du hast natürlich recht. Habs nur kopiert, sorry :oops:
|
Re: Problem mit Stringlists (.free)
Zitat:
|
Re: Problem mit Stringlists (.free)
Damit Du gleich erkennen kannst, dass Du auf ein privates Feld zugreifst.
|
Re: Problem mit Stringlists (.free)
Das ist keine Pflicht, aber praktisch alle Styleguides empfehlen, die Namen von Feldern mit f beginnen zu lassen.
|
Re: Problem mit Stringlists (.free)
Zitat:
|
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 |
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:
So funktioniert OOP ;)
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 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-2025 by Thomas Breitkreuz