![]() |
Delphi-Fehlermeldungen unterdrücken im Einzelschrittmodus F8
Hallo Leute,
ich hab's satt. Jedesmal bekomme ich eine Fehlermeldung, wenn ich im Einzelschrittmodus (F7, F8)oder beim Durchlauf mit (F4, F9) in einer mit nachfolgenden Befehlsfolge den Programmlauf kontrolliere:
Code:
Sinn der Befehlsfolge: wenn das Feld 'Fax' in der Quelldatei (Tab) existiert, wird der Inhalt des Feldes meiner Variablen fx zugewiesen, anderenfalls wird über except während der Laufzeit eine Fehlermeldung verhindert.
//....
try fx := Tab.FieldByName('Fax').AsString; // Fax except fx := ''; end; //.... Gibt es in Delphi5 irgendwo eine Stelle, in der ich nur einen Haken machen muß, damit ich im Testmodus nicht jedesmal einen Exception auf den Bildschirm geknallt bekomme? mfg eddy |
Re: Delphi-Fehlermeldungen unterdrücken im Einzelschrittmodu
Hallo eddy,
Du kannst unter Tools|Debugger Options...|Language Exceptions|Stop on Delphi Exceptions die Meldung innerhalb der IDE abstellen. Achtung, beim Step über eine Zeile, die eine Exception auslöst, wird der integrierte Debugger verlassen. Für diese Fälle solltest Du einen Breakpoint in den Except-Block platzieren. Zitat:
Delphi-Quellcode:
try
Foo(AParam div AnotherParam); except Bar(AParam); end; |
Re: Delphi-Fehlermeldungen unterdrücken im Einzelschrittmodu
Hallo choose,
vielen Dank für den Tip mit FindField. Scheint ja auch so eine Funktion zu sein, die kaum einer kennt. Google lieferte bei "FindField Delphi" nur einige wenige Einträge im deutschsprachigen Bereich (glücklicherweise steht auf den russischen Seiten der Quelltext nicht in Russisch da). Zur Anwendung:
Code:
Die Abfrage
var
fld : TField; begin // .... fld := Tab.FindField('Fax'); if Assigned(fld) and (fld.FieldNo > 0) then fx := '' else fx := fld.Value; // ....
Code:
war ebenso funktionsfähig.
if Assigned(fld) // also ohne: and (fld.FieldNo > 0)
Von der Verwendung von
Code:
rate ich ab, da diese Abfrage bei vorhandenen aber leeren Felder and der Stelle
if fld = nil then ....
Code:
zu einem Exception führte (zumindest in meinem Beispiel).
else fx := fld.Value
Statt fld.Value kann natürlich auch fld.AsString verwendet werden, man muß aber mehr ändern, wenn sich der Datentyp ändert. mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 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