AGB  ·  Datenschutz  ·  Impressum  







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

Definieren von Funktionen unter Type

Ein Thema von endeffects · begonnen am 29. Jun 2004 · letzter Beitrag vom 29. Jun 2004
Antwort Antwort
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:04
Hallo,

ich habe vorhin folgende Funktion im Forum gefunden und
setze diese nun in einem kleinen Programm ein:

Code:
function HexStrToStr(const HexStr:String) : String;
var i : Integer;
begin
  Result := '';
  for i := 1 to Length(HexStr) div 2 do
    Result := Result + Chr(StrToInt('$'+Copy(HexStr,i*2-1,2)));
end;
Da ich nun noch relativ neu im Umgang mit Delphi bin
hat es mich gewundert das diese Funktion auch ohne
die Deklaration unter Type funktioniert.

Was mich allerdings noch mehr wundert ist das wenn
ich versuche HexStrToStr(const HexStr:String) : String;
unter Type aufzunehmen dann bekomm ich folgenden Fehler:

Zitat:
Ungenügende Forward- oder External-Deklaration: 'TForm1.HexStrToStr'
Ich dachte eigentlich es ist Pflicht alle funktionen dort anzugeben?
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#2

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:14
Du hast die Funktion als Methode der Klasse TForm1 deklariert.
etwa so:

Delphi-Quellcode:
type
  TForm1 = class(TForm)

  private
    { Private declarations }
    HexStrToStr (const HexStr:String) : String;
  public
  end;
Die Fehlermeldung die Du bekommst besagt, dass DIESE Funktion nicht gefunden werden kann.

Es müßte heißen:

  function TForm1.HexStrToStr(const HexStr:String) : String; oder die Funktion müßte außerhalb der Klassendefinietion deklariert werden.

Ich hoffe es hilft.
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:15
Zitat von endeffects:
...Ich dachte eigentlich es ist Pflicht alle funktionen dort anzugeben?
Nö,

Wenn Du es "dort" angibst ist deine Funktion eine Methode des Forumlares und kann dann auch auf alle Eigenschaften von diesem Zugreifen. Da dies bei deiner Funktion nicht notwendig ist brauchst/solltest Du sie auch dort nicht deklarieren.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#4

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:20
Aaaalso wenn ich das nun richtig verstanden habe brauch ich die
Funktion nirgends weiter angeben, ja?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:21
Zitat von endeffects:
Aaaalso wenn ich das nun richtig verstanden habe brauch ich die
Funktion nirgends weiter angeben, ja?
Wenn Du sie nicht ausserhalb deiner Unit (sprich in anderen) verwenden möchtest. Nein. Dann brauchst Du das nicht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#6

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:22
Wenn Du sie nur in dieser Unit brauchst, ja. Ansonsten brauchst Du den Metoden-Kopf im interface-Teil

Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#7

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:24
Ok =),

danke Euch für die schnelle Hilfe
  Mit Zitat antworten Zitat
AlphaBug

Registriert seit: 2. Mär 2004
Ort: hinterm Transistor 246 gleich links
46 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Definieren von Funktionen unter Type

  Alt 29. Jun 2004, 10:35
Hi ,

Da die Units (grob gesagt) in einen Interface-Abschnitt und einen Implementation-Abschnitt unterteilt sind, gibt es mehrere Möglichkeiten Methoden zu deklarieren.

Methoden, die im Interface-Abschnitt deklariert wurden, gehören entweder einer Klasse an oder sind öffentlich verfügbar.
Gehört die Methode zu einer Klasse, kann man sie nur über ein von der Klasse erstelltes Objekt aufrufen.

Methoden im Implementation-Abschnitt können auch nur dort verwendet weden.

Und diese "Funktion1" kann bspw. nur in "Procedure1" aufgerufen werden. -->
Delphi-Quellcode:
procedure Procedure1;
  function Funktion1(Value: Boolean): Boolean;
  begin
    Result := not Value;
  end;
var B: Boolean;
begin
  B := Funktion1(True);
  ...
end;
Delphi 4ever !
  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 20:42 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