Zitat von
napsterxx:
Ja der Wert soll 2 sein und da will ich ein Byte schreiben, dachte das mache ich auch :S
aber wie geht das dann?
Du hattest zuvor einen String mit dem Inhalt von "#2" geschrieben. Wenn du nur die 2 hättest schreiben wollen, dann hättest du einfach die beiden Hochkommas vorne und hinten weglassen müssen.
Die Raute (#) gibt an, dass du ein Char definierst. Somit definierst du ein Zeichen eines Strings. Mit den Anführungszeichen hingegen definierst du einen String.
Zitat von
napsterxx:
und was wenn ich ein Array schreiben will? Also nicht ein Byte sondern vll 6? das ging vorher so:
#90#90#90#90#90#90
und jetzt? $90$90$90$90$90$90
Halt - hier verwechselst du was! Die # sind wie gesagt zur Angabe eines Zeichens per Zeichencode. Die $ wiederrum sind eine Formatierungsangabe, dass der nachfolgende Wert nicht dezimal sondern hexadezimal angegeben wird. Somit sind #90 ein Char mit dem Code von 90 und $90 ist ein Byte mit dem Wert von 144. Du kannst auch ein Char angeben in hexadezimaler Schreibweise: z.B. #$90.
Zitat von
napsterxx:
Und müsste ich es nicht eig so machen:
procedure TForm1.Button1Click(Sender: TObject);
var
val: Byte;
begin
val := StrToInt('$' + '02');
SchreibeInAdresse( $243AEC3C, @val, 1);
end;
Ob du nun einen String nimmst (wobei du das zusammensetzen von $ und 02 auch direkt machen kannst: $02) und den dann umwandelst, aber wozu? Der String ist konstant, das Ergebnis somit auch, also kannst du auch direkt den Wert zu hinscheiben.
/EDIT: ein paar Stunden zum tippen gebraucht und auch kein roten Kasten gehabt...