Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#314

AW: Was nervt euch so, wärend der Programmierung.

  Alt 17. Jul 2011, 15:53
Nee nee, da ist alles vorhanden.
Im Einzelschritt kann man dort bequem durchlaufen, nur eben bei einer exception dreht das durch.

Hab nun aber den Fehler gefunden.

"Einfach" Dieses an den Anfang der Unit:
Delphi-Quellcode:
function StrToInt(const S: String): Integer;
begin
  try
    Result := SysUtils.StrToInt(S);
  except
    Beep;
  end;
end;
Oder ein bissl Aufgemotzter:
Delphi-Quellcode:
function StrToInt(const S: String): Integer;
begin
  try
    Result := SysUtils.StrToInt(S);
  except
    Result := 0;
    asm int 3 end;
    if S = 'then Beep; // nur, damit man sich S nochmal ansehn kann
  end;
end;
Hier würde man ja erwarten, daß der debugger bei Result := SysUtils.StrToInt(S); oder zumindestens bei Result := 0; (dem nächsten Befehl) zum stehen kommt, wenn der Debugger mit seiner "Erste Gelegenheit für Exception"-Meldung ankommt und man dort auf "Anhalten" klickt.

Nee, der springt erstmal ganz raus, aus der diesem StrToInt und ebenfalls aus der aufrufenden Methode, in die Äußerste Button-Click-Methode, nach dem Aufruf der untergeordneten Methode.
Selbst der Aufrufstack hilft nix, da die stelle angeteigt wird, wo der cursor nun steht.

Durch das Except, springt er nun nach F7 aber shockierender Weise in den Exceptblock zurück und dadurch, daß die Exception abgefangen wird, konnte ich mich dann über F7 weiterdebuggen und kam dann endlich, einen Befehl nach dem "bösen" StrToInt, im Code an.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.