AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Eine Procedure erstellen Beispiel: procedure Removefile ...
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Procedure erstellen Beispiel: procedure Removefile ...

Ein Thema von mindforce · begonnen am 4. Aug 2005 · letzter Beitrag vom 9. Aug 2005
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Re: Eine Procedure erstellen Beispiel: procedure Removefile

  Alt 5. Aug 2005, 16:51
Hallo ihr,

also...das was Nils da gebaut hast ist eine Methode einer Klasse. Diese kann nur angewendet werden, falls man eine Instanz der Klasse (in diesem Fall Form1) hat. Aufrufkonvention:
Delphi-Quellcode:
<Objektvariable>.<MethodenName>
//Oben z.B.:
Form1.RemoveFile;
Je nachdem wo man sie deklariert sind sie "mehr oder weniger sichtbar". Eine Funktion, die im private-Bereich deklariert wurde, wird nur in der eigenen Unit aufrufbar sein. Im public-Bereich hingegen ist sie fuer alle sichtbar.

Das zweite sind "normale" Funktionen/Prozeduren, welche es ja auch schon im guten alten DOS-Pascal gab. Es gibt mehrere Wege diese zu implementieren:
  • Einfache implementierung ohne interface-Deklaration: Die Funktionen werden einfach im implementation-Teil geschrieben, z.B.:
    Delphi-Quellcode:
    unit Foo;
    interface
    implementation

    function Bar: Integer;
    begin
      Result := 42;
    end;

    end.
    Diese Funktionen sind nur in der eigenen Unit sichtbar, aber auch nur nachdem sie deklariert wurden. Dies wuerde also zu einem Fehler fuehren:
    Delphi-Quellcode:
    unit Foo;
    interface
    implementation

    function Bar: Integer;
    begin
      Result := FooBar;
    end;

    function FooBar: Integer;
    begin
      Result := 42;
    end;

    end.
  • Implementierung mit vorhergehender Deklaration: Dabei wird der Funktionskopf im interface-Teil deklariert, die Implementierung erfolgt wie vorhin im implementation-Teil:
    Delphi-Quellcode:
    unit Foo;
    interface

    function Bar: Integer;

    implementation

    function Bar: Integer;
    begin
      Result := 42;
    end;

    end.
    Die Funktionen sind dabei auch ausserhalb der Unit sichtbar. Weiters sind die Funktionen bereits deklariert, also wuerde dieser Code diesmal funktionieren:
    Delphi-Quellcode:
    unit Foo;
    interface

    function Bar: Integer;
    function FooBar: Integer;

    implementation

    function Bar: Integer;
    begin
      Result := FooBar;
    end;

    function FooBar: Integer;
    begin
      Result := 42;
    end;

    end.
  • Forward-Deklaration von Funktionen: Wir haben vorhin gesehen, dass Funktionen, welche im implementation-Teil implementiert werden, ohne vorher deklariert zu werden, erst nach der Funktion selbst "sichtbar" sind. Was tun wenn die Prozeduren nur in der Unit sichtbar sein sollen, aber trotzdem der zweite Code aus dem ersten Abschnitt funktionieren soll? Dafuer gibt es das Schluesselwort forward:
    Delphi-Quellcode:
    unit Foo;
    interface
    implementation

    function Bar: Integer; forward;
    function FooBar: Integer; forward;

    function Bar: Integer;
    begin
      Result := FooBar;
    end;

    function FooBar: Integer;
    begin
      Result := 42;
    end;

    end.
    Das Schluesselwort forward sagt dem Compiler, dass die Funktion hier nur deklariert wurde, die Implementierung aber spaeter folgt. So sind die Funktionen ausserhalb der Unit nicht sichtbar, aber der Aufruf von FooBar in Bar funktioniert trotzdem.

So, ich hoffe das Tippen hat sich wenigstens gelohnt und die Tipps helfen (ok..einen Teil hat Khabarakh schon erklaert, aber meins ist genauer )

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:14 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