Thema: Delphi strtoint gibt 0 zurück

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#21

Re: strtoint gibt 0 zurück

  Alt 21. Sep 2009, 12:53
Hallo,

befindet sich die Routine in einem Formular?

Dann könnte folgende Überlegung eventuell weiterhelfen.

Du hast eine lokale Variabel tag.
Das Formular hat ein Attribut Tag.

Der Compiler erkennt die Variabel tag und Du kannst sie benutzen und im Debugger "begutachten".
Die gilt auch für das Attribut Tag.

Der Compiler geht nun her und wirft Variabeln zu dem Zeitpunkt weg, bei dem er der Meinung ist, das die Variabel nicht mehr benötigt wird.

Das Problem, das hier nun auftritt ist: Der Compiler ist einer anderen Meinung als Du, was die Lebensdauer der Variabel tag angeht. Zu dem Zeitpunkt, an dem Du auf die Variabel tag zugreifst, ist der Compiler der Meinung, dass die Variabel tag nicht mehr benötigt wird, er ist der Ansicht, dass Du auf das Attribut Tag zugreifen möchtest und liefert es Dir.

Und nun beweise Du mal dem Compiler, dass er Unrecht hat

Problemlösungsmöglichkeit: Konsequent keine Variabelnnamen nutzen, die auch als Attribute (anderer Klassen) vorkommen (könnten). Also alles weglassen, was Attribut des Formulars ist, wie z. B.: Name, Enabled, Visible, Tag, Height, Align, Width... . Deshalb ist hier die ungarische Notation durchaus hilfreich. Du muss sie ja nicht konsequent in vollem Umfang umsetzten, aber nimm sie als Richtschnur, Hilfestellung... für eine konsequente eigene Vergabe von Variabelnnamen. Schlimmstenfalls setze vor alle eigenen Variablemnamen ein my (für: Die Variabel ist mirzu oder meineseine) oder loc (für lokale Variabel). Bei solchen Problemen suchst Du die in großen Projekten 'nen Wolf und das ist durch Namenskonventionen vermeidbar.
  Mit Zitat antworten Zitat