Prawy klawisz i aderes wcisnietego objektu!!!

0

Mam taki problem ... Tworze objekty dynamicznie w mniej wiecej taki sposob:

stolik = new TImage(this);
stolik->Picture->LoadFromFile(ExtractFileDir(Application->ExeName)+"\\data\\"+"stolik.bmp");
stolik->Width = 144;
stolik->Height = 144;
stolik->Left = left + x;
stolik->Top = top + y;
stolik->OnClick = ImageClick;
stolik->PopupMenu = PopupMenu1;
stolik->Parent = this;
baza.dodaj_stolik(stolik);

moj problem polega na tym iz potrzebuje adres danego objektu na ktory nacisne prawym przyciskiem myszy..
Potrzebne mi to jest, poniewaz po wcisnieciu prawego klawisza otwiera sie menu i tam sa rozne funkcje ktore moge wykonac na danym objekcie.. Aby wiedziec na ktorym objekcie mam je wykonac potrzebuje jego adres ... Probowalem z Sender, ale widocznie spod zdarzenia PopupMenu wskazuje juz na cos innego... :/
Prosze o pomoc i ewentualne pytania jesli cos zle sformulowalem .. Trosze ciezko sie tlumaczy na odleglosc, ale licze na to ze mnie zrozumiecie !!! PROSZE O POMOC!!! DZIEKUJE ZA KAZDA ODPOWIEDZ !!!

0

nie wiem, czy o to Ci chodzi, ale można sprawdzić nad jakim obiektem znajdował sie kursor w czasie klikania ppm. mozna to zrobic porownojac wspolrzedne kursora z wzpolrzednymi i dlugosciami bokow obiektu. jezeli to jest aplikacja okienkowo-łindołsowa to o ile pamiętam to istnieje cos takiego jak zdarzenie ppm, ale dawno nie pisalem w tym srodowisku. moznaby z niej skorzystac...

0

hmm przecieŻ wskazniki przechwouja adresy... wiec zastosuj je :)

0

no co !!! rzutowanie się kłania, widze ze dynamicznie robisz, napisz troche wwiecej kodu to ci powiem co i jak. po prostu trzeba napisac funkcje.

0

no dobra tu masz kodzik

nie zapomnij podpiac funkcji
//--------------

stolik = new TImage(this);
stolik->Picture->LoadFromFile(ExtractFileDir(Application->ExeName)+"\data\"+"stolik.bmp");
stolik->Width = 144;
stolik->Height = 144;
stolik->Left = left + x;
stolik->Top = top + y;
stolik->OnClick = ImageClick;
stolik->PopupMenu = PopupMenu1;
stolik->Parent = this;
stolik->Myszyka;
baza.dodaj_stolik(stolik);
//------------

w pliku *.h

w sejcji

__published:
void __fastcall Myszka(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y);

nastepnie w pliku *.cpp

void __fastcall TForm::Myszka(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//if(Button==prawy klawisz ma wartosc ??? )
ShowMessage("Prawy klawisz wcisniety w punkcje: " + IntToStr(X) + "," + IntToStr(Y));

}

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