Oppure

Loading
06/04/12 9:27
systemgvp
Salve,

ho un piccolo problema, in pratica creo una serie di oggetti tipo TRectangle e poi gli associo un PopupMenu che dovrebbe semplicemente richiamarne il Tag associato all'oggetto. Per fare ciò, nel PopupMenu uso

[CODE]ShowMessage(IntToStr((Sender as TRectangle).Tag));[/CODE]

Ma, invece di restituirmi i dati relativi al TRectangle, mi restituisce quelli del PopupMenu. Come faccio a richiamare quelli dell'oggetto da cui è partita l'apertura del Menu.
aaa
06/04/12 10:32
Goblin
L'unico modo che mi viene in mente è quello di risale a ritroso le chiamte dei vari oggetti, dunque tenuto conto che a te serve il tag del TRectangle, che è legato al popup, che a sua volta è legato al MenuItem la dinastia dovrebbe essere:
ShowMessage(IntToStr(TRectangle(TPopupMenu(TMenuItem(Sender).GetParentMenu).PopupComponent).Tag);

NB: lascio a te il cast in manienra ordinata :asd:
Ibis redibis non morieris in bello
06/04/12 12:38
systemgvp
mi da errore sulla proprietà:

.GetParentMenu


io uso FireMokey e non le VCL
aaa
06/04/12 14:42
Goblin
Per giocare ho aperto XE2 ...
e l'ho risolto così:

devi ricordarti di assegnare all'item la proprietà PopUpMenu per poi ritirarla fuori


procedure TForm19.MenuItem1Click(Sender: TObject);
Var oItem: TMenuItem;
    oPopUp: TCustomPopupMenu;
begin
  oItem := (Sender as TMenuItem);
  oPopUp := oItem.PopupMenu;
  ShowMessage('Show '+IntToStr(oPopUp.PopupComponent.Tag));
end;
Ibis redibis non morieris in bello
07/04/12 9:16
systemgvp
grazie tante,

ShowMessage(IntToStr(TRectangle(TPopupMenu((Sender as TMenuItem).PopupMenu).PopupComponent).Tag));
aaa