Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Vergleich</strong> <strong>von</strong> <strong>Delphi</strong> <strong>und</strong> <strong>Visual</strong> <strong>C++</strong> - Kapitel 2C<br />
// Property Text gestattet Schreib- <strong>und</strong><br />
Text := 'Hallo';<br />
// Lese-Zugriff<br />
ShowMessage(Text);<br />
Schreib_Text := 'Welt';<br />
ShowMessage(Lies_Text);<br />
// Fehler, da nur Lese-Zugriffe gestattet sind<br />
Lies_Text := 'Guten Tag';<br />
// Fehler, da nur Schreib-Zugriffe gestattet sind<br />
ShowMessage(Schreib_Text);<br />
Allen drei Properties liegt ein Feld (FText) in der Klasse zugr<strong>und</strong>e, aus dem gelesen bzw. in das geschrieben wird. Wenn einem Property<br />
zum Lesen <strong>und</strong> Schreiben dasselbe Feld zugr<strong>und</strong>e liegt (wie bei Text), dann ist dieses Property eigentlich überflüssig, weil es nur den<br />
Direktzugriff auf das Feld in der Klasse abfängt.<br />
Sinnvollere Properties erhält man, wenn einer oder beiden Zugriffsarten (read / write) eine Methode zugr<strong>und</strong>e liegt. In dem Fall wird beim<br />
Zugriff auf das Property automatisch die angegebene Methode aufgerufen, so daß durch das Auslesen bzw. das Zuweisen beliebig<br />
komplexe Operationen in Gang gesetzt werden können.<br />
MeineKlasse = class<br />
// normales Feld in d. Klasse<br />
FText: String;<br />
// Methode<br />
procedure SetText(Value: String);<br />
property Text: String read FText write SetText;<br />
end;<br />
procedure MeineKlasse.SetText(Value: String);<br />
begin<br />
if Value FText then begin<br />
// Wandlung in Großbuchstaben<br />
FText:= AnsiUpperCase(Value);<br />
// Fenstertext mit Windows-API - Funktion setzen<br />
SetWindowText(MyWin.Handle, PChar(FText));<br />
end;<br />
end;<br />
...<br />
var MeinObj: MeineKlasse;<br />
begin<br />
MeinObj := MeineKlasse.Create;<br />
MeinObj.Text := 'Hallo Welt';<br />
end;<br />
Als Ergebnis der Zuweisung an Property Text wird implizit die Methode SetText aufgerufen, die ihrerseits dem Feld FText den Wert<br />
"HALLO WELT" zuweist. Derselbe Text erscheint zudem auch in der Überschrift-Zeile eines Fensters.<br />
Die einem Property zugr<strong>und</strong>eliegenden Methoden müssen immer dieselbe Syntax aufweisen:<br />
Lese-Methode<br />
Schreib-Methode<br />
function MethodenName: PropertyTyp;<br />
procedure MethodenName(Value: PropertyTyp);<br />
http://ourworld.compuserve.com/homepages/praxisservice/kapit2c.htm (31 of 33) [19.05.2000 15:30:15]