Przekazywanie paramterow do procedury.

0

Witam, mam troszke dziwne pytanie...(A moze tylko mi sie wydaje ze ono jest dziwne;)

W kazdym razie, chcialbym zeby parametrem danej procedury, byla..inna procedura. Czy jest to w ogole mozliwe?
Dokladniej mowiac, to po prostu eksperymentuje z procedura do mierzenia czasu, ktora swego czasu;) podal pq na forum.

procedure Test(TutajMojaProcedura);

i w wyniku chcialbym aby procedura mierzaca czas wykonywania sie danej operacji, zmierzyla po prostu czas wykonywania sie tej procedury/funkcji.

mam nadzieje, ze zbytnio nie zamieszalem...

Czy jest to mozliwe?

pozdrawiam

0

Inna procedura nie, ale inna funkcja tak, a ściślej rzecz biorąc rezultat innej funkcji. Czyli
[code]
function f1(cos: integer) : integer;
begin
//tu kod
end;

procedure p1(cos2 : integer);
begin
//tu kod
end;

begin
p1(f1);
end;[/code]

0

Oczywiscie ze sie da. Trzeba przekazac tylko wskaznik do procedury:

Procedure Test;
Begin

End;

Procedure Procka(Proc:Pointer);
Begin

End;

I teraz Procka(@Test);

[dopisek]

ech te typy...

0

A czy ja napisalem ze chodzi mi o wartosc zwracana przez funkcje, czy tez o procedure/funckje, jako parametr innej procedury?

[dopisane]
Szymek, gdy proboje zrobic to tak jak napisales, to dostaje blad ze mam niezdeklarowany typ TPointer.
Mozesz to wyjasnic? Bo ze wskaznikow jestem zielony...;)

[dopisane]
Ehh w ogole nie mysle, musze przeciez najpierw utowrzyc ten typ wskaznikowy... :-D

Tylko wlasnie nie wiem jak [glowa]

pomorzcie....

0

zamiast tpointer daj pointer moze zadziala:P

0

taaak, jaaasne...;)

w ogole toproboje to zrobic za pomoca typu proceduralnego ale dostaje blad...

tak w ogole to osmiele sie wkleic tutaj kod, moze mi ktos cos poradzi?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
function NicNieRobie(X,Y: Integer):Integer;
{ Public declarations }
end;

var
Form1: TForm1;
Procka: function (X,Y: Integer):Integer;

implementation

{$R *.dfm}
function TForm1.NicNieRobie(X,Y: Integer):Integer;
begin
NicNIeRobie:=x;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Procka:=NicNieRobie; //i Dostaje blad
end;

end.

Nie rozumiem dalczego dostaje blad ...

0

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }

public
{ Public declarations }
end;

var
Form1: TForm1;
Procka: function(X,Y: Integer):Integer;

implementation

{$R *.dfm}
function NicNieRobie(X,Y: Integer):Integer;
begin
NicNIeRobie:=x;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Procka:=NicNieRobie;
end;

0

Dzieki pq, odkrylem tez inne rozwiazanie tego problemu.

A mianowice, ta moja zadeklarowana funkcja to funkcja obiektowa, no i zeby zadeklarowac zmienna odpowaidajaca tej funkcji to musze zrobic cos takiego

Procka: function (X,Y: Integer):Integer of object;

pozdrawiam wszystkich ktorym sie hccialo czytac moje zale [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1