AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit Aufbau

Ein Thema von Ruffy87 · begonnen am 21. Mär 2006 · letzter Beitrag vom 21. Mär 2006
Antwort Antwort
Seite 2 von 2     12   
Ruffy87

Registriert seit: 12. Jan 2006
45 Beiträge
 
Delphi 6 Professional
 
#11

Re: Unit Aufbau

  Alt 21. Mär 2006, 18:38
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.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Unit Aufbau

  Alt 21. Mär 2006, 18:45
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.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Unit Aufbau

  Alt 21. Mär 2006, 19:04
Zusammenfassung :

1. private : gültig nur innerhalb der Klasse und nur von dieser zu "sehen" bzw. zu manipulieren. Nix drin mit Form1.i := 0; sofern i als private in Form2 deklariert wurde.

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 : Form2.i := Form2.j; geht damit sehr wohl.

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 !
Gruß
Hansa
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#14

Re: Unit Aufbau

  Alt 21. Mär 2006, 19:10
Zitat von ichbins:
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.
Sorry, aber das stimmt so auch nicht. Wie bereits erwähnt kannst du Prozeduren auch nur im Implementationteil benutzen, wenn es Prozeduren sind, die eben nie von aussen aufgerufen werden sollen. Sagen wir mal (ganz stupide) du baust einen Rechner (wie kreativ). Deine Idee wäre es jetzt, dass deine Unit eine Methode Compute hat, die bekommt 3 Strings (eingegebene Zahlen + Rechenzeichen). Compute gibt dir den String zurück, der das Ergebnis repräsentiert.
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:
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;
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz