Mdichild i popupmenu

0

Witam
Problem jest nastepujacy...
Po kazdorazowym kliknieciu butona jest tworzony mdichild. Zawiera on Image, popupmenu przypisany do tego image i inne kontrolki.
Gdy mam 2 okna mdichild -jedno jest aktywne. Gdy klikam prawym klawiszem myszy na aktywnym mdichild rozwija sie popupmenu. Gdy klikam na drugim - nieaktywnym mdichild tez rozwija sie popupmenu ale nie staje się aktywny.
Jak zaprogramowac popupmenu czy mdichilda czy co innego aby po wcisnieciu prawego klawisza myszy(po pokazaniu popupmenu) nieaktywny mdichild stał się aktywny?

0

Jak najprościej...

PS. Wypadałoby na początku zastanowić się nad tym, co trzeba samemu zrobić, aby przejść na nieaktywne okno, po to żeby te uaktywnić, a przy tym, żeby pojawił się PopUpMenu. A w dodatku żeby się to odbywało przy naciśnięciu LMB. No, ale Ty o tym zapewne wiesz...

0

a mozesz mi powiedziec co to mdchild bo ja nie mam tego w delphi...

0
eloszek napisał(a)

a mozesz mi powiedziec co to mdchild bo ja nie mam tego w delphi...

Sic, nie przyznawaj się.

Co do tematu(bez środowiska piszę). Ownerem lub Parentem popupMenu powinno być MDIChild. I po prostu wywołujesz Activate lub Show. Rozumiesz?

0

no i chyba jest, bo reaguje np klikne w ktoryms nieaktywnym mdichild popupmenu to w procedurze PopupMenu1Popup po komendzie label1.Caption:=PopupMenu1.PopupComponent.Name w nieaktywnym oknie w labelu wyświetla poprawnie nazwe.
Każdy Mdichild ma swoj numer np mdichildren[nr] probowalam z poleceniami .activemdichild .show .activate - nie działa, jedyne co to po komendzie .bringtofont jest reakcja ale nie po wywołaniu popupmenu, tylko kliknięciu buttona na glownej formie. probowalam za pomoca petli

 
 for i:=0 to mdichildcount-1 do 
  if label1.Caption:=PopupMenu1.PopupComponent.Name then
     mdichildren[i].bringtofont; 
  • ale nie działa.
0

nie działa z

for i:=0 to mdichildcount-1 do 
  if label1.Caption:=PopupMenu1.PopupComponent.Name then
     mdichildren[i].bringtofront;  

Po wieeeluuu trudach cel osiagniety :)

procedure TMDIChild.PopupMenu1Popup(Sender: TObject);
var i:integer;
begin
for i:=1 to mainform.mdichildcount -1 do
  if PopupMenu1.PopupComponent.Name='Image1' then  begin
   if PopupMenu1.PopupComponent.Owner = MainForm.MDIChildren[i] then
    MainForm.MDIChildren[i].BringToFront;
 end;
end; 

A moze ktos ma inny pomysl na rozwiazanie tego problemu lub jakies inne pomocne wskazowki?

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