Cardinal i String

Kaka024

Użytkownik
Dołączył
Grudzień 11, 2009
Posty
6
Męczę się cały dzień z kodem. Myślałem, że już to skończę, gdy zaskoczył mnie pewien błąd. Nie mam już siły się z tym męczyć. Może wy coś wymyślicie:

Kod:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label3.caption:=readmeminteger(inttohex(readmeminteger(pointerEXP)+hextoint('58'),8));
end;

[Error] Unit1.pas(88): Incompatible types: 'Cardinal' and 'String'

Do rzeczy- z pointera (adres w programie) wyciągam pewną daną, dodaje do niej zamienione z hexa na liczbę 58, całość daję na hexa i powstaje mi adres, z którego już mogę wyciągnąć inne dane. To tak w skrócie co ma ten program robić.
Oczywiście chodzi mi o wykluczenie błędu z cardinalem.
 

lankusiek

Użytkownik
Dołączył
Luty 9, 2009
Posty
28
Omg! człowieku skąd my mamy wiedzieć co to są za procedury.
spróbuj:

Kod:
// smerfa zadeklaruj jako cardinal;

smerf:= readmeminteger(inttohex(readmeminteger(pointerEXP)+hextoint('58'),8));

Label3.Caption:= IntToStr(smerf);
 

Klawisz95

Użytkownik
Dołączył
Styczeń 24, 2010
Posty
54
Wszystko zależy od tego co za wartość zwraca funkcja "readmeminteger"...
Zakładam że zwraca wartość liczbową...
W takim razie daj to tak:

Kod:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label3.Caption:=IntToStr(ReadMemInteger(IntToHex(ReadMemInteger(pointerEXP)+HexToInt('58'),8));
end;

A i pamiętaj o zasadach pisania kodu. Przyjeło się że stosuje się pismo "PokeMonowe" xD
Tzn. Takie garbki w nazwach :D
 
Ostatnia edycja:
Do góry Bottom