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      
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 15: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
259 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 15: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
 
#3

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 15: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
 
#4

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16: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
259 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16: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
 
#6

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16: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
259 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16: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
Benutzerbild von stahli
stahli

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

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
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#9

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 16:57
Wenn ein String-Paramerter innerhalb der Methode nicht verändert werden soll, vereinbart man den am besten als "const"-Paramter.
Delphi-Quellcode:
FirstKundenSuchen(const KundenNummer: String{ ...})
.
Für die Rückgabe kann man zwar "var"-Parameter verwenden, aber eigentlich sollten es hier "out"-Parameter sein.
"var" bedeuted die Parameter müssen auch vor dem Aufruf sinnvoll belegt sein, da die vorherigen Werte intern benötigt werden.
"out" den Parameter-Variablen muss vor dem Aufruf nichts zugewiesen werden.

Die ganzen Rückgabewerte gehören doch zusammen und bilden ein fachliches Object. Warum dann nicht auch eine Klasse benutzen oder zumindst einen Record?
Delphi-Quellcode:
type
  TKundeRec = record
    Nummer,
    Name1,
    Name2,
    Strasse,
    Land,
    PLZ,
    Ort,
    Telefax,
    Email,
    Vertreter,
    RnEmail: String
  end;

  procedure TUKunden.FirstKundenSuchen(const KundenNummer: String; out Kunde: TKundeRec);
  {oder}
  function TUKunden.FirstKundenSuchen(const KundenNummer: String): TKundeRec;
Deine Klasse heist "TUKunden" und hat direkten Zugriff auf alle internen Felder und Objekte.
Die Variable "UKunden" ist vermutlich eine globale Variable die dich innerhalb der Klasse überhaupt nicht interessiert.
Streich mal überall in der Methode "UKunden.", dann wird das etwas übersichlicher und eine Fehlerquelle ausgeschlossen.

Hast du die Optimierung für das Compilieren angeschalten? Das sollte man nicht wenn man debuggen will.
Das Programm läuft zwar normal, aber der Debugger zeigt dann nicht mehr richtig an.

Vieleicht hast du auch mehrere Variablen die Kundennummer heißen. Eine lokal in der Methode und eine weitere in der Klasse.

Geändert von Blup ( 6. Jun 2017 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 17:01
Wenn ein String-Paramerter innerhalb der Methode nicht verändert werden soll, vereinbart man den am besten als "const"-Paramter.
Vollkommen richtig. Ich fände es nur interessant (und korrigierenswert), zu wissen, was passiert
Nr.1 Delphi-Tool: [F7]
  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 10:29 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