zdarzenie dla dyamicznie utworzonego elementu - jak?

zdarzenie dla dyamicznie utworzonego elementu - jak?
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam

Podejżewam, że gdzieś jest to na forum, ale na szukaniu
(dynamiczne zdarzenie) wyskozyło zero znalezionych tematów,
a więc mam taki problem:

Tworzę dynamicznie panel:

Kopiuj
Background := TPanel.Create(Application);
Background.Parent  := Form1;

i teraz nie wiem za bardzo jak przypisać zdarzenie
onMouseMove dla tego elementu,
gdyż niestety nie jest on widoczny w inspektorze obiektów.

JC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 131
0

Najłatwiej położyć panel i zmienić visible na false. Potem do tego panelu dajesz zdarzenie onMouseMove. No i przy tworzeniu Backgrounda dajesz:

Kopiuj
Background.OnMouseMove := JakistamPanelZZdarzeniemOnMouseMove.OnMouseMove;

//no też można tak zrobić jak powiedział Odysseus ;]

Odysseus
  • Rejestracja: dni
  • Ostatnio: dni
0

Zapoznaj się z typami proceduralnymi. Wtym przypdku chodzi o:

Kopiuj
type TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer) of object;

Tworzysz procedurę w/w typu (w tym przypadku ma to być metoda jakiejś klasy) i przypisujesz ją właściwości OnMouseMove.

adf88
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
procedure TwojaProceduraObslugiMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   //tu cos sobie wpiszesz co ma robic
   //jesli przypiszesz ta sama procedure do kilku paneli
   //to mozesz je rozroznic za Sender'a - jest to panel wywolujacy zdarzenia np.
   if (Sender as TPanel).Name = 'Panel A' then ....
   
end;

//...
Background := TPanel.Create(Application);
Background.Parent  := Form1;
Background.OnMouseMove := TwojaProceduraObslugiMouseMove;
cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0
delphi programmer napisał(a)

[...] ale na szukaniu
(dynamiczne zdarzenie) wyskozyło zero znalezionych tematów [...]

rany, czy ludzie na prawde nie potrafia szukac?
nastepnym razem sprobuj na rozne sposoby zadac to samo pytanie.
wystarczylo wklepac "zdarzen dynamicznie" zeby znalezsc to, czego szukasz :-P
staraj sie podawac slowa w takiej formie, w jakiej mogly wystapic w zdaniu...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.