Globalne rzutowanie

0

Witam!, mam pytanie ktore przedstawie za pomoca procedur, aby lepiej zrozumiec o co mi chodzi :

type
TPodmenu = class(TTabela)
public
procedure NewItemsPopup();
procedure GoToItemGrid(Sender: TObject);
end;

procedure TPodmenu.NewItemsPopup();
var
NewItem2 : TMenuItem;
i : Word;
begin
Tabela.AddPopup2.Items.Clear;
for i := 0 to Tabela.DBGrid3.Columns.Count-1 do
begin
NewItem2 := TMenuItem.Create(Self);
Tabela.AddPopup2.Items.Add(NewItem2);
NewItem2.Caption := IntToStr(i)+ '.' + ' ' + Tabela.DBGrid3.Columnsi].Title.Caption;
NewItem2.Tag := i;
NewItem2.OnClick := GoToItemGrid;
end;
end;

procedure TPodmenu.GoToItemGrid(Sender: TObject);
var s : String;
begin
with DataModule1.ADODataSet2, Tabela, TMenuItem as Sender do
begin
if (Label18.Caption = 'SYNONIM') then
begin
case Tag of
0 : SzukajDanych(0, s); //wywolanie procedury
2 : SzukajDanych(2, s);
end;
end;
end;

Zawartosc powyzszej procedury zostaje przeniesiona do innej formatki i tam jest problem odniesienia sie do Tag, czyli TMenuItem as Sender .
Jak to zrobic ???

0

przekazac referencje do obiektu do wywolywanej procedury

0

Troche nie kapuje, moze jakis przyklad, prosze ...

0

procedure TForm1.Y(Sender: TObject);
var
x: tmenuitem;
begin
x:=TMenuItem(Sender);
form2.sc(Sender as TMenuItem);
end;

procedure sc(x : tmenuitem);

0

Ta procedure wstawiam na ta druga formatke, tak?
Iteraz zebo wykorzystac ta linie :

with DataModule1.ADODataSet2, Tabela, TMenuItem as Sender do
begin

end;

i wstawic to co ty napisales zamiast tego TMenuItem as Sender, tak ???

0

Mógłby mi to ktoś wytłumaczyć nic z tego nie kapuje...

0

na form2 masz publiczna procedure np.
procedure TForm2.sc(x : tmenuitem);
begin
Caption:L=x.caption;
Showmodal
end;

a z form1 wywolujesz
procedure TForm1.Y(Sender: TObject);
begin
form2.sc(Sender as TMenuItem);
end;

i teraz jak podepniesz procedure Y pod jakis MenuItem to jak klikniesz to otworzy sie modalnie Form2 i jego caption bedzie taki sam jak caption menuitema

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