W jaki sposób wywołać procedurę znając jej adres?
0
0
gosc napisał(a)
W jaki sposób wywołać procedurę znając jej adres?
type
TMojaProcedura = procedure(zm1: string);
var
proc: TMojaProcedura;
begin
@proc:=adres;
proc;
end;
Albo jakoś tak.
Na końcu deklarowania typu proceduralnego możesz dodać(przed średnikiem) of object, czyli:
<delphi>
TMojaProcedura = procedure(zm1: string) of object;
Nie wiem, na czym polega różnica.
Oczywiście zm1 to zmienna jaką masz w procedurze. Jeśli ich nie masz, to tego nie robisz :)</delphi>
0
... Na końcu deklarowania typu proceduralnego możesz dodać(przed średnikiem) of object ...
of object znaczy że jest to metoda jakiegoś obiektu, bez tego - że jest to goła procedura "globalna"
b
0
gosc napisał swoje pytanie ale nie uwzględnił języka (delphi czy pascal)
nie jestem pewien czy w delphi to wygląda tak samo ale w psacalu wygląda to tak:
type
typprc=procedure;
var
zmienna:typprc;
begin
zmienna:=ptr({segment},{offset});
{od tego momentu korzystasz ze zmiennej zmienna jak z procedury}
end;
mam nadzieje, że wiesz co oznaczają segment i offset (bez tej wiedzy raczej nie bierz się za takie sztuczki)