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 4  1 23     Letzte »    
H.Bothur

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

Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:36
Delphi-Version: 10 Berlin
Sorry - besser kann ich es bnicht beschreiben Ich habe hier ein Stringgrid das einfach von oben nach unten durchgelaufen wird.
Wenn das Feld Kundennummer der übergebenen Kundennummer entspricht soll es, wenn zwei weitere Felder übereinstimmen die Daten ausgeben.
Im Prinzip sehr einfach ... aber plötzlich ist die KundenNummer nach der gesucht wird eine andere:

Delphi-Quellcode:
procedure TUKunden.FirstKundenSuchen(KundenNummer: String; var KName1, KName2, KStrasse, KLand, KPLZ, KOrt, KTelefax, KEmail, KVertreter, KRnEmail: String);
var
  i: Integer;
begin
  for i := 0 to UKunden.KundenSpeicherSG.RowCount -1 do
  begin
    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]
      begin
        KName1 := UKunden.KundenSpeicherSG.Cells[CKundenName1, i];
        KName2 := UKunden.KundenSpeicherSG.Cells[CKundenName2, i];
        KStrasse := UKunden.KundenSpeicherSG.Cells[CKundenStr, i];
        KLand := UKunden.KundenSpeicherSG.Cells[CKundenLand, i];
        KPLZ := UKunden.KundenSpeicherSG.Cells[CKundenPLZ, i];
        KOrt := UKunden.KundenSpeicherSG.Cells[CKundenOrt, i];
        KTelefax := UKunden.KundenSpeicherSG.Cells[CKundenTelefax, i];
        KEmail := UKunden.KundenSpeicherSG.Cells[CKundenEMail, i];
        KVertreter := UKunden.KundenSpeicherSG.Cells[CKundenVertreter, i];
        KRnEmail := UKunden.KundenSpeicherSG.Cells[CKundenRnEMail, i];
        exit;
      end;
    end;
  end;
  KName1 := 'Keine Daten gefunden ! '; (* Kann eigentlich nicht vorkommen :-D *)
end;
In der Routine ändere ich nicht den Inhalt von KundenNummer.
Es wird auch keine andere Routine aufgerufen.
Hinweise und Warnungen auf Laufzeitfehler sind eingeschaltet.

Hier in Debugger-Exceptions hatte ich schonmal "komische" Probleme mit dem Programm - nur wie finde ich den Fehler wenn ich keine Exception bekomme ?

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

n/a Beiträge
 
#2

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:43
fehlen da nicht ein paar else ?

Delphi-Quellcode:
if (KundenNummer = UKunden.KundenSpeicherSG.Cells[CKundenNr, i]) then
  [COLOR="Red"]
end else
begin
.....

if (UKunden.KundenSpeicherSG.Cells[CKundenRNAnschrift, i] = (UKunden.KundenSpeicherSG.Cells[CKundenLfdNr, i])) then
[COLOR="Red"]
end else
begin
....

gruss
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:56
Moin,

eigentlich ja nicht .... denn entweder er findet Daten (dann greift das Exit) oder er findet nicht und dann läuft er die Schleife komplett durch. Ich hab das ganze nochmal etwas verkürzt:

Delphi-Quellcode:
procedure IchBinKomisch(KundenNummer: String; var Rueckgabewert: String);
var
  i: Integer;

begin
  for i := 0 to UKunden.KundenSpeicherSG.RowCount -1 do
  begin
    if (KundenNummer = StringGrid[1, i]) then
    begin
      if (StringGrid[2, i] = (StringGrid[3, i])) then
      begin
        Rueckgabewert := 'Gefunden';
        exit;
      end;
    end;
  end;
  Rueckgabewert := 'Keine Daten gefunden ! '; (* Kann eigentlich nicht vorkommen :-D *)
end;
Wobei ... ioch glaube eigentlich nicht das es an dieser Routine liegt Aber wo suchen ??

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

n/a Beiträge
 
#4

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:57
ja sorry war Schwachsinn von mir..
Da hilft nur durchsteppen.. also breakpoint setzen und den index "i" prüfen.

gruss
  Mit Zitat antworten Zitat
bra

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:09
Läuft das ganze in einem Thread oder gibt es noch eine globale/Klassen-Variable, die KundenNummer heisst?
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:16
Ganz normales Programm - und Kundennummer als Variable gibt es auch nur in dieser Routine.

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:35
Mach aus der Variablen "Kundennummer" ein Property mit Setter und mach einen BreakPoint in den Setter. Dann siehst Du sofort, wer wann was wo warum ändert

BTW: tut das Not, ein StringGrid als Datenspeicher zu mißbrauchen? Ein Array oder eine Liste wäre eine bessere Trennung von Daten und GUI
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:41
Moin,

Danke für die Tipps !!

Zu a) Sorry- kannst Du mir zeigen kurz beschreiben ich das mache ?? Leider kann ich damit nichts anfangen
zu b) Ja - im Moment noch weil ich es so verstehe - eigentlich wollte ich ja wenn das hier läuft das ganze mal mit TTable umsetzen. Aber ich muss das hier erstmal zum laufen bekommen.

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:43
Sorry - schon was gefunden wo das beschrieben wird - ich versuche es mal !
Doch nicht Kannst Du mir mal sagen wie ich das machen müsste ?

Danke !

Hans
Hans-Georg Bothur
www.hermann-juergensen.de

Geändert von H.Bothur ( 6. Jun 2017 um 17:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17: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
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 10:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz