AGB  ·  Datenschutz  ·  Impressum  







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

Procedure, Array als Rückgabewert?

Ein Thema von Hallo_Thomas · begonnen am 12. Jul 2005 · letzter Beitrag vom 12. Jul 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#11

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 15:39
Zitat von Hallo_Thomas:
...Fehlermeldung:inkompatible Typen
Wenn Du Dir die Beiträge genau durchliest wirst Du feststellen, dass Sidorion die Lösung geschrieben hat
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#12

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 15:45
Ein kleines Wort, nur eines
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 16:17
Freu dich bloss nicht zu früh
das Programm hängt sich schon auf

Delphi-Quellcode:
procedure TForm1.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Var Wertigkeit:TIntArray);
Var y :Integer ;
begin
  SetLength(Wertigkeit,aEnd);
  for y := aStart to aEnd do
  Wertigkeit[y]:=0;
end;
Keine Ahnung, aber irgendwie hängt sich das Programm jetzt auf?
Angehängte Dateien
Dateityp: zip bpl_155.zip (19,2 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 16:25
Kleines Beispielprogramm ist gut. Ohne Kommentare oder Hinweise, wo man gucken muss, geschweige denn wie es funktioniert oder was es macht. Zumindest ein klitze kleiner Hinweis wie man es hinbekommt, dass die besagte Prozedur aufgerufen wird, wäre etwas hilfreich. Ich bekomme nämlich schon so eine AccessViolation bei
Delphi-Quellcode:
procedure TForm1.AllSpeedButtons(Sender: TObject);
var
  farbe : TColor;
  itag : Integer;
begin
  farbe := clRed;
  itag := (Sender as TSpeedButton).Tag;
  meineListe.Insert(0, (IntToStr(itag)));
  AddMyItem(IntToStr(itag), farbe);
end;
Gefunden:
Delphi-Quellcode:
procedure TForm1.EinWert(aWert: array of Integer; aStart, aEnd: Integer; var Wertigkeit: TIntArray);
var
  y : Integer;
begin
  SetLength(Wertigkeit, aEnd);
  for y := aStart to aEnd - 1 do
    Wertigkeit[y] := 0;
end;
Dynamische Arrays gehen von 0 bis Länge - 1.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#15

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 16:27
Zitat von Hallo_Thomas:
Delphi-Quellcode:
procedure TForm1.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Var Wertigkeit:TIntArray);
Var y :Integer ;
begin
  SetLength(Wertigkeit,aEnd);
  for y := aStart to aEnd do
  Wertigkeit[y]:=0;
end;
1) Array-Grenzen verletzt: setlength(Array,länge) Zugriff immer nur von Array[0] bis Array[länge-1]!

[edit] zu langsam.. Musste aber auch schon um 5 heute raus..[/edit]
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 16:37
Zitat von axelf98:
Zitat von Hallo_Thomas:
Delphi-Quellcode:
procedure TForm1.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Var Wertigkeit:TIntArray);
Var y :Integer ;
begin
  SetLength(Wertigkeit,aEnd);
  for y := aStart to aEnd do
  Wertigkeit[y]:=0;
end;
1) Array-Grenzen verletzt: setlength(Array,länge) Zugriff immer nur von Array[0] bis Array[länge-1]!

[edit] zu langsam.. Musste aber auch schon um 5 heute raus..[/edit]



Wie änder ich das ab? Bei mir erscheint immer nur Stack-überlauf.
Angehängte Dateien
Dateityp: zip bpl_710.zip (19,2 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 16:53
Zitat von Hallo_Thomas:
Wie änder ich das ab? Bei mir erscheint immer nur Stack-überlauf.
Habe ich dir doch gepostet, inklusive dem gefixten Bug.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#18

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 17:04
???Programm läuft zwar wieder, aber die Wertigkeiten werden in der Hauptprozedur immer noch nicht auf null gesetzt.


Hauptprozedur:
Delphi-Quellcode:
EinWert(Wertigkeit,0,11,result);
     begin
      Eins :=Wertigkeit[1];
      Zwei :=Wertigkeit[2]+Wertigkeit[8]+Wertigkeit[10];
      Drei :=Wertigkeit[3]+Wertigkeit[9]+Wertigkeit[11];
      Vier :=Wertigkeit[4];
      Fuenf :=Wertigkeit[5]+Wertigkeit[9]+Wertigkeit[10];
      Sechs :=Wertigkeit[6]+Wertigkeit[8]+Wertigkeit[11];
      Sieben:=Wertigkeit[7];

Nebenprocedur:
Delphi-Quellcode:
procedure TForm1.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Var Wertigkeit:TIntArray);
Var y :Integer ;
begin
  SetLength(Wertigkeit,aEnd+1);
  for y := aStart to aEnd do
  Wertigkeit[y]:=0;
end;
Angehängte Dateien
Dateityp: zip bpl_977.zip (19,2 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 17:23
Na warum fragst du in deinem Code dann nicht auch dein Ergebnis-Array ab? Du setzt ja danach deine Variablen auf die Werte, die du in die Funktion übergibst (Wertigkeit). Richtig aber wäre es, das Ergebnis zu benutzen (result).

Du müßtest daher nach dem Funktionsaufruf "Wertigkeit" jeweils durch "result" ersetzen.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Procedure, Array als Rückgabewert?

  Alt 12. Jul 2005, 17:39
Mein Ziel ist es bis es erstmal herrauszubekommen wie ich eine Prozedur schreibe, die diese Wertigkeiten zurückgibt, da ich im Orginalprogramm, den Wert Wertigkeit ca.2500 tausend mal abändern dürfte!!! Ich hab über prozeduren eigentlich kaum Erfahrungen, bin aber sicher, dass das gehen müsste was ich vorhab.

Irgendwie muss es doch auch gehen, dass ich diese Wertigkeiten auf null seten kann durch eine Procedure?

Dies dient mir erst mal als Probe, später soll nicht nur der Wert Null zurückgegeb werden!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:40 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