Witam,
Nie mogę zrozumieć dlaczego po kliknięciu w MenuItem Sender jest przekazany nil?
Powinna być pozycja z menu, to jest potrzebne do stwierdzenia kto ją wywołał.
Dziękuje za wskazówkę i pozdrawiam
Piotr
0
2
skąd taki wniosek że Sender=nil ?
sprawdziłem prostym kodem i Sender jest obiektem klasy TmenuItem
if assigned(Sender) then
if Sender IS TMenuItem then
showmessage('Sender is TmenuItem ..');
0
Jeśli w dfm masz poprawnie podpięte zdarzenie onClick do TMenuItem, a w danym itemie masz taki kod:
procedure TForm1.DUPA1Click(Sender: TObject);
begin
ShowMessage(Sender.ClassName);
end;
To musi Ci się pokazać TMenuItem. Jednakże jeśli masz to zrobione w ten sposób:
procedure TForm1.Button1Click(Sender: TObject);
begin
DUPA1Click(nil);
end;
czyli ręcznie wywołujesz zdarzenie (a dokładnie procedurę pod zdarzeniem) to oczywiście Sender będzie nil. Innego wytłumaczenia nie ma jak to, że nie podpiąłeś pod event tylko ręcznie wywołujesz prockę. Niestety bez kodu to niewiele więcej mogę podpowiedzieć.
0
Dziękować! sprawdzałem w pracy krokowej i po najechaniu na zmienną widziałem Sender ().