procedury (tworzenie dynamiczne HELP me)

0

Czy mozna stworzyc tablicę procedur? np...
var Procedurka:array [1..10] of Procedure;
i pozniej uzycie tego? W Jaki sposob mam sie odnosic do takiej Procedury?
Jak wpisac w taka procedure kod? Czy jest to mozliwe?
Czy da sie w ogole tak zrobic? Prosze o pomoc?

0

To by byla tylko tablica wskaznikow do kodu.

Tablica[1]:=@MojaProcedurka;

0

Hmmm.. no ok.
Niestety MOjaProcedura:=@Procedura nie pozwala przesylac wartosci z nawiasu......
Chodzi mi o to ze jak mam np.
procedure Procedurka(Index:integer);
begin
{...}
end;
gdzie od Indexu wszystko zalezy, to chcialbym aby DynamicznaProcedurka tez posiadala wartosc z nawiasu Procedurka. Od tego co jest w tym nawiasie zalezy caly kod procedury, a jak go nie dam to przeciez procedura dzialac nie bedzie, pomocy ...

0

Może coś takiego?

type
TProcedura:procedure(CosTam:Integer);

var
Tablica:array of TProcedura;
0

Musisz stworzyć typ proceduralny a potem tablicę procedur tego typu. Uwaga - wszystkie procedury w tablicy musza miec taka sama liczbe i typ parametrow.

Zrob forme z 2 buttonami i wal taki kod (ponizej deklaracji klasy formy)

type
TProcedura=procedure(Index: integer);

var
  Form1: TForm1;
  procki : array of TProcedura;
implementation

{$R *.dfm}

procedure procedura1(Index: Integer);
begin
 Form1.Button2.Caption:=IntToStr(index);
end;


procedure procedura2(Index: Integer);
begin
 Form1.Button1.Caption:=IntToStr(index);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  SetLength(procki,2);
  procki[0]:=@procedura1;
  procki[1]:=@procedura2;
  {==============}
  Button1.Tag:=0;
  Button2.Tag:=1;
  Button1.OnClick:=Button1Click;
  Button2.OnClick:=Button1Click;
  {=============}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  procki[(Sender as TButton).Tag](Random(15));
end;

To co jest między znakami {====} mozesz oczywiscie zrobic w OI i wtedy wywalic z kodu.

//thenkles sie pospieszyl kiedy ja pisalem kod :))

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