Debagowanie w Delphi procedur obsługujących tablice

0

Witam.

Od razu zaznaczę, że na wszelki wypadek przeczytałem parę artów o debugowania na wypadek gdyby coś umknęło ale nie znalazłem nic nowego więc pytam.

Mam strukturę (przykładowy kod) do której odwołanie wygląda tak:

Tablica.arr[ ListaIndexu.ari[i] ].Szt := 100;

Czyli jest Tablica dynamiczna z rekordami i

ListaIndexu typu array of Integer

Jest procedura przeszukująca i sortująca (a właściwie fragment):

         for i:= j-1 downto 0 do
         begin
                                   // wstawiłem stringi Si, Sj żeby mieć podgląd na wartości
            Si:= IntToStr( Tablica.arr[ ListaIndexu.ari[i] ].Szt );       
            Sj:= IntToStr( Tablica.arr[ ListaIndexu.ari[j] ].Szt );
            if Tablica.arr[ ListaIndexu.ari[i] ].Szt > Tablica.arr[ ListaIndexu.ari[j] ].Szt
            then begin
               tmp:= ListaIndexu.ari[i];
               ListaIndexu.ari[i]:= ListaIndexu.ari[j];
               ListaIndexu.ari[j]:= tmp;
            end

I teraz pytanie co zrobić żeby w podglądzie Local Variables mi podczas debugowania najprościej podglądać te wartości. Jak na razie jadę na stringach bo wartości typu Tablica.arr[ ListaIndexu.ari[i] ].Szt bezpośrednio pokazać mi nie chce. Jest coś prostszego/ bardziej automatycznego?
Pozdrawiam

1

@Integers - czegoś nie rozumiem... Przecież możesz sobie w oknie Watches podglądać nie tylko typy proste, ale także przeglądać pola struktur; Dodając do tego okienka poniższe elementy:

Tablica.arr[ListaIndexu.ari[i]].Szt
Tablica.arr[ListaIndexu.ari[j]].Szt

Bez problemu będziesz mógł na bieżąco podglądać ich wartości w każdej iteracji pętli; Taka możliwość istniała już w Delphi7 i pewnie we wcześniejszych - to nie jest nowość; Przy debugowaniu pętli możesz także skorzystać z określenia wartości iteratora, od której rozpocznie się debugowanie; Przydatne, jeśli potrzeba sprawdzić końcowe iteracje pętli, bez sprawdzania wszystkich po kolei;

Pokaż deklaracje typów zmiennych Tablica oraz ListaIndexu, to będzie można coś więcej napisać.

0

Dziękuję.

Faktycznie przeoczyłem w artykule Debugowanie
może dlatego, że jest widoczne tylko pod czas pracy krokowej.. tak to jest jak się czyta opisy... szybko.

Ta struktura była przykładowa taka na szybko z palca, żeby było wiadomo, że nie chodzi o "proste" zmienne.

0

Z tym nie ma problemu - można podglądać dane proste, a także zawarte w strukturach czy klasach (przez np. właściwości); Nawet można podawać wyrażenia, ale jak bardzo skomplikowane to nie sprawdzałem; W każdym razie proste wyrażenia bez problemu działają.

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