AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionszeiger

Ein Thema von asusbob · begonnen am 10. Jan 2009 · letzter Beitrag vom 10. Jan 2009
Antwort Antwort
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#1

Funktionszeiger

  Alt 10. Jan 2009, 22:02
Hmm, ich hab wieder gesucht und nichts richtiges gefunden... Wie implementiere ich in Delphi Funktionszeiger? Habt ihr da vllt nen Beispiel, die Typdefinition hab ich, aber wie gehts jetzt genau weiter?

    TMathFunc = Function(l : TExerciseInfoList; Excluded : TExcluded) : Currency; Danke schonmal
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Funktionszeiger

  Alt 10. Jan 2009, 22:12
Das hängt davon ab, was du tun willst. Normalerweise verwendest du diesen Typen jetzt für die Deklaration von Parametern (wenn du Callbacks verwenden willst) oder von Feldern und Eigenschaften (für Events).
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#3

Re: Funktionszeiger

  Alt 10. Jan 2009, 22:18
also ich habe ein Codestücke was wirklich oft 8 mal glaub ich insg. redundant ist und sich nur in einer zeile, einem funktionsaufruf unterscheidet....

also so weit bin ich, die funktion wird aufgerufen allerdings geht der rückgabewert verloren Oo

Typdefinition
TMathFunc = Function(l : TExerciseInfoList; Excluded : TExcluded) : Currency; Funktion
Delphi-Quellcode:
  function getAnyAll(f : TMathFunc) : Currency;
    var i, j : Word;
        res : Currency;
  begin
    i := 0; j := 0;
    RESULT := 0;

    for i := low(esRelevant) to high(esRelevant) do
      if esRelevant[i] then
      begin
        res := f(earTimes[i], exExcluded);

        if res <> 0 then
        begin
          RESULT := RESULT + res;
          inc(j);
        end;
      end;


    if (j = 0) then
      RESULT := 0
    else
      RESULT := RESULT / j;
  end;
Aufruf
sgDetailView.Cells[sgDetailView.ColCount - 1,1] := myFlToStr(getAnyAll(@getAvailableDataSets)); Keine Fehlermeldung kein nichts... "getAvailableDataSets" gibt den richtigen Wert zurück, getAny hat dann aber nen ganz anderen wert Oo.
  Mit Zitat antworten Zitat
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#4

Re: Funktionszeiger

  Alt 10. Jan 2009, 22:25
Fehler gefunden... alles Richtig... Currency und Word sollte man nicht vermischen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 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