![]() |
Re: Unit Aufbau
Weiß einer auch was Published bedeutet(also vom CodeExplorer, siehe oberes Bild)?
oder welche Unterschiede es zwischen Public und Published gibt? Denn vom Englischen her bedeuten Sie fast das selbe. |
Re: Unit Aufbau
In der Hilfe steht da eine ellenlanger Artikel dazu...
achja, NIEMALS die Prozedur einfach so in die Unit schreiben sondern IMMER auch im Interface-Bereich reinschreiben. Sonst kann die Prozedur von anderen Prozeduren, die über der einen stehen, nicht aufgerufen werden etc. |
Re: Unit Aufbau
Zusammenfassung :
1. private : gültig nur innerhalb der Klasse und nur von dieser zu "sehen" bzw. zu manipulieren. Nix drin mit
Delphi-Quellcode:
sofern i als private in Form2 deklariert wurde.
Form1.i := 0;
2. protected : hier vorerst keine Erklärung. Sehr wichtig bei größeren Programmen, die OOP auch nutzen. 3. public : von überall her zugreifbar auch außerhalb der Unit, wo das definiert wurde. Also :
Delphi-Quellcode:
geht damit sehr wohl.
Form2.i := Form2.j;
4. published : ähnlich wie public, allerdings hauptsächlich für OI gedacht und wichtig bei Entwicklung eigener Komponenten. Aber all das ist nur die Spitze des Eisbergs, denn jetzt kommt noch vor allem virtual und override ins Spiel. Unerläßlich in Zusammenhang mit 2. protected. Das ganze ist nicht ganz so trivial, wie es vielleicht aussieht ! |
Re: Unit Aufbau
Zitat:
Jetzt überlegst du dir, du möchtest als erstes mal die Strings auf Gültigkeit prüfen (deshalb sind's hier auch erstmal Strings). Dazu möchtest du entscheiden ob die Zahlen gültig sind und du das Rechenzeichen kennst. Nehmen wir nun an, du entscheidest dich das in Methoden auszulagern, dann könnte es zu folgendem kommen:
Delphi-Quellcode:
Wichtig ist halt nur, dass Methoden die folgen mit forward deklariert oder halt vor dem ersten Aufruf implementiert werden müssen. Es macht aber durchaus Sinn Methoden nur im Implementationteil zu halten.
interface
function compute(const Number1, Number2, Operator : String) : String; implementation // forwarded, da die Implementierung nach dem ersten Aufruf folgt function isValidNumber(const Number : String) : Boolean; forward; function isValidOperator(const Operator : String) : Boolean; forward; function compute(const Number1, Number2, Operator : String) : String; begin // testen ob gültige Nummern und Operator if isValidNumber(Number1) and isValidNumber(Number2) and isValidOperator(Operator) then begin ... end; // if isValidNumber(Number1) and isValidNumber(Number2) and isValidOperator(Operator) end; // function compute(const Number1, Number2, Operator : String) : String; function isValidNumber(const Number : String) : Boolean; begin ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 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