ďťż

Ładny brzuch

W c można stworzyć wskaźnik do funkcji, a następnie wywołąć za jego pomocą ją. Jak to zrobić w delphi?



var proc: proceudre(a,b: integer);

Moze tak?

chialem wykorzystac to aby przekazac funkcji jako parametr informacje ktora funkcje ma wykorzystac.

function inna(f: function(x: real):real):integer;
begin
inna:=trunc(f(12.32));
end;

var
proc,proc2,proc3: function(x: real):real;
aa,bb: integer;

begin
aa:=inna(proc);
bb:=inna(proc2)
end.

Czy takie cos zadziała? Gdzie i jak zaimplementować proc, proc2 i proc3? (powyzszy kod to tylko przykład, bedzie wykonywał troche bardziej skomplikowane operacje. i begin i end., beda jedno z metod FormX)
Użytkownik Darck edytował ten post 27 maj 2006, 16:32
Coś takiego?:
type  TProc = function(x: real): real; function inna(f: TProc):integer; begin inna:=trunc(f(12.32)); end; var proc,proc2,proc3: TProc; aa,bb: integer; function cos(x: real): real; begin ... end; begin proc := cos; aa:=inna(proc); bb:=inna(proc2) end.



dzieki za pomoc, jeśli działa to właśnie o to mi chodziło

ale niestety tak sie nie da:
proc := cos;


ale niestety tak sie nie da:
proc := cos;

a probowales to napisac? cos jest funkcja wiec kompilator oczekuje na parametry funkcji i zaklada, ze cos zwraca wartosc typu real, wiec niekompatybilną z TProc
Użytkownik Darck edytował ten post 27 maj 2006, 20:12

a probowales to napisac? cos jest funkcja wiec kompilator oczekuje na parametry funkcji i zaklada, ze cos zwraca wartosc typu real, wiec niekompatybilną z TProc

hmm, wiec moze nie w tym problem. blad jest taki:
metoda - procedura, klasy Form :
func:=pr5;
func jest typu Tproc, pr5 jest inna metoda tej samej klasy - funkcja

blad jest taki:
Incompatible types: 'regular procedure and method pointer'

wskaznik na metode to pasuje do pr5...
---------------dpisane
miales racje - kompiluje sie gdy funkcje wyciagnelem z klasy i do func przypisuje osobne funkcje. Zaraz sprawdze czy dziala
-------------dpisane
dziala. co prawda takie mieszanie z obiektowoscia nie wyglada za ladnie, ale w delphi sie jeszcze nie przestawilem na obiektowosc, poza tym to nieduzy program. Musialem np. funkcje ktorej wskaznik jest przekazywany rozszerzyć o dodatkowe parametry. Ponieważ była poza obiektem nie można bespośrednio odczytywać wartosci Editow.
Użytkownik Darck edytował ten post 28 maj 2006, 00:13

...miales racje - kompiluje sie gdy funkcje wyciagnelem z klasy i do func przypisuje osobne funkcje. Zaraz sprawdze czy dziala...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •