Delphi-Quellcode:
procedure TForm7.TitrationsartChange(Sender: TObject); //Titrationsart
var i,SD,index : Word;
begin
for i := 0 to SpinEdit1.Value -1 do
begin
if Sender = TitrationsartComboBox[i] then
begin
index := i; //index = die Reihe von 0 bis 9
end;
end;
SD := (Sender as TComboBox).ItemIndex;
Hier könnte Index undefiniert sein, wenn Sender keiner der Combobox entspricht.
Erhältst Du beim compilieren Warnhinweise? Dann schau Dir diese mal an (anklicken + F1). Das hilft dann manchmal schon weiter.
In dem Fall könntest Du Index vor der Schleife -1 zuweisen.
Controls haben eine (frei verwendbare) Eigenschaft "Tag". Der könntest Du evtl. auch einen Wert zuweisen und dann später direkt darauf zugreifen.
Delphi-Quellcode:
procedure TForm7.TitrationsartChange(Sender: TObject); //Titrationsart
var i,SD,index : Word;
begin
if Sender is TComboBox then
Index := (Sender as TComboBox).Tag
else
Index := -1;
Wegen dem unterschiedlichen Verhalten von F9 und F8 kann man evtl. auch vermuten, dass Windows ein Focusproblem hat.
Wenn ein Control den Focus hat und man dieses löscht kann Windows u.U. dabei durcheinander kommen.
Kommentiere ggf. einfach mal testweise die MeineControls.Free; aus.
Die Controls müllen zwar dann den Speicher zu aber wenn das Problem dann nicht mehr auftritt, wird es am Focus liegen.
So hätte man schon mal eine Eingrenzung gefunden.
Grundsätzlich kannst Du in dem problematischen Bereich auch mal OutputDebugString('StelleXYZ'); einbauen.
So kannst Du nachvollziehen, welche Zeilen noch korrekt erreicht werden.