![]() |
Re: private, public und der Rest
Hallo.
Erstmal vielen Dank für die schnellen Antworten :) Wenn ich das richtig verstehe, dann ist es erstmal egal wo ich "_myCon" deklariere (am besten aber in private) solange ich die Verbindung nur in dieser Unit aufbaue. Wenn ich aber die z.B. "_myCon" in Form1 deklariere und die Verbindung dort aufbaue aber eine SQL-Abfrage in Form2 starte wuzu ich dort ja auch "myCon" benötige dann muss ich diese unter var deklarieren, richtig ? Form2 ist eine zweite Unit die ich über ein Menü in Form1 öffnen kann. Tut mir leid wenn ich da noch nicht so richtig hinter steige, aber ich hab bis vor kurzem mit PHP gearbeitet und da war alles etwas einfacher was die Variablen anging. Gruß Micha |
Re: private, public und der Rest
Hallo,
Zitat:
Zitat:
Delphi-Quellcode:
Damit erlaubst Du es, dass die Variable öffentlich zugänglich ist (per
TForm1 = class(TForm)
private FmyCon: PMySQL; function GetmyCon: PmySQL; // Der Getter public property myCon: PmySQL read GetmyCon; // Lesen mit Getter end; function TForm1.GetmyCon: PmySQL; begin Result := FmyCon; end; ![]() Wenn Du den Wert ändern willst, kannst Du das auch so machen:
Delphi-Quellcode:
Da kannst Du beim Setzen der Variable z. B. noch Überprüfungen durchführen.
TForm1 = class(TForm)
private FmyCon: PMySQL; FStatus: Integer; function GetmyCon: PmySQL; // Der Getter procedure SetmyCon(const Value: PmySQL); // Der Setter public property myCon: PmySQL read GetmyCon write SetmyCon; // Lesen und Setzen mit Getter und Setter property Status: Integer read FStatus; // Direktes Lesen der Variablen end; function TForm1.GetmyCon: PmySQL; begin Result := FmyCon; end; procedure TForm1.SetmyCon(const Value: PmySQL); begin ShowMessage('Die Variable ändert sich!'); FmyCon := Value; end; Das Ganze nennt sich Kapselung. Es ist immer besser, Properties zu verwenden und die Variable in private zu verstecken. Wenn Du Dir die VCL-Quellen anschaust, siehst Du, dass Borland das nie anders macht. Zitat:
Gruß xaromz |
Re: private, public und der Rest
Hallo xaromz :)
Das hilft mir weiter. Vielen Dank :-D Gruß Micha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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