Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rückgabe steuern (https://www.delphipraxis.net/47587-rueckgabe-steuern.html)

burns4711 13. Jun 2005 15:09


Rückgabe steuern
 
Hallo,

ist es möglich solange in einer Funktion z.B.
Delphi-Quellcode:
function TCDCheck.WriteMedium: Boolean;
begin

...
  case yeah of
  0: begin ... end;
  1: result := false;
  2: result := true;

 end;
 end;
zu bleiben bis ein bestimmtes Ereignis eintritt so dass die Funktion dann erst einen Rückgabewert liefert. Nach Möglichkeit ohne sleep und ähnliches, da währenddessen noch was anderes läuft.
Will das wenn es eine Lösung gibt gerne ohne Multithreading machen.

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

Luckie 13. Jun 2005 15:12

Re: Rückgabe steuern
 
Nein, so ohne weiteres nicht, das jede Zeile (Befehl, Funktion) sequentiell abgearbeitet wird. Aber lös doch einfach einen Event aus, wenn ein Ereiegnis zutrifft und schreibe, das was passieren soll, in deinen Eventhandler.

sakura 13. Jun 2005 15:14

Re: Rückgabe steuern
 
Zitat:

Zitat von burns4711
Nach Möglichkeit ohne sleep und ähnliches, da währenddessen noch was anderes läuft.

Es sollen also zwei Dinge in Deinem Programm gleichzeitig (parallel) ausgeführt werden.

Zitat:

Zitat von burns4711
Will das wenn es eine Lösung gibt gerne ohne Multithreading machen.

Dann geht es nur mit Hilfe von Threads ;)

...:cat:...

Pitch-Bull 13. Jun 2005 15:15

Re: Rückgabe steuern
 
nimm doch einfach eine If...then Anweisung
Delphi-Quellcode:
If 'bestimmtes Ereignis eintritt' then
          begin
            result:=false;
            exit; //verlässt die funnktion
          end
            else
            reslut:=true;
müsste klappen

Luckie 13. Jun 2005 15:17

Re: Rückgabe steuern
 
Erestens: Exit stoppt nicht die Funktion, sondern verläßt sie sofort. Und zweitens: Wie geht es nach
Delphi-Quellcode:
else
  reslut:=true;
weitere? Wenn dort nichts mehr kommt, wird die Funktion auch zu ende abgerabeitet.

TeronG 13. Jun 2005 15:20

Re: Rückgabe steuern
 
man müsste quasi ne Endlosschleife bauen ... :gruebel:

Pitch-Bull 13. Jun 2005 15:22

Re: Rückgabe steuern
 
na, wenn das ereignis eintritt, läuft die funktion nicht mehr weiter, bzw.
Result ist auf false gesetzt.

Oder habe ich jetzt was missverstanden. wollte das burns4711 nicht??

Luckie 13. Jun 2005 15:23

Re: Rückgabe steuern
 
Zitat:

Zitat von TeronG
man müsste quasi ne Endlosschleife bauen ...

Was die denkbar schlechteste Lösung wäre. Lös einen Event aus, wenn der gewünschte Zustand eingetreten ist und gut ist.

Zitat:

Zitat von Pitch-Bull
na, wenn das ereignis eintritt, läuft die funktion nicht mehr weiter, bzw.
Result ist auf false gesetzt.

Wenn ich ihn richtig verstanden habe, will er so lange warten, bis ein betsimmter Zustand erreicht ist.

burns4711 13. Jun 2005 15:30

Re: Rückgabe steuern
 
Hallo,

ich habe eine Funktion namens Updatestatus, die die verschiedenen Stati meines Programmes überwacht und zwischen diesen hin und her schaltet. Entscheidungen werden von dieser mittels der Rückgabewerte meiner einzelnen Funktionen getroffen die sie aufruft. Nun gibt diese eine besagte funktion leider alles viel zu schnell zurück und müsste eigentlich noch auf den Wert einer anderen Funktion warten die mittels Timer in regelmäßigen Abständen läuft bis die BEdingung erfüllt ist. Dann erst und NUR dann darf die oben erwähnte Funktion erst ihren Rückgabewert liefern, da die Funktion updatestatus sonst falsch entscheidet.

Hoffe das erläutert mein Problem näher

Pitch-Bull 13. Jun 2005 15:32

Re: Rückgabe steuern
 
Meines Erachtens ist der Timer viel zu ungenau...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr.
Seite 1 von 2  1 2      

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