Im toying around a little with delphi, and Im trying to make a board game.
It's a game of go 19x19.

I works fine and do all the stuff I want it to do etx. But I want to use a more OOP approach. So I make my a class called TGoban. (a go-board is called goban fyi)

It contains a "private" 2-dimensional array called matrix. And here is the problem. I want it to be a property, but everytime I try to change a value in my matrix it gives me stack overflow. I use a prpperty write function addStone(x,y, stone) which also is a member of TGoban of course, so I dont think its because access errors.

If I make TGoban.matrix public, then this works:
mygoban.matrix[6,3] := 3;
but this still doesnt:
addStone(x,y, stone); //stack overflow

(addStone(x,y,stone) basicly does this: matrix[x,y] := stone; )

It loses its whole purpouse with properties if I make it public.This just confuses me alot, so I thought you guys might have an idea of what Im doing wrong.

Im in school now, so I have no source atm. So if someone doesn't see any fundamental errors. I'll just bring some source in a day or two.

Thanks for any help.