Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Kompilierfehler bei während er Laufzeit erstellten Objekten

  Alt 2. Jan 2016, 13:20
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat