bin am Verzweifeln.
Habe Lazarus 4.2 und FPC 3.2.2 das ganze unter Windows 11.
Habe ein Programm geschrieben wo Daten in eine Datenbank erfasst werden (siehe Bild1).
In der Procedure TForm1.Edit3KeyUp passiert der Fehler.
Ich habe einen Haltepunkt auf (siehe Quellcode "Haltepunkt") gesetzt.
Wenn das Programm da stoppt und ich anschliessend F8 drücke,
so steht das Programm (siehe Quellcode "nach Funktionstaste F8 steht er hier") hier.
Außerdem durchläuft das Programm nochmal die Routine "TForm1.Button1Click"
(Das ist der Button "Anlegen Song") ohne das ich den Button gedrückt hätte.
Kann mir das Jemand erklären?
Danke und Gruß
Jürgen
Code: Alles auswählen
procedure TForm1.Edit3KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var h1: string;
var h2: string;
var h3: string;
var h4: integer;
begin
if mlauf = 3 then
begin
Shift:=Shift;
if ((istell = ilanmax) and (ord(itaste) > 0) and (iautocr = 1)) then
begin
Key:=ord(chr(13));
end;
if ord(Key) = 13 then
begin
istell:=0;
Label2.Caption:='';
Edit3.Enabled:=False;
Edit3.ReadOnly:=True;
Edit3.Color:=clSilver;
ialpha:=Edit3.Text;
h1:=Blankweg(3,ialpha);
if h1 <> '' then
begin
Titel:=h1;
h4:=0;
Form1.ZQuery1.SQL.Text:='SELECT * FROM oldies WHERE Jahrzent=:jar AND Interpret=:inter AND Titel=:tit ORDER BY Jahrzent, Interpret, Titel';
Form1.ZQuery1.ParamByName('jar').asInteger:=Jahrgang;
Form1.ZQuery1.ParamByName('inter').asString:=Interpret;
Form1.ZQuery1.ParamByName('tit').asString:=Titel;
Form1.ZQuery1.Open;
while not Form1.ZQuery1.EOF do
begin
h4:=h4+1;
Form1.ZQuery1.Next;
end;
Form1.ZQuery1.Close;
if h4 = 0 then
begin
h1:=IntToStr(Jahrgang);
h2:=Copy(h1,1,1);
h3:='D:\Mediathek\Oldies\'+h2+'0s\'+Interpret+' - '+Titel+'.mp3';
if FileExists(h3) then
begin
mlauf:=4;
ComboBox2.Color:=clWhite;
ComboBox2.Enabled:=True;
ComboBox2.ReadOnly:=False;
Form1.ActiveControl:=ComboBox2;
end else begin
Label2.Caption:='Musikfile '+h3+' nicht vorhanden, Abbruch';
mlauf:=0;
mtasts:=1;
mart:=0;
Closestat:=0; // Haltepunkt
end;
end else begin
Label2.Caption:='Song schon vorhanden, Abbruch';
mlauf:=0;
mtasts:=1;
mart:=0;
Closestat:=0;
end;
end else begin
Label2.Caption:='Titel muss eingegeben werden';
Edit3.Enabled:=True;
Edit3.ReadOnly:=False;
Edit3.Color:=clWhite;
Edit3.Text:='';
ialpha:='';
inummer:=0;
inumkom:=0;
ikomma:=0;
izeich:=3;
istell:=0;
iautocr:=1;
iart:=1;
ifunc:=5;
ilanmax:=50;
ilanmin:=1;
Form1.ActiveControl:=Edit3;
Edit3.AutoSelect:=True; // nach Funktionstaste F8 steht er hier
end;
end;
end;
end;