problem z StringGird .. HELP

0

Siema ... mam taki problem:
Jest kod:
po naciśnięciu przycisku wykonywana jest procedura:

if Y=0 then exit else
  Y:=Y+1;

sg.Cells[x,y]:='@';

chodzi o to żeby po naciśnięciu przycisku do string grida dodawany był znak @ ... ale to niestety nie działa ;(
nie wiem dlaczego ... x i Y są zadeklarowane jako x,y : integer;

zrobiłem tak:

var
X,Y : integer;
begin
X := sg.Col;
Y := sg.Row;
X := X+1;
Y := Y+1;
sg.Cells[X,Y]:='@'

po kliknięciu dodaje się @ do tabeli ale dodaje się on do x,y+1 od zaznaczonego miejsca .. jeśli nacisnę przycisk muszę jeszcze raz zaznaczyć string grid ... czy da się to jakoś załatwić żeby nie klikać na string grida po każdym naciśnięciu przycisku ? tz. żeby razem z przesunięciem znaku przesuwało się zaznaczenie na dane pole ?

z góry dzięki !

0

dobra ... poradziłem sobie z poprzednim ... teraz mam jeszcze jeden problem ...
potrzebuję zapamiętać znak z pola na które przesuwam @, tak aby po kolejnym przesunięciu @ w poprzednie pole została wpisana jego stara wartość

jeśli ktośmógłby pomóc to wielkie dzięki !

0

i znowu przedszkole programistyczne...

zapisujesz do sg stringa, więc możesz go stamtąd przed zmianą odczytać do jakiejś zmiennej globalnej, to samo ze współrzędnymi; pseudokod

var
  oldval : string;
  oldx,oldy : word;


{...}
if (oldval <> '') // zabezpieczenie przed pierwszym zapisem
sg.cells[oldx,oldy] := oldval;

oldx := x;
oldy := y;
oldval := sg.cells[x,y];

{a tu sobie zmieniasz sg.cells[x,y];}
{...}

następnym razem trochę więcej pomyśl, a na pewno wpadniesz na rozwiązanie.

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