AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variable ist plötzlich anders

Ein Thema von H.Bothur · begonnen am 6. Jun 2017 · letzter Beitrag vom 7. Jun 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

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

n/a Beiträge
 
#2

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 20:23
Zitat:
Hatte ich auch schonmal im ersten Post vorgeschlagen.
Manchmal sind eben die dümmsten Vorgehensweisen die besten. Aber irgendwie habe ich den Eindruck, dass dieser Thread hier wieder ein sich selbst am Leben erhaltender Thread wird.
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 20:46
Zitat:
Hatte ich auch schonmal im ersten Post vorgeschlagen.
Manchmal sind eben die dümmsten Vorgehensweisen die besten. Aber irgendwie habe ich den Eindruck, dass dieser Thread hier wieder ein sich selbst am Leben erhaltender Thread wird.
Sorry - wird es nicht - ich bin ja selber an der Lösung interessiert !! Aber manchmal fordert die bessere Hälfte auch ihr Recht - und das war heute unser Dorfgrieche

Ich schreib morgen zu dem ganzen anderen Rest und teste mal die verschiedenen Tips aus !

Gruß und Gute Nacht
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Variable ist plötzlich anders

  Alt 6. Jun 2017, 20:27
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;
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;
Die beiden Routinen sind überhaupt nicht gleich, es besteht allerhöchstens eine oberflächliche Ähnlichkeit.
Die erste ist Teil einer Klassendefinition, die zweite ist "unabhängig".
In der ersten sollten alle UKunden durch self ersetzt werden.
Ebenso sollte procedure TUKunden.FirstKundenSuchen(KundenNummer: String; var.... durch procedure TUKunden.FirstKundenSuchen(const KundenNummer: String; var.... ersetzt werden.
in der zweiten wird die Laufvariable durch UKunden.KundenSpeicherSG.RowCount -1 begrenzt und auf StringGrid[1, i] zugegriffen. Das ist zumindest ungewöhnlich. Woher kommt "Stringgrid" ?

Gruß
K-H

P.S.
Sind die üblichen Prüfungen (Bereich etc.) aktiviert?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:35 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