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?
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...
a mozesz mi powiedziec co to mdchild bo ja nie mam tego w delphi...
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?
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.
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?