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?
To by byla tylko tablica wskaznikow do kodu.
Tablica[1]:=@MojaProcedurka;
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 ...
Może coś takiego?
type
TProcedura:procedure(CosTam:Integer);
var
Tablica:array of TProcedura;
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 :))