FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
Nouvelles commandes pour le MAIN_MENU_POP Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Nouvelles commandes pour le MAIN_MENU_POP Emptypar Marc Hier à 11:42

» Bataille navale SM
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
Nouvelles commandes pour le MAIN_MENU_POP Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nouvelles commandes pour le MAIN_MENU_POP Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Nouvelles commandes pour le MAIN_MENU_POP Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Nouvelles commandes pour le MAIN_MENU_POP Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Nouvelles commandes pour le MAIN_MENU_POP Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Nouvelles commandes pour le MAIN_MENU_POP Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Nouvelles commandes pour le MAIN_MENU_POP Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 Nouvelles commandes pour le MAIN_MENU_POP

Aller en bas 
3 participants
AuteurMessage
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 1:07

Bonjour,

Cette demande s'adresse à Jack.

Je n'ai pas pour habitude de te déranger car je sais que ton temps est compté.
Je crois d'ailleurs que c'est seulement la seconde fois que je te demande de nouvelles commandes.

Cette fois, il s'agit de MAIN_MENU_POP, le menu contextuel.

Je me suis aperçu dans PanExpress qu'un clic droit faisait apparaître le MAIN_MENU_POP même s'il est sur d'autres objets eux_même rattachés au FORM de base.
Tu peux par exemple afficher le MAIN_MENU_POP alors que l'on se trouve sur un PANEL qui représente une fenêtre d'option.

J'aimerai donc le 'limité' avec des commandes telles que HIDE/SHOW ou ACTIVE/INACTIVE afin d'éviter cet affichage parasite.
Je ne sais pas si cela est possible ou alors pourvoir le rattaché à un objet en particulier.
Pour PanExpress ce serai par exemple l'objet SYNEDIT.

J'espère que tu vois le principe. Sinon fait un test avec le clic droit dans PanExpress sur les différents éléments et tu comprendra...

Merci d'avance Jack. Wink


Dernière édition par Minibug le Sam 15 Juin 2019 - 10:13, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 1:25

Tiens, c'est bizarre... la commande MAIN_MENU_POP n'est pas reconnue chez moi:
Nouvelles commandes pour le MAIN_MENU_POP Aa119

Serait-ce un problème de version ?
Nouvelles commandes pour le MAIN_MENU_POP Aa213

Tu dis:
Citation :
... ou alors pourvoir le rattaché à un objet en particulier.
La doc explique que le MAIN_MENU_POP se rapporte à une FORM entière. Par défaut, c'est la form 0, et si l'on veut l'avoir sur une autre form, il faut faire un COMMAND_TARGAT_IS avant. Il ne peut y avoir qu'un seuk MAIN_MENU_POP par form, et il est donc impossible d'en faire un pour des objets spécifiques. Seule solution pour cela; créer son propre menu "maison" et l'afficher sur un évènement ON_KEY_DOWN en testant le code pour le bouton droit...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 1:43

c'est bizarre ton histoire !

Voila chez moi :

Nouvelles commandes pour le MAIN_MENU_POP Sans_t58
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 1:50

Bon, j'ai compris ma bêtise... lorsqu'on écrit "main_memu_pop", il ne connaît pas, bien sûr ! Il fallait "main_menu_pop", et ça marche comme tu le décris (et comme c'est dit dans la doc !):
Code:
' test_main_menu_pop.bas

edit 1 : top 1,10 : left 1,10
memo 2 : top 2,10 : left 2,150
main_menu_pop 10
sub_menu 11 : parent 11,10 : caption 11,"Fichiers"

end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 1:52

lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 4:04

J'ai mis une nouvelle version de KGF.dll sur mon site internet (pas sur le WebDav !). Il y a une nouvelle fonction, pas encore documentée, qui va résoudre ton problème:
Code:
res% = dll_call2("PopupMenuTarget",object_internal(main_menu_popup%),handle(cible%))
Cette fonction restraint le ménu popup strictement à l'objet dont le handle est spéficié en secon paramètre.

Exemple:
Le ménu popup n'apparaît QUE sur la form 0, pas lors d'un clic sur autre chose:
Code:
' test_main_menu_pop.bas

dim res%

edit 1 : top 1,10 : left 1,10
memo 2 : top 2,10 : left 2,150
main_menu_pop 10
sub_menu 11 : parent 11,10 : caption 11,"Fichiers"

dll_on "KGF.dll"
res% = dll_call2("PopupMenuTarget",object_internal(10),handle(0))
message "res%="+str$(res%)

end

C'est ce que tu veux, non ?

D'ailleurs, des appels successifs à cette fonction avec un autre handle en second paramètre déplacent la cible du ménu popup selon les besoins. Et un appel avec zéro en second paramètre désactive complètement de ménu popup.

EDIT

Oups... je le reprends - il y a encore un problème.

EDIT

Bon, ça marche maintenant !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 10:10

Merci Klaus

J'ai testé en changeant la valeur de l'objet par celle du MEMO que j'ai lui même fait évolué en SYNEDIT.
Et cela fonctionne parfaitement, car en fait c' est pour l'utiliser uniquement sur la partie éditeur de PanExpress.

Mais le problème c'est que ne souhaite pas utiliser de DLL pour rendre mon programme compatible avec les différents système : MAC, LINUX, etc. J'ai déjà 2 appels DLL dans mon programme que je souhaiterai supprimer...

Mais bon, je vais garder ta solution en attendant que Jack puisse se pencher sur le problème.
En tout cas si toi tu as trouvé une solution, Jack doit pouvoir en faire de même sur Panoramic.

Car c'est vrai que dans l'état actuel de la fonction MAIN_MENU_POP n'est pas très pratique.
Mais c'est une objet récent et Jack le fera sûrement évoluer...

Un grand merci Klaus ! cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 10:22

Bon, dans ce cas, voici comment j'ai codé cela:
Code:
...
type
  Klaus = class
  public
    class procedure OnPopupMenu(Sender: TObject);
end;

implementation

{
  Cet routine évènement peut être appelée par un TPopupMenu juste avant son affichage à l'écran.
  La propriété TAG est utilisée pour mémoriser le handle d'un objet sur lequel de TPopupMenu est autorisé.
  Si TAG=0      ==> toujours afficher TPopupMenu
  Si TAG=-1    ==> jamais afficher le TPopupMenu
  Si TAG=handle ==> afficher le TPopupMenu uniquement si le curseur est sur cet objet
}
class procedure Klaus.OnPopupMenu(Sender: TObject);
var
  aName: array [0..255] of Char;
  hnd: HWND;
  pt: TPoint;
begin
  GetCursorPos(Pt);
  hnd := WindowFromPoint(Pt);
  GetClassName(hnd, aName, 256);
  if TPopupMenu(Sender).Tag<>0 then begin
    if TPopupMenu(Sender).Tag<>hnd then begin
      SendMessage(TPopupMenu(Sender).WindowHandle, WM_CANCELMODE, 0, 0 );
      keybd_event( VK_ESCAPE, Mapvirtualkey( VK_ESCAPE, 0 ), 0, 0);
      keybd_event( VK_ESCAPE, Mapvirtualkey( VK_ESCAPE, 0 ),KEYEVENTF_KEYUP, 0);
    end;
  end;
end;

// paramétrer le fonctionnement d'un TPopupMenu de Panoramic
function PopupMenuTarget(Popup: TControl; target: HWND): integer; stdcall; export;
var
  oldaddress: integer;
begin
  result := -1;
  try
    TPopupMenu(Popup).OnPopup := Klaus.OnPopupMenu;
    TPopupMenu(Popup).Tag := target;
    result := 0;
  except
  end;
end;
exports PopupMenuTarget;

L'idée, c'est de mémoriser dans le ménu PopUp le handle de l'objet sur lequel il est autorisé. Et avant chaque apparition,, on vérifie si le menu est autorisé ou pas, et éventuellement on lui balance un ESCAPE pour le fermer aussitôt.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 11:46

@minibug
Afin de ne pas polluer cette demande d'amélioration, j'ai posté une possible solution ici
J'ai fait aussi une autre demande pour cet objet il y a qq temps déjà,
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP EmptySam 15 Juin 2019 - 12:57

Merci Silverman.

Je t'ai répondu sur l'autre post ! Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Nouvelles commandes pour le MAIN_MENU_POP Empty
MessageSujet: Re: Nouvelles commandes pour le MAIN_MENU_POP   Nouvelles commandes pour le MAIN_MENU_POP Empty

Revenir en haut Aller en bas
 
Nouvelles commandes pour le MAIN_MENU_POP
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouvelles commandes pour LIST, COMBO et MEMO
» Nouvelles commandes
» Demande de nouvelles commandes.
» Nouvelles commandes et fonctions
» une commande!!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: