Results 1 to 8 of 8

Thread: popupmenu weg wanneer niet op item word geklikt

  1. #1
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865

    popupmenu weg wanneer niet op item word geklikt

    Hallo allemaal!

    Ik irriteer mij altijd mateloos aan popupmenu's die niet het standaard gedrag vertonen: Niet weggaan als er buiten de popupmenu word geklikt. Gelukkig is dit niet bij alle popup's ( anders was het wel standaard gedrag ) maar bij popupmenu's zoals die van kazaa moet ik moeite doen om deze weg te halen. In andere woorden: vreselijk!!

    Nu ben ik bezig met een nieuwe versie van mijn NLDTrayIcon en daarbij zag ik dat de popupmenu ook niet wegging wanneer ik buiten de popup klikte met de muis. En dat wilde ik natuurlijk niet na even zoeken kwam ik erachter dat dit verkeerde gedrag word veroorzaakt omdat bij de owner van het popupmenu de focus moet veranderen ( of opnieuw verkrijgen ) voordat de popupmenu komt. vaag!! Iemand een goed argument hiervoor?

    Dus voordat je een popupmenu wilt laten zien moet de applicatie de focus verliezen ( altijd goed ) ( geef je eigen window de focus, ook al is deze niet zichtbaar ) en e popupmenu naar voren laten komen.

    Op deze manier heb je het probleem niet
    dus:
    Code:
    SetForeGroundWindow( Self.Handle ); //Of iedere andere handle
    PopUpMenu.PopUp( X, Y );
    Ik had ook nog ontdekt dat deze workaround niet werkt wanneer de DefWindowProc niet word opgeroepen. In de meeste gevallen is dit wel het geval, in mijn geval was het dus wel nodig en had ik er iets meer moeite mee om het probleem te vinden
    !

  2. #2
    cyberde
    Guest
    Ik gebruik al een tijd deze procedure om popup menu's by me systemtray te tonen, die netjes weggaan als je er naast of wat dan ook klikt.

    Code:
      procedure ToonPopupMenu(PopMenu: TPopupMenu);
      begin
        SetForegroundWindow(Application.Handle);
        Application.ProcessMessages;
        PopMenu.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
        PostMessage(Application.Handle, WM_NULL, 0, 0);
      end;

  3. #3
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Klopt,

    heeft dezelfde werking. Alleen maak jij gebruik van de Forms unit. Ik wil bij mij geen gebruik maken van de forms unit. Ik wil dat de trayicon ook in staat is om in console applicaties te draaien..
    !

  4. #4
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Het verschil zit 'm in de WM_NULL, die moet je ook gebruiken
    Qui custodiet ipsos custodes

  5. #5
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Originally posted by PsychoMark
    Het verschil zit 'm in de WM_NULL, die moet je ook gebruiken
    Ah, geen last van gehad Maar zal m wel gebruiken voortaan
    !

  6. #6
    [verminderd on topic]
    De standaard toets voor Windows om een popup menu euhm.. up te laten poppen is Shift-F10. In de IDE van Delphi 5 werkt Alt-F10 ook, naast deze toetscombi. Nu valt me op dat in Delphi 7 (ja, ik zeg altijd wel dat ik 'm niet heb, maar ik heb 'm stiekem toch ) Shift-F10 combi niet meer goed werkt. Het popupmenutje komt wel naar voren, maar krijgt niet de focus. Wanneer ik met de cursortoetsen door het menu wil gaan bladeren, dan blijkt dat ik niet in dat menu zit, maar in het system-menu van de code editor De Alt-F10 combi werkt nog wel, en daar is wel aan te wennen, maar toch vind ik het erg slordig.

    Geen wonder dat sommige programmeurs met waardeloze interfaces op de proppen komen. Ze krijgen ook niet altijd het goede voorbeeld
    1+1=b

  7. #7
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    niet helemaal ontopic zoals je al zei Maar waarom snappen sommige programmeurs dat andere programmeurs zeer kritisch zijn Ik hoor hier vaak op het forum dat wanneer een programma niet aan bepaalde normen voldoet, het programma zonder pardon eraf word gegooid en naar een alternatief gezocht word.
    Op zich jammer als het een goed product is natuurlijk, maar de programmeur moet maar eens bedenken wat wij er van vinden en niet wat hij er van vindt

    Vandaag nog:
    Heb een uur bij de rabobank gezeten omdat de mensen daar ( met zn 3-en!! ) het niet voor elkaar kregen een jongeren-rekenening aan te maken. Ik weet niet helemaal hoe het zat, maar ik dacht van uit hun gesprekken op te hebben gemaakt dat je veeeeel werk moest doen voordat je iets gedaan kreeg wat net zo makkelijk onder een knopje gezet kon worden... grmbl
    !

  8. #8
    Maare wat doen we nou met NLDTrayIcon? Wie past hem aan en zorgt dat de goede versie in de open source komt?
    Niets is zo gemakkelijk als het lijkt.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. MS Word: RPC-server niet beschikbaar
    By Zaphod in forum Algemeen
    Replies: 5
    Last Post: 02-Nov-04, 11:02
  2. drag drop in treeview naar niet zichtbaar item
    By Willemm in forum Algemeen
    Replies: 4
    Last Post: 26-May-03, 11:24
  3. Replies: 6
    Last Post: 31-May-02, 16:11

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •