Przypisywanie tablic dwuwymiarowych

0

Dlaczego to nie działa?

var
  PlanszaBufor: array [0..14] of array [0..14] of String[1];
  Plansza: array [0..14] of array [0..14] of String[1];
begin
  PlanszaBufor := Plansza;
  (...)
end;

i to?

TPlansza: array [0..14] of array [0..14] of String[1];

Z góry dzięki!

0

Delkarując tak:

var
  PlanszaBufor: array [0..14] of array [0..14] of String[1];
  Plansza: array [0..14] of array [0..14] of String[1];

Skąd Delphi ma wiedzieć, że to takie same typy? Ty to widzisz, ale Delphi nie. Rozwiązanie:

var
  PlanszaBufor, Plansza: array [0..14] of array [0..14] of String[1];

lub jeszcze lepiej:

type
  TPlansza: array [0..14] of array [0..14] of String[1];
var
  PlanszaBufor, Plansza: TPlansza;
0

Dzięki! Działa!

... ale dlaczego nie mogę przekazać parametru TPlansza w jakiejś procedurze?

Mam pytanie odnośnie forum, a nie chcę zakładać nowego tematu, bo nie otrzymam szybko odpowiedzi.
Jak to zrobić, żeby słowa kluczowe na forum były wyróżnione?
Albo to ty tak piszesz?

0

... ale dlaczego nie mogę przekazać parametru TPlansza w jakiejś procedurze?

Jak to nie możesz? Jeżeli to jest tablica stała to możesz. Jeżeli dynamiczna, to musisz jako tablicę otwartą przekazać.

Jak to zrobić, żeby słowa kluczowe na forum były wyróżnione?

Kod umieszczaj w tagach:
<delphi>
Tutaj kod
</delphi>

0

A jak się przekazuje jako tablice otwarte?

0

A jak się przekazuje jako tablice otwarte?

Tablice otwarta (otwarty parametr tablicowy) przekazuje sie tak:

procedure Ble (Tablica:array of integer); //to jest wbrew pozorom tablica otwarta a nie dynamiczna 

jako parametr tablicowy mozna przekazac tablice dynamiczna albo statyczna. Trzeba tylko pamietac, ze wewnatrz procedury tablica jest indeksowana od zera, nawet jesli byla to tablica statyczna indeksowana od 1 czy od 212. Wewnatrz procedury nie mozna zmieniac dlugosci tablicy otwartej (co ma sens, skoro jako otwarta mozna przekazac statyczna).

Zeby moc zmieniac dlugosc parametru tablicowego wewnatrz procedury, nalezy przekazywac parametr jako tablice dynamiczna, a nie otwarta, tzn:

type MojaTablicaDynamiczna=array of integer;

procedure Ble(Tablica: MojaTablicaDynamiczna);

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