Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi frage zu einer przedur (https://www.delphipraxis.net/13500-frage-zu-einer-przedur.html)

PomBär 19. Dez 2003 17:41


frage zu einer przedur
 
hallo leutz
ich bin gerade dabei mit delphisource durchzulesen und hätte dazu mal ne frage.
Beispiel: Die folgende Prozedur gibt so viele Töne über den PC-Lautsprecher aus, wie über den Parameter "Anzahl" angegeben.
Delphi-Quellcode:
 
 procedure Toene(Anzahl: integer);
  var i: integer;
  begin
    for i:=1 to Anzahl do
      beep;
  end;
Der Aufruf für fünf Töne geschieht so:
Delphi-Quellcode:
  Toene(5);
allerdings, wenn ich
Delphi-Quellcode:
procedure Toene(5);
  var i: integer;
  begin
    for i:=1 to 5 do
      beep;
  end;
mache funzt das irgendwie net. wie müsste es denn sein damit es läuft?
danke im voraus
PomBär :gruebel:

Smokey 19. Dez 2003 17:52

Re: frage zu einer przedur
 
Hmm mal ganz bescheiden gefragt:

Wozu willst du ne Prozedur mit Konstantem Übergabeparameter schreiben? Den du dann eh nicht benutzt?
Was unsinnigeres gibts doch eigendlich garnet oder?

Wenn immer 5 Töne kommen sollen, lass Parameter ganz weg.

ustra 19. Dez 2003 17:56

Re: frage zu einer przedur
 
Hi,

Du kannst eine Prozedur nicht deklarieren, indem Du als Parameter einfach Fünf schreibst. Du musst immer schreiben, wie die Variable heißt und was es für ein Typ (string, integer) ist, so wie es auf Delphi-source.de gemacht. UNd im Übrigen sehe ich auch nicht den Sinn darin, immer den Wert 5 zu übergeben.

Ulrich

trifid 19. Dez 2003 17:57

Re: frage zu einer przedur
 
Hallo,

probiers mal mit :
Delphi-Quellcode:
for i:=1 to 5 do
      MessageBeep (i);
wenn nicht muss Du wohl ein MCI-Kommando (mciSendCommand) abschicken um die Soundgeschichte wieder zurückzusetzen

PomBär 19. Dez 2003 17:58

Re: frage zu einer przedur
 
es ist ein beispiel für den aufbau einer prozedur.
was meinst du mit konstanten übergabeparametern die ich dann nicht benutze? ich versuche nur das beispiel zu verstehen.

PomBär 19. Dez 2003 18:02

Re: frage zu einer przedur
 
MessageBeep ist ein undefinierter bezeichner.
was muss ich tun?

braingrenade 19. Dez 2003 18:03

Re: frage zu einer przedur
 
Probiers mal so :

Delphi-Quellcode:
procedure Toene;
  var i: integer;
  begin
    for i:=1 to 5 do
      beep;
  end;
Einfach ganz ohne Parameter.

Niels 19. Dez 2003 18:18

Re: frage zu einer przedur
 
Moin!

Delphi-Quellcode:
procedure Toene(Anzahl: integer);
Die Parameterliste hinter Toene dient dazu, Werte an die Prozedur zu übergeben. Anzahl ist ein Wertparameter und dient als Endwert der For-Schleife. An dieser Stelle musst du nun auch einen Wert an die Prozedur weitergeben. Tust du das so
Delphi-Quellcode:
procedure Toene(5);
dann weiß dein Prog doch gar nicht was es mit der 5 anfangen soll. Dass da früher mal Anzahl stand, oder dass er die 5 als Anzahl nutzen soll kann der Compiler ja nicht wissen.
Die Prozedur hat den Zweck, dass in irgend einem Programm eine variable Anzahl an Beeps über den Speaker ausgegeben werden kann. Deshalb ist auch dieser Parameter enthalten. Willst du irgendwo mal 5 Beeps ausgeben, brauchst du diese Prozedur nicht und kannst das einfach (wie auch in vorherigen Posts gesagt) über eine Schleife im Quellcode machen:

Delphi-Quellcode:
var i: integer;
begin
...
...
  for i:=1 to 5 do
    beep;
...
...
end;
MfG Niels


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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