Re: Gibts es Funktionen mit zwei Ergebnistypen!?
Hallo,
hier ist noch eine Möglichkeit:
Delphi-Quellcode:
Gruß Hawkeye
// uses Math (IsZero)
function Division (a, b: Double; var erg: Double): Boolean; begin Result := not IsZero(b); if Result then erg := a / b; end; procedure TForm1.Button1Click (Sender: TObject); var y: Double; begin if Division(4, 3, y) then Label2.Caption := FloatToStr(y) else Label2.Caption := 'error'; end; |
Re: Gibts es Funktionen mit zwei Ergebnistypen!?
Hallo,
danke erstmal für eure Mühe, mir zu helfen!!! Ich habe dennoch eine allgemeine Frage, was die Anweisung try...except betrifft. Habe diese noch nie im Informatikunterricht behandelt und sie einfach aus einem Beispiel übernommen. Ich habe mich ein bisschen darüber informiert, es stand in einem Buch von mir, dass wenn innerhalb des Try-Blocks ein Fehler auftritt, so wird die Programmausführung in diesem Block unterbrochen und hinter Except fortgesetzt. Dazu folgendes primitives, jedoch anschauliches Beispiel:
Delphi-Quellcode:
So, nach meiner Logik sollte er nun die Anweisung "x/y" probieren. Tritt dabei ein Fehler auf, wie z.B. eine Division durch Null, so soll er als Result "1110" ausgeben (lassen wir den mathematisch völlig unlogischen Zusammenhang mal außen vor, die Zahl dient hier mal lediglich als Beispiel :wink: )
function division(x,y: extended): extended;
begin try result := x/y except result := 1110 End; end; Führe ich die Funktion nun doch aus, so erhalte ich dennoch einen Laufzeitfehler mit dem Hinweis von "EZeroDivide", anstatt, dass er mir als Resultat "1110" schreibt. Was habe ich nun falsch verstanden bzw. falsch gemacht??? [edit=Christian Seehase]Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit] |
Re: Gibts es Funktionen mit zwei Ergebnistypen!?
Wenn du deine Anwendung aus Delphi heraus startest, bekommst du trotz try except blöcken noch Exceptions. Das kann man irgendwo ausschalten, keine Ahnung wo. Zum testen kannst du einfach die *.exe Datei aus deinem Projektverzeichnis öffnen. Dann gehts auch.
|
Re: Gibts es Funktionen mit zwei Ergebnistypen!?
Moin Propeller,
in der englischen Version findest Du das unter Tools\Debugger Options...\Language Exceptions. Dort gibt es eine Checkbox "Stop on Delphi-Exceptions". Wenn die markiert ist werden Exceptions auch angezeigt, wenn sie ein try/except-Block abfängt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz