jak zrobic aby jaksi komponent wykonal procedure ktora jest napisana w innym miejscu kodu?
A dało by się jaśniej, bo coś nie jarzę.
np po nacisnieciu buttona wykonuje wczesniej zdeklarowana procedure OtworzOkno
-Instrukcja GOTO?
-Alez nie Adolfie, tozto w zlym stylu! :p
poza tym nie wiem czy o to chodzi. Jesli chcialbym aby komponent w obpowiednim momencie wykonal kod zdefiniowany przez uzytkownika to zrob to na zasadzie zdarzen. OnCosTam. Zreszta nie wiem, nie pisalem nigdy komponentow :-)
może chodzi o:
OtworzOkno(Sender);
Jeżeli chodzi o tworzenie eventów w komponentach to najpierw tworzy sie typ proceduralny np
[delphi]
TMojEvent = procedure (Param1: TType1; ... ; ParamN: TTypeN) of object
[delphi]
a nastepnie tworzysz w czesci private albo protected pole tego typu i property rownież tego typu np.:
[delphi]
TMojaKlasa = class(TPersistent)
private
fMojEvent: TMojEvent;
published
property OnMojEvent: TMojEvent read fMojEvent write fMojEvent;
end;
[delphi]
Kiedy chcesz wywolac takowy event napierw sprawdź czy jest przypisana procedura a dopiero potem wywołaj np
[delphi]
if assigned(fMojEvent) then fMojEvent();
[delphi]
W nawiasy wstaw parametry z którymi wywołujesz procedurę. Tym samym sposobem mozna zrobić event typu funkcja, który zwraca wartość.
PS Warto wstawiac parametr Sender: TObject i przekazywac obiekt z ktorego jest to wywolywane czyli self jako wartość parametru.