X
ďťż

Ł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
  •  

    Drogi uzytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

    Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

     Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

     Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

    Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.