![]() |
D7 Überlaufprüfung ausschalten
Hallo zusammen,
ich weiß wahrscheinlich stehts in der OH, aber ich bin zu blöd es zu finden:
Delphi-Quellcode:
das ist aus Superobject.pas, wofür $Q gut ist ist auch klar, aber es wird nicht beachtet.
begin
h := 0; {$Q-} for i := 1 to Length(k) do h := h*129 + ord(k[i]) + $9e370001; {---- hier knallt es!} {$Q+} Result := h; end; Wie kriege ich es hin, daß diese Compilerdirektiven auch wirklich beachtet werden? Gruß K-H |
AW: D7 Überlaufprüfung ausschalten
Menü Projekt
Untermenü Optionen (Umsch+Strg+F11) Reiter Compiler rechte Groupbox Laufzeitfehler 3. Option = Überlaufprüfung |
AW: D7 Überlaufprüfung ausschalten
jain, das hat nicht so richtig funktioniert!
(nachdem ich das
Delphi-Quellcode:
auskommentiert hatte, war Ruhe, aber glücklich bin ich damit nicht, da die Prüfung zumindest während der Entwicklung für alle anderen Code-Teile aktiv sein sollte.
{$Q+}
Gibt es da nicht noch irgendwie so etwas wie eine Unit ohne Debugger-Zugriff oder ähnliches? Gruß K-H |
AW: D7 Überlaufprüfung ausschalten
Das {Q+} darfst Du erst hinter der wirklichen Auswertung setzen.
Probier es mal ungefähr so :
Delphi-Quellcode:
Weil die Variablentypen und ihre Werte aus Deinem Beispiel nicht so ganz ersichtlich sind, habe ich einfach irgendwas genommen, das dennoch den Fehler reproduziert bzw. abfängt. Es ist sinnvoll, außer der Überlaufprüfung auch die Bereichsüberprüfung abzustellen. Sowas sollte aber immer nur bis zum Herausfinden der Fehlerursache geschehen. Oft helfen Klammerungen und Typenumwandlungen.
procedure TForm1.Button1Click(Sender: TObject);
var erg, h: longint; k: string; function sub: longint; var i: byte; begin h := 0; {$Q-,R-} for i := 1 to Length(k) do h := h*129 + ord(k[i]) + $9e370001; {---- hier knallt es!} // Hier bringt {Q+} nichts. Result := h; end; begin k:= 'bla'; erg:=sub; showmessage(inttostr(erg)); {$Q+,R-} // Hier wurde die Auswertung vorgenommen, also kann die Prüfung wieder aktiviert werden. end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz