05.11.2013 Aufrufe

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

MEHR ANZEIGEN
WENIGER ANZEIGEN

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]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!