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?
- Rejestracja:około 22 lata
- Ostatnio:3 miesiące
- Postów:5042
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?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.