Autor Beitrag
TheWickedOne
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 14.04.05 20:43 
Hallo,
Ich habe folgendes Problem.

Ich hab ein Programm, zur Einarbeitung zu Arrays.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Var
  vFeld: Array [1..10] of Integer;
      i: Integer;
  Begin 
     for i := 1 to 10 do    // Feld in 10 Schleifendurchgängen mit Werten füllen
            vFeld[i] := i * i;

     for i := 1 to 10 do    // Feldinhalte in 10 Schleifendurchläufen ausgeben
            Ausgabe (vFeld[I]);    // mit Funktion Ausgabe


Die benötigte function soll jetzt noch programmiert werden.
Jedoch kommt immer die Fehlermeldung "Nicht genügend wirkliche Parameter"

Kann jemand helfen?

P.S.: Die function sieht folgendermaßen aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function Ausgabe(temp:Integer):String;
  begin
  temp:=vFeld[i];
  ListBox1.Items.add(IntToStr(temp);
end;
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Do 14.04.05 20:48 
Hi und :welcome:
Bitte poste den Originalcode, deiner lässt sich nicht mal compilieren. Klammerfehler in Ausgabe und diese Funktion greift auch vFeld zu, was aber nicht global ist.
Wo tritt der Fehler auf?
TheWickedOne Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 14.04.05 20:51 
Hi!

Danke für deine Antwort. Den Code haben wir so von unserem Lehrer erhalten. Der Fehler tritt bei
ausblenden Delphi-Quelltext
1:
Ausgabe(vFeld[i]);					

auf.

//edit

Ich hab jetzt in der Function oben die Zeile
ausblenden Delphi-Quelltext
1:
temp:=vFeld[i];					

rausgenommen

Vielleicht is auch meine Frage ungeschickt gestellt. Was ich eigentlich fragen wollte is: Wie kann ich ne ListBox in eine Function einbinden, so dass ich von der Function auf die Listbox zugreifen kann?

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Do 14.04.05 21:04 
Zitat:

Var
vFeld: Array [1..10] of Integer; //hier wird Vfeld deklariert (lokal in einer prozedure, so wie es aussieht)
i: Integer;
Begin
for i := 1 to 10 do // Feld in 10 Schleifendurchgängen mit Werten füllen
vFeld[i] := i * i;


for i := 1 to 10 do // Feldinhalte in 10 Schleifendurchläufen ausgeben
Ausgabe (vFeld[I]); // mit Funktion Ausgabe


Zitat:

function Ausgabe(temp:Integer):String;
begin
temp:=vFeld[i]; //hier greifst du auf vfeld zu, da es aber nur lokal in obiger prozedur deklariert ist, ist es bei ausgabe unbekannt
ListBox1.Items.add(IntToStr(temp);
end;


temp:=vFeld[i]; brauchst du sowie so nicht, da du das bei dem ausgabeaufruf schpon übergibst, so ist das doppelt gemoppelt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Var  
  vFeld: Array [1..10] of Integer;  
      i: Integer;  
  Begin   
     for i := 1 to 10 do    // Feld in 10 Schleifendurchgängen mit Werten füllen  
            vFeld[i] := i * i;  
 
     for i := 1 to 10 do    // Feldinhalte in 10 Schleifendurchläufen ausgeben  
            Ausgabe (vFeld[I]);    // mit Funktion Ausgabe 

...
function Ausgabe(temp:Integer):String;  
  begin  
    Form1.ListBox1.Items.add(IntToStr(temp);  
    //oder ausgabe in den private-abschnitt aufnehmen.
  end;


weitere Frage: warum ist ausgabe eine funktion, wenn du den rückgabe wert weder setzt noch verwendest?
die beiden for-schleifen kannst du auch zu einer zusammenfassen.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
TheWickedOne Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 14.04.05 21:10 
Hi...
em...das soll laut Aufgabe mit ner Funktion gemacht werden.
Sonst hätt ich das auch ohne gemacht...

Das soll halt zum üben so gemacht werden.
Hab jetzt mal die Zeile mit der Listbox so abgeändert, wie du das beschrieben hast.

Der Fehler tritt aber weiterhin auf.

vFeld:array[1..10]...

ist global deklariert...sry.. war ein tippfehler
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Do 14.04.05 21:14 
poste mal alles.
Achso und: die ausgabe-procedure sollte vor der anderen stehen, oder du deklarierst sie als forward. aber hier weiß ich nicht, wieviel man dir erzählen soll/kann, bis es dich verwirrt ;)

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
TheWickedOne Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 14.04.05 21:17 
ES FUNKTIONIERT...so was billiges :D

Das war das mit Form1.... vor der Listbox und ein kleiner Schreibfehler..

VIELEN DANK ;) ;)