Results 1 to 9 of 9

Thread: TEdit standaard popupmenu uitbreiden

  1. #1

    TEdit standaard popupmenu uitbreiden

    Is het mogelijk om een standaard popupmenu van een TEdit/TMemo uit te breiden? Ik wil er een "unlock" item aan toevoegen waarmee het veld niet meer readonly wordt.
    Dit omdat ik in mijn programma een aantal velden heb die ReadOnly zijn, en wil de mogelijkheid geven om deze readonly te overriden als de gebruiker dit vraagt (gebruiker met bepaalde bevoegdheden). Nu kan ik hier een standaard popup menu aan hangen, en zelf alle copy/paste/select all etc items aan toevoegen, maar het zou mooier zijn om gewoon een extra menu item toe te voegen aan de standaard edit popup..

  2. #2
    Tijdelijk even een oplossing gemaakt - velden zijn standaard read only, popup op die velden is een met het "unlock" item. Zodra er unlock geklikt wordt, wordt de popup op nil gezet, en hiermee wordt het windows eigen "EDIT" popupmenu geactiveerd bij volgende popup. Kan netter, maar het werkt. Mocht iemand een betere nettere manier weten, hoor ik het graag

  3. #3
    Ik weet wel dat en hoe je het systeemmenu (icoontje linksboven in je form) kunt uitbreiden. Maar die methode werkt niet voor een TEdit.

    Je wilt voor een locked edit natuurlijk wel de Copy behouden. De Paste en Cut zou je wel weg kunnen laten.

  4. #4
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,274
    Het korte antwoord (voor zover ik me kan herinneren want jaren geleden wilde ik hetzelfde doen) is: Nee.

    De enige manier is zelf een pop-up hangen aan de TEdit en de Copy-Paste-Cut-etc. opties voor die edit
    implementeren (of aanroepen want TEdit kent standaard zaken als "CopyToClipboard" e.d.).
    TMemoryLeak.Create(Nil);

  5. #5
    @Rik, daar zat ik inderdaad ook al naar te kijken. @VideoRipper, zoiets had ik zelf ook al gedacht.. maar omdat het maar om een paar velden gaat laat ik dit wel uit. Nu heb ik een standaard popup er aan gehangen welke een "unlock" menu item geeft. Zodra hierop geklikt is is het veld niet meer readonly en is de popup op nil gezet, hiermee krijg ik dus bij volgende popup het standaard windows EDIT popup menu. Bij gebruikers die dit niet kunnen unlocken wordt geen popup gelinkt, en krijgen ze direct het EDIT popup menu met de mogelijkheid voor copy, select all (geen paste en cut).

    Toch bedankt voor het meedenken.
    ps; ik heb nog code die ik ooit gemaakt heb om msn messenger uit te breiden waarbij ik een dll injecteerde in msn messenger, een nieuw menu aanmaakte en paar toolbar buttons, en vangde de messages op omdat ik in het geheugenblok van msn messenger zat - misschien dat het op die manier kan? Maar dan zou ik een hele hap code moeten maken voor iets wat heel simpel moet zijn..

  6. #6
    Even voor de volledigheid... het IS mogelijk
    Magische woord (of nummer) is #32768.

    Maar het is inderdaad nogal hacky. Ik heb hier code liggen waarin het te doen is. Een HookCallWndProc gebruiken om de HC_ACTION/WM_CREATE af te vangen en te controleren of het een #32768 is. Dan kun je een PostMessage naar je eigen form doen met de popuphandle. Daar kun je dan met AppendMenu() menuitems toevoegen. Die menuitems kun je met WM_SYSCOMMAND weer een actie geven.

    Behoorlijk wat code voor een simpele regel toevoegen maar bij de systeemmenus is het niet anders. Dan is de oplossing die je nu gebruikt wel zo simpel

  7. #7
    Dankjewel zo deed ik het inderdaad ook met menu items toevoegen aan andere programma's.. Maar inderdaad misschien een beetje TE voor het doel wat het dient, het gaat ten slotte maar om een klein aantal velden (stuk of 3/4) dus om hier dan zo'n hack voor te maken.. misschien als de boel af is (wat uiteraard nooit zo is ) - maar toch leuk om te weten dat het kan

  8. #8
    Klinkt alsof er behoefte is aan een TSysPopupMenu waar je een TPopupMenu aan kan koppelen dat automatisch gemerged wordt met het sysmenu van een component....
    1+1=b

  9. #9
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,040
    Made by RVK :-)

Thread Information

Users Browsing this Thread

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

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
  •