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?