Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktionsrückgabe ignorieren (https://www.delphipraxis.net/162147-delphi-funktionsrueckgabe-ignorieren.html)

sddfg 9. Aug 2011 13:18

Delphi-Version: 2010

Delphi Funktionsrückgabe ignorieren
 
Hallo ich möchte mit MessageDlg eine Meldung ausgeben, allerdings benötige ich den Rückgabewert nicht. Wenn ich dafür eine extra Variable deklariert gibt Delphi den Hinweis aus, dass der zugewiesene Wert niemals benutzt wird. Ich möchte jedoch auch nicht auf showMessage ausweichen, da man diese vom Aussehen her nicht so schön ist. Gibt es irgendeine Möglichkeit MessageDlg zuverwenden und die Rückgabe so zu ignorieren dass man keine Hinweis-Meldung erhält?! Gruß

Morphie 9. Aug 2011 13:23

AW: Delphi Funktionsrückgabe ignorieren
 
Klar...
Code:
MessageDlg('Blub', mtInformation, [mbOk], 0);

sddfg 9. Aug 2011 14:00

AW: Delphi Funktionsrückgabe ignorieren
 
Naja so Funktioniert es ja gerade nicht, weil MessageDlg ja eine Funktion ist und der Rückgabewert iwie behandelt werden muss.

sirius 9. Aug 2011 14:02

AW: Delphi Funktionsrückgabe ignorieren
 
"Erweiterte Syntax" einschalten

Entweder in den Projektoptionen oder mit {$X+}
Ist eigentlich schon seit ewigen Versionen per default eingeschaltet.

Phoenix 9. Aug 2011 14:02

AW: Delphi Funktionsrückgabe ignorieren
 
Nein, muss er nicht. Du kannst die Funktion auch aufrufen ohne Ihren Rückgabewert irgendwohin zuzuweisen.

DeddyH 9. Aug 2011 14:05

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von sddfg (Beitrag 1115791)
Naja so Funktioniert es ja gerade nicht, weil MessageDlg ja eine Funktion ist und der Rückgabewert iwie behandelt werden muss.

Sagt wer? Es gab IIRC irgendwo in den Tiefen der Optionen eine Einstellung dafür, die aber per Default disabled ist. Leider fällt mir nicht mehr ein, wo das war.

[edit] Wo war der rote Kasten? [/edit]

sddfg 9. Aug 2011 14:19

AW: Delphi Funktionsrückgabe ignorieren
 
Ahh ok wenn ich "Erweiterte Syntax" einschalte kann der Rückgabewert einer Funktion ignoriert werden. Schade nur dass in der Aufgabenstellung der Uni steht, das diese Option ausgeschaltet werden soll :wall: Naja dann werden die Abnehmer halt damit leben müssen dass die Variablen mit den Rückgabewerten nicht weiter verwendet werden..

sirius 9. Aug 2011 14:30

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von Delphi-Hilfe
Anmerkung: Die Direktive $X dient lediglich der Abwärtskompatibilität. Verwenden Sie daher {$X-} nicht in Ihren Delphi-Anwendungen.

http://docwiki.embarcadero.com/RADSt...Syntax_(Delphi)

Naja, die Theoretiker der Uni :roll:

Wahrscheinlich sollst du die Zeiger ordentlich dereferenzieren :D

Memnarch 9. Aug 2011 14:38

AW: Delphi Funktionsrückgabe ignorieren
 
@sddfg: welches Delphi benutzt ihr den o.O.
Mir war gar nicht beuwst dass es überhaupt sone einstellung gibt.(ist default on)

DeddyH 9. Aug 2011 14:44

AW: Delphi Funktionsrückgabe ignorieren
 
Im Ausgangspost ist Delphi 2010 angegeben.

gammatester 9. Aug 2011 15:03

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von sddfg (Beitrag 1115797)
:wall: Naja dann werden die Abnehmer halt damit leben müssen dass die Variablen mit den Rückgabewerten nicht weiter verwendet werden..

Nein, man nehme zB
Delphi-Quellcode:
if MessageDlg('Blub', mtInformation, [mbOk], 0)= mrOk then {nix};

DeddyH 9. Aug 2011 15:04

AW: Delphi Funktionsrückgabe ignorieren
 
Letztendlich sind aber alle Vorschläge zwangsweise genauso sinnfrei wie die Vorgabe, oder?

stahli 9. Aug 2011 15:34

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von sddfg (Beitrag 1115791)
Naja so Funktioniert es ja gerade nicht, weil MessageDlg ja eine Funktion ist und der Rückgabewert iwie behandelt werden muss.

M.E. war das irgendwann früher mal so und ist dann (vor einigen Jahren) abgestellt worden.

himitsu 9. Aug 2011 16:07

AW: Delphi Funktionsrückgabe ignorieren
 
Erweiterte Syntax: Wenn diese eingeschaltet ist und man den Rückgabewert nirgends zuweist, dann legt delphi quasi eine interne lokale Variable dafür an.


Bei Integer und Co. ändert das also nichts, da der Wert dann gleich verfällt, wie bei jeder Variable, welcher man etwas zuweist und diese danach nicht mehr abfragt ... dann optimiert das Delphi ja auch weg.
Für String, Interface, und anderen größeren Structuren, wie z.B. Arrays und Records, bleibt halt diese interne "lokale" Variable solange erhalten, bis die Funktion beendet ist.


Seit mindestens Delphi 7 ist die Erweiterte Syntax aber standardmäßig aktiviert.

p80286 9. Aug 2011 16:13

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von gammatester (Beitrag 1115815)
Nein, man nehme zB
Delphi-Quellcode:
if MessageDlg('Blub', mtInformation, [mbOk], 0)= mrOk then {nix};

wenn schon denn schon
Delphi-Quellcode:
rval:=MessageDlg('Blub', mtInformation, [mbOk], 0);
if rval<> mrOk then
  ShowMessage('unexpected data in dialog received:'+inttohex(integer(rval),4));
Das macht sich zumindestens im Quelltext gut, und wenn die Meldung dann kommt......

Gruß
K-H

Memnarch 9. Aug 2011 16:33

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von DeddyH (Beitrag 1115808)
Im Ausgangspost ist Delphi 2010 angegeben.

Ach mist...hatte angefangen die antwort zu schreiben, wollte dan schnell nachgcuekn welche version und ab in den posts die unterm editor angezeigt werden nachgeguckt..da hab ichs im eingangspost nicht gesehen(die info war da glaub ich ausgeblendet >.<)

Zitat:

Letztendlich sind aber alle Vorschläge zwangsweise genauso sinnfrei wie die Vorgabe, oder?
Waren die vorgaben nicht schulischem ursprungs? Das würde doch dann schon alles sagen....


MFG
Memnarch

DeddyH 9. Aug 2011 16:35

AW: Delphi Funktionsrückgabe ignorieren
 
Man kann eben aus Sch***e keine Schokolade machen, Farbe und Form bekommt man zur Not noch hin, der Geschmack bleibt aber leider :roll:

BUG 9. Aug 2011 18:17

AW: Delphi Funktionsrückgabe ignorieren
 
OT:
Zitat:

Zitat von DeddyH (Beitrag 1115849)
Man kann eben aus Sch***e keine Schokolade machen, Farbe und Form bekommt man zur Not noch hin, der Geschmack bleibt aber leider :roll:

Schokolade vielleicht nicht :shock:

Ralf Kaiser 9. Aug 2011 18:31

AW: Delphi Funktionsrückgabe ignorieren
 
Zitat:

Zitat von BUG (Beitrag 1115855)
OT:
Zitat:

Zitat von DeddyH (Beitrag 1115849)
Man kann eben aus Sch***e keine Schokolade machen, Farbe und Form bekommt man zur Not noch hin, der Geschmack bleibt aber leider :roll:

Schokolade vielleicht nicht :shock:

Oh Mann... Sachen gibts. Schlimmer ist nur noch Soylent Green...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 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