[Delphi] jak zrobic aby jaksi komponent wykonal procedure ..

0

jak zrobic aby jaksi komponent wykonal procedure ktora jest napisana w innym miejscu kodu?

0

A dało by się jaśniej, bo coś nie jarzę.

0

np po nacisnieciu buttona wykonuje wczesniej zdeklarowana procedure OtworzOkno

0

-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 :-)

0

może chodzi o:
OtworzOkno(Sender);

0

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.

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