Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi variabeln problem (https://www.delphipraxis.net/59717-variabeln-problem.html)

UniPerson 27. Dez 2005 19:16


variabeln problem
 
ich versuche etwas im code einzubinden die zahl die im texbox ist +1 beid knopfdruck soll sich die zahl + nehmen.
var
A : Integer

edit5.text := edit5.text + 1 ?
a:= edit5.text
und dann

asm
mov [$22222222], $3333333 & a
end;


kriege das nicht hin wer nen simplen code dafür?

jbg 27. Dez 2005 19:20

Re: variabeln problem
 
Zitat:

Zitat von UniPerson
edit5.text := edit5.text + 1 ?

Der Compiler mag es halt nicht, wenn man einen Code schreibt, der es erlaubt 'Hallo'+1 zu rechnen. Schon mal was von StrToInt/StrToIntDef gehört?

Zitat:

asm
mov [$22222222], $3333333 & a
end;
Wenn es schon an String->Integer hängt, dann solltest du vorerst mal auf Assembler verzichten, wobei das "& a" hier nicht mal geht. Das musst du schon in einen eigenen "AND" Befehl durchführen.

DCoder 27. Dez 2005 19:23

Re: variabeln problem
 
Du musst zuerst edit5.text in einen integer datentyp umwandeln. So versucht Delphi einen zeichentyp (string) mit einer zahl zu addieren, wo der compiler schon sofort stopp sagen sollte ;-)

es würde sich in diesem beispiel anbieten zuert mal den wert in edit5.text umzuwandeln und in einer variable zu speichern:

Delphi-Quellcode:
var
  b: integer;
begin
  b := StrToInt(edit5.text);
dann kannst du ohne Probleme diese Zahl addieren etc. und dann das Ergebnis wieder umwandeln und in die Textbox schreiben:

Delphi-Quellcode:
  b := b + 1;
  edit5.text := IntToStr(b);
Hoffe das hat dir geholfen!

UniPerson 27. Dez 2005 19:51

Re: variabeln problem
 
Danke für die Schnelle antwort

ichbins 27. Dez 2005 19:52

Re: variabeln problem
 
oder kürzer:
Delphi-Quellcode:
edit5.text:=inttostr(strtoint(edit5.text)+1);

UniPerson 27. Dez 2005 21:29

Re: variabeln problem
 
soweit klappt alles aber soweit

ich das der adresse anhängen will macht er das nicht



move [$1234567], $222222 + b


was mache ich falsch?

jbg 27. Dez 2005 22:08

Re: variabeln problem
 
Zitat:

Zitat von UniPerson
was mache ich falsch?

Du arbeitest hier mit Assembler. Das heißt du kannst nur das machen, was die CPU dir bietet und ein "MOV mem,const+variable" gibt es nicht. Das addieren musst du vorher als eigenen Befehl durchführen.
Aber warum nutzt du dafür überhaupt Assembler? Das ganze kann man auch mit Pascal-Code erreichen und da nimmt dir der Compiler die Addition ab.
Delphi-Quellcode:
PInteger($22222222)^ := $3333333 + b;
Aber ich hoffe du weißt was du da eigentlich machst. Denn anonsten führt das nur zu Schutzverletzungen.

UniPerson 28. Dez 2005 01:36

Re: variabeln problem
 
ja es klappt nun danke, es hat voher auch geklappt auf der adresse zu schreiben aber da musste ich halt alles manuell eingeben,so hab ich es erreicht das er das aus der textbox die zahlen addiert.So ändert sich der wert per commandclick.


thx an alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz