[Delphi] Zmienna przyjmuje nie swoja wartosc!

Odpowiedz Nowy wątek
2006-01-12 18:45

Rejestracja: 17 lat temu

Ostatnio: 13 lat temu

0

Hmm dlugo sie meczylem i nie moglem dojsc co robie zle i teraz zauwazylem cos dziwnego a dokladniej podam mniej wiecej o co chodzi kod oczywiscie nie jest taki jak tu ale glownie to cos takiego

Trekord = Record
X1          : SmallInt;
X2          : SmallInt;
AAA         : byte;        <<<<<<<<<<<<<<<
X3          : byte;
X4          : byte;
X5          : byte;
X6          : byte;
X7          : String[3];
X8          : byte;
end;
var
Tablica : array[1..20] of Trekord;
CCC : byte;
Zmienna : byte;

I teraz gdy jest wykonywane cos w stylu

CCC:=0;
IF Zmiana=10 then Tablica[L].AAA:=Random(8);

i co sie okazuje zmienna CCC przyjmuje wartosc CCC=Tablica[L].AAA zamiast 0 :| co dziwniejsze CCC trzyma dobra wartosc gdy

Trekord = Record
X1          : SmallInt;
X2          : SmallInt;
X3          : byte;
X4          : byte;
X5          : byte;
X6          : byte;
X7          : String[3];
AAA         : byte;        <<<<<<<<<<<<<
X8          : byte;
end;

zamienie miejscami w edytorze zmienne? powiecie tak wiec zamien i po problemie no tak ale jaka mam pewnosc ze inne zmienne nie beda sie mieszac a wydaje mi sie ze tak sie wtedy dzieje ale dosc duzo ich jest wiec ciezko sprawdzic.

Ciezko to wytlumaczyc ale mam nadzieje ze zrozumieliscie tylko czy znacie sposob na naprawe tego i czy spotkaliscie sie z czyms takim mam Delphi 6

Pozostało 580 znaków

2006-01-12 18:54

Rejestracja: 15 lat temu

Ostatnio: 7 lat temu

0

chyba coś kręcisz, może byś dał kod bliższy prawdzie ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-01-12 19:37

Rejestracja: 17 lat temu

Ostatnio: 13 lat temu

0

no spoko myslisz ze zmyslam z tym kodem :-/ to byly praktycznie wyciete fragmenty tyle ze nazwy zmiennych zmienilem.

Co zauwazylem zmieniajac ten dziwny SmallInt na integer chyba jest ok

Pozostało 580 znaków

2006-01-12 22:20

Rejestracja: 16 lat temu

Ostatnio: 7 lat temu

0

wyłącz optymalizację i przebuduj projekt


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

spc
2006-01-13 11:01
spc

Rejestracja: 14 lat temu

Ostatnio: 10 miesięcy temu

0

Mialem kiedys podobne problemy pod Delphi 2005 z komponentem TTreeView i jakas zmienna. Znikala mi jej zawartosc. Nie pamietam dokladnie jak to bylo ale zjawisko bylo powtarzalne. Przekopiowalem nawet fragment kodu do nowego projektu i to samo. Co ciekawe po skompilowaniu pod delphi 5 wszystko bylo ok :|


00, OK, 00, 00
...dziś się to robi na sprzętach, kiedyś na patentach...

Pozostało 580 znaków

feluś
2006-01-13 13:33
feluś
0

Deklaruj rekordy jak należy wtedy nie będzie takich problemów.
data align: byte, word, dword, qword
record struct
a, b, c : byte;
n : Integer;
end;
rozmiar = 7, albo 8 zależnie od ustawienia 'align'
Później kompilator wytka tam dodatkowe pola, aby to wyrównać i pewnie głupieje.
Nie należ zbyt wiele od programika dla dzieci, trzeba go wyręczyć:
record struct
a, b, c : byte;
puste_1 : byte;
n : Integer;
end;

Pozostało 580 znaków

Odpowiedz

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