den ganzen Nachmittag suche ich nun schon einen eigenartigen Fehler. Bei der Fehlersuche bin ich nun auf ein eigenartiges Phänomen gestoßen, das ich mir nicht erklären kann. Ob mein Programmfehler damit zusammen hängt, glaube ich nicht - und natürlich interessiert mich das folgende Programmverhalten:
Es gibt 4 Edit Felder (Edit1... Edit4)
Vor dem Aufruf der unten gezeigten Procedure wird die global gültige Variable "Hilfsstring" in das Edit1.Text -Feld problemlos geladen und angezeigt.
Auch zu Beginn der Procedur wird Edit2.Text noch richtig mit dem "Hilfsstring" gefüllt.
Edit3.Text und Edit4.Text bleibt aber leer ?????
Code: Alles auswählen
procedure TForm2.ZuZeileSchlagwortspringen;
var
Datenzeilen, i , k : Integer;
begin
form1.QSchlag.SQL.Text := 'Select * from tSchlagw ORDER BY UPPER(RSchlagw)';
Form1.QSchlag.Open;
Datenzeilen := 0;
form1.Edit2.Text:= Hilfsstring; // Feld ist richtig mit der Variabel "Hilfsstring" gefüllt
if Hilfsstring <> '' then
begin
while not Form1.QSchlag.EOF do
begin
Datenzeilen := Datenzeilen + 1 ;
if (Hilfsstring = DBEdSchlagwortaendern.Text) then
begin
k:= (Form1.QSchlag.RecordCount - Datenzeilen);
if k > 12 then k := 12;
For i := 1 to k do form1.QSchlag.Next; // = "Anfängerkrücke" zwecks Positioierung des Cursors
For i := 1 to k do form1.QSchlag.Prior;
exit;
end;
form1.QSchlag.Next;
end;
form1.Edit3.Text:= Hilfsstring; // leibt leer
end;
form1.Edit4.Text:= Hilfsstring; // leibt leer
end;
Könnte mir dieses Programmverhalten jemand erklären??
Aliobaba
Code: Alles auswählen
procedure TForm2.ZuZeileSchlagwortspringen;
var
Datenzeilen, i , k : Integer;
begin
form1.QSchlag.SQL.Text := 'Select * from tSchlagw ORDER BY UPPER(RSchlagw)';
Form1.QSchlag.Open;
Datenzeilen := 0;
form1.Edit2.Text:= Hilfsstring; // Feld ist richtig mit der Variabel "Hilfsstring" gefüllt
{
if Hilfsstring <> '' then
begin
while not Form1.QSchlag.EOF do
begin
Datenzeilen := Datenzeilen + 1 ;
if (Hilfsstring = DBEdSchlagwortaendern.Text) then
begin
k:= (Form1.QSchlag.RecordCount - Datenzeilen);
if k > 12 then k := 12;
For i := 1 to k do form1.QSchlag.Next;
For i := 1 to k do form1.QSchlag.Prior;
exit;
end;
form1.QSchlag.Next;
end;
form1.Edit3.Text:= Hilfsstring; // leibt leer (ist klar)
end;
}
form1.Edit4.Text:= Hilfsstring; // Feld ist hier wieder richtig mit der Variabel "Hilfsstring" gefüllt
end;