Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Was ist eine Callback Funktion (https://www.delphipraxis.net/66456-ist-eine-callback-funktion.html)

xaromz 29. Mär 2006 23:55

Re: Was ist eine Callback Funktion
 
Hallo,
Zitat:

Zitat von Luckie
Gibt es sonst noch was interessantes, was man dazu sagen könnte?

Viele Callback-Funktionen sind tatsächlich Funktionen, d. h. sie können zurückliefern, ob es weitergeht oder abgebrochen/beendet werden soll.

Gruß
xaromz

Luckie 29. Mär 2006 23:57

Re: Was ist eine Callback Funktion
 
Jupp, habe mein Beispiel gerade dahingehen angepasst. Morgen in der Mittagspause, werde ich mal einen kurzen Artikel dazu schreiben. Denn ich glaube, den meisten geht es wie mir, die dachten, dass hinter Callback Funktionen irgend was geheimnisvolles von Windows steckt. ;)

xaromz 30. Mär 2006 00:02

Re: Was ist eine Callback Funktion
 
Hallo,
Zitat:

Zitat von Luckie
Denn ich glaube, den meisten geht es wie mir, die dachten, dass hinter Callback Funktionen irgend was geheimnisvolles von Windows steckt. ;)

Wo doch Callback-Funktionen viiiel älter als Windows sind, damit hab ich ja schon unter DOS gearbeitet :wink: . Wurde da (und wird immer noch) in Soundbrecih benutzt. Irgendwie muss man ja aufgenommene Sounds auch speichern. Und da übergibt eben der Soundtreiber den Puffer an... na, ihr kommt selbst drauf :stupid:

Gruß
xaromz

Luckie 30. Mär 2006 00:06

Re: Was ist eine Callback Funktion
 
Ja OK. Aber ich kenne sie nur von Windows.

Aber belieb wir mal bei meinem Beispiel: dynamisches Array vs. Callback Funktion. Ich tendiere langsam zur Callback Funktion, weil man da dem Aufrufer eine gewisse Kontrolle gibt. (Er kann entscheiden, wann abgebrochen werden soll oder nicht.) Gibt es noch mehr Pro / Contra dynamisches Array - Callback Funktion?

Zum Beispiel könnte man damit dies Problem lösen: http://www.delphipraxis.net/internal...ct.php?t=79239
Man list beide Namen aus dem Record aus und wenn der Name mit GetUsername übereinstimmt, bricht man ab und nimmt den vollständigen Namen.

sECuRE 30. Mär 2006 05:32

Re: Was ist eine Callback Funktion
 
Hi,

Zitat:

Zitat von Luckie
Ja OK. Aber ich kenne sie nur von Windows.

Ich kenne Callbackfunktionen auch unter Linux, speziell im Einsatzgebiet von zum Beispiel einer FTP-Library/Toolkit (macht auch bei anderen Protokollen, wie zum Beispiel dem IRC, Sinn). Dort kannst du eine Callbackfunktion übergeben, die zum Beispiel bei der nächsten Antwort, die den Code 200 hat, aufgerufen wird. Das ist sinnvoll, da die Antworten zwar immer gleich sind (200 ist generell eine Bestätigung), aber in verschiedenen Kontexten gebraucht werden...

cu

NicoDE 30. Mär 2006 07:50

Re: Was ist eine Callback Funktion
 
Callback-Funktionen/Methoden sind IMHO immer dann nützlich, wenn

a) gegenseitige Abhängigkeiten in allgemeinen APIs aufgelöst werden müssen
(DoSomething muss nichts über das benutzende Programm wissen)

b) der Fortschritt beeinflusst werden kann
(insbesondere bei Aufzählungen)

c) man Entwickler mit unnötiger Abstraktion ärgern will ;)

Luckie 30. Mär 2006 08:10

Re: Was ist eine Callback Funktion
 
Gut. Allerdings würde man heutzutage wohl, um OOP konform zu sein eher mit Events arbeiten oder?

xaromz 30. Mär 2006 08:16

Re: Was ist eine Callback Funktion
 
Hallo,
Zitat:

Zitat von Luckie
Gut. Allerdings würde man heutzutage wohl, um OOP konform zu sein eher mit Events arbeiten oder?

Die Events, welche Delphi implementiert, sind ja so eine Art Callback-Funktionen: Du übergibst die Adresse einer Methode und die VCL ruft sie auf, wenn es nötig ist.

Gruß
xaromz

Luckie 30. Mär 2006 08:32

Re: Was ist eine Callback Funktion
 
Stimmt auch wieder. Also Callbacks nur neu verpackt. ;)

NicoDE 30. Mär 2006 17:03

Re: Was ist eine Callback Funktion
 
Zitat:

Zitat von Luckie
Gut. Allerdings würde man heutzutage wohl, um OOP konform zu sein eher mit Events arbeiten oder?

Wenn du damit Methoden meinst (of object), dann kann man dies auch in nicht-OOP-APIs durch die Übergabe eines weiteren Parameters erreichen (Handles in C-APIs sind oft nicht anderes als Referenzen auf interne C++-Objekte).


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Seite 2 von 4     12 34      

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