Wątek przeniesiony 2014-11-21 20:27 z Delphi i Pascal przez furious programming.

Przekazanie tablicy jako parametr procedury

0

Witam,
chciałbym przekazać tablicę jako parametr funkcji, a następnie zmienić wartości tej tablicy.

private
    obrazWejsciowy : array of double;
implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin

    SetLength(obrazWejsciowy, 25);
    WypelnijTablice(obrazWejsciowy);
    showmessage(floattostr(obrazWejsciowy[1]));                            // TUTAJ POKAZUJE MI 0
end;

procedure TForm1.WypelnijTablice(Tablica: array of Double);
var i:integer;
begin
  for I := 0 to length(Tablica)-1 do
  begin
    Tablica[i]:=-1;
  end;
end;
 

Niestety dane nie zostają zmienione na wartości -1.
Nie wiem wogólę czy tak można ?
Proszę o pomoc.

3

To przekaż ją przez referencję (ze słówkiem Var); Oj, podstawy się kłaniają...

procedure TForm1.WypelnijTablice(var Tablica: array of Double);

Albo ze słówiem Out, jeśli wewnątrz metody WypelnijTablice nie potrzebujesz odczytywać danych z tej macierzy:

procedure TForm1.WypelnijTablice(out Tablica: array of Double);

Nie wiem wogólę czy tak można ?

W każdym cywilizowanym języku można przekazywać parametry przez referencję.

1

Nie rozumiem po kiego WypelnijTablice( dostaje tablice jako parametr skoro ma do niej dostęp jako do składowej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1