AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable ist plötzlich anders

Ein Thema von H.Bothur · begonnen am 6. Jun 2017 · letzter Beitrag vom 7. Jun 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:51
Also nochmal gefragt: Du benutzt keinen TThread? (Das wäre ja auch noch ein normales Programm )

Benutzt Du sonst irgendwo Application.ProcessMessages? Das kann den Programmfluss ggf. auch etwas durcheinander bringen (obwohl vermutlich nicht direkt in der beschriebenen Weise).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
259 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:02
Also nochmal gefragt: Du benutzt keinen TThread? (Das wäre ja auch noch ein normales Programm )

Benutzt Du sonst irgendwo Application.ProcessMessages? Das kann den Programmfluss ggf. auch etwas durcheinander bringen (obwohl vermutlich nicht direkt in der beschriebenen Weise).
Nöö TThread nutze ich nicht .. so wie ich programmiere könnte man das wahrscheinlich auch (bis auf das Grid) in TurboPascal 1.0 oder MS-Basic schreiben - sprich erwarte da von mir eigentlich nichts in Richtung Intelligenz !!

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#3

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:17
Delphi-Quellcode:
 if (KundenNummer = UKunden.KundenSpeicherSG.Cells[CKundenNr, i]) then [COLOR="Red"]// <- hier wird nach Kundennummer 12652 gesucht[/COLOR]
    begin
      if (UKunden.KundenSpeicherSG.Cells[CKundenRNAnschrift, i] = (UKunden.KundenSpeicherSG.Cells[CKundenLfdNr, i])) then [COLOR="Red"]// -< und hier ist der Inhalt von KundenNummer plötzlich 14109[/COLOR]
bzgl: <- hier wird nach Kundennummer 12652 gesucht
das verstehe ich ja noch, da du "Kundennummer" vergleichst

bzgl: -< und hier ist der Inhalt von KundenNummer plötzlich
das verstehe ich nicht. Wie kann "Kundenummer" in einer Zeile plötzlich einen anderen Wert haben, wenn du "Kundennummer" gar nicht vergleichst?
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:22
Kann es sein, dass in der Basisklasse "KundenNummer" einen Getter hat, der den Inhalt verändert oder ist Kundennummer selbst eine procedure? Was passiert, wenn du in einer Routine einfach ein paarmal hintereinander "KundenNummer" abfragst, ohne noch was anderes zwischendrin zu machen, ändert sich dann der Rückgabewert auch?
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#5

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:24
Oder zum Test "Kundenummer" im Prozedurkopf einfach mal nach "AKundenNummer123" oder irgendeinen Quatsch umbenennen der definitiv nirgendwo anders existiert.
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
259 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:27
bzgl: -< und hier ist der Inhalt von KundenNummer plötzlich
das verstehe ich nicht. Wie kann "Kundenummer" in einer Zeile plötzlich einen anderen Wert haben, wenn du "Kundennummer" gar nicht vergleichst?
Das sehe ich im Debugger

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#7

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:32
Dann muss wohl irgendwas mit Kundenummer geschehen. Du sagtest, es gibt die variable nur einmal.
Benenne sie im Prozedurkopf trotzdem mal um und teste das.

Eine andere wahrscheinlich dumme Idee, nur zum testen:
deklariere mal eine lokale string-Variable und weise ihr VOR der for-Schleife "Kundennummer" zu. Du vergleichst dann auf diese neue string-Variable und nicht mehr auf Kundennummer.

Geändert von SneakyBagels ( 6. Jun 2017 um 17:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#8

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 18:54
Kundennummer ist ein Parameter der Methode,
also selbst wenn jemand zwischendurch außerhalb eine Variable ändert, die zu Beginn an diesen Parameter übergeben wurde, darf sich niemals der Wert dieses Parameters ändern, außer jemand ändert ihn innerhalb dieser Methode, was hier ja angeblich nicht gemacht wird.

Also ein Umkopieren in eine weitere lokale Variable sollte hier nichts bringen, vorallem da es sich am Ende um die selbe String-Referenz handelt.



Einzige Ausnahme für das NIEMALS: BufferOverflow oder Dergleichen. Danach sieht es in dem gezeigten Code aber auch nicht aus.


Änderung innerhalb der Methode könnte man auch mal so ausschließen:
procedure TUKunden.FirstKundenSuchen(const KundenNummer: String; var KName1, ...
Wenn das nichts bringt, dann bleiben nur 2 mögliche Problemstellen.
* der Compiler zeigt etwas Falsches an und das Programm arbeitet dennoch korrekt (prüfen siehe mein vorheriger Post)
* du hast ein massives Speicherproblem und jemand (du) überschreibt irgendwo willkürlich deinen RAM. (aber schon komisch, dass dabei rein zufällig ein "korrekter" String mit einer schönen "Nummer" als Text entsteht)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#9

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 18:55
Zitat:
* der Compiler zeigt etwas falsches an und das Programm arbeitet dennoch korrekt (prüfen siehe mein vorheriger Post)
Ich schlage ganz plump einfach mal vor den Inhalt von "Kundennummer" mit einer Showmessage anzuzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#10

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 19:06
Zitat:
* der Compiler zeigt etwas falsches an und das Programm arbeitet dennoch korrekt (prüfen siehe mein vorheriger Post)
Ich schlage ganz plump einfach mal vor den Inhalt von "Kundennummer" mit einer Showmessage anzuzeigen.
Hatte ich auch schonmal im ersten Post vorgeschlagen.

Aber gerade aufgrund des Types hätte ich eher erwartet, dass er dann garnichts, bzw. eine Fehlermeldung anzeigt, als rein zufällig einen "anderen" String, den er scheinbar problemlos auslesen konnte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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-2025 by Thomas Breitkreuz