[Résolu]Menu contextuel Dynamique...
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Voila mon problème, je voudrais faire un 'historique' des fichiers ouvert par mon application. Un peu à la sauce Word, je voudrais ajouter au menu contextuel 'Fichier' une option qui donne le nom des fichiers que j'aurai ouvert...
Le problème passe donc par une création dynamique d'un menu contextuel.
J'ai un grand besoins de vous !! Merci d'avance !!!

Contribution le : 25/08/2004 18:08
Créer un fichier PDF de la contribution Imprimer


Re: Menu contextuel Dynamique...
Anonyme
Bonsoir,

sur le site de Firetox, il y a un exemple qui permet de le faire.

www.sqlmanagerx.com dans la zone téléchargement.

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel

Contribution le : 25/08/2004 20:49
Créer un fichier PDF de la contribution Imprimer


Re: Menu contextuel Dynamique...
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Je reformule... je ne pense pas avoir été clair...
t mon application ouvre des fichiers textes, et je voudrais que dans le menu 'Fichier' figure en bas de la liste les nom des fichiers que j'ai ouvert...Donc si j'ouvre le fichier 'toto.txt', puis 'tutu.txt', je voudrais que lors de l'ouverture de l'application, dans le menu 'Fichier' je vois les noms des fichiers récemment ouvert. Donc un truc dans ce genre la :

Fichier
____Nouveau
____Ouvrir
____Enregistrer
____-----------
____Quitter
____-----------
____Toto.txt
____Tutu.txt

Les deux dernières entrées sont donc dynamique...

Je m'occupe de la mémorisation des fichiers récents, mais il manque juste la création dynamique des champs 'Toto.txt' et 'Tutu.txt'.

Voila la j'ai compris ce que je voulait dire ! C'est déjà pas mal !

Contribution le : 27/08/2004 09:18
Créer un fichier PDF de la contribution Imprimer


Re: Menu contextuel Dynamique...
Stagiaire WDF
Inscrit:
23/07/2004 10:24
De St Ouen
Post(s): 38
dans ton menu après la ligne quitter créer le nombre d'emplacement destinés à ouvrir rapidement ces fichiers et marque les comme invisible :

_Quitter
_--------
_Placelibre1
_Placelibre2
_Placelibre3
...etc

dans le code de ces boutons met ensuite :
// le libelle correspondant dans ce cas au chemin
// complet du fichier que tu peut aussi mettre dans
// la propriete note de l'option de menu si par exemple
// tu veut n'afficher que le nom du fichier dans le
// libellé.
procedureOuvrirUnFichierTexte(moimeme..libelle)
à l'ouverture de ton projet parcours tes fichiers mémorisé et pour chacun affecte son chemin au libellé ou à la note :
fenprincipale.fichier.placelibre1..libelle = "c:\truc.txt"
fenprincipale.fichier.placelibre1..visible = vrai
et rééfectue ce traitement à chaque fois que tu modifie ton fichier (il n'y pas moyen de le faire pendant l'affichage du menu dommage)

voila j'espère avoir été clair salut.

Contribution le : 27/08/2004 17:06
_________________
......
Créer un fichier PDF de la contribution Imprimer


Re: Menu contextuel Dynamique...
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Bien Joué !!
merci merci !!
Je vais tester ça Lundi ! Mais ça VA marcher !!!

PS : J'aurais pu y penser, c'était la sous mes yeux...

GRAND MERCI !

Contribution le : 27/08/2004 18:07
Créer un fichier PDF de la contribution Imprimer


Re: Menu contextuel Dynamique...
Anonyme
de rien
;)

Contribution le : 28/08/2004 10:21
Créer un fichier PDF de la contribution Imprimer


[Resolu]: Menu contextuel Dynamique...
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
ça y est ça marche !!!
Pour ceux que ça intérressent, le principe est celui expliqué par Benj1808 !! (Merci à toi !)

J'utilise une variable chaine qui stocke les fichiers que j'ouvre. Donc dans une procédure 'Pr_OuvreFichier', à la fin, j'ajoute le nom du fichier (Chemin complet) à ma liste, qui est de la forme "Fic1 + RC + Fic2 + RC + ... + RC + FicN". La structure de la liste n'est pas choisi au hasard, c'est le résultat d'un IniLit("HISTO","","",NomFicIni). Cette fonction permet de lister toutes les clefs de la section "HISTO" de mon fichier INI.

A l'ouverture de mon application, je charge la liste grace à IniLit, et j'effectue la procédure suivante :

Pr_ChargeHisto()
i est un entier = 1
//La liste est de la forme : Fic1 + rc + Fic2 + rc + fic3 + rc + ... + rc + ficN
//ListeFic déclarée en globale et chargée dans l'ouverture du projet...

FicN est une chaîne = ExtraitChaîne(ListeFic, i, RC)
TANTQUE FicN <> EOT ET i < 11 ET FicN <> ""
_Menu.Fichier.Option8..Visible = Vrai //C'est un séparateur...
{"_menu.Fichier.Fichier" + i}..Libellé = FicN
{"_menu.Fichier.Fichier" + i}..Visible = Vrai
i++
FicN = ExtraitChaîne(ListeFic, i, RC)
FIN
//Fin

Ma fenêtre mere contient 10 emplacement libres notées _Menu.Fichier.Fichier1 à _Menu.Fichier.Fichier10

Le code de chaque options est ma procédure d'ouverture de fichier et s'appel comme suit :

Selection du menu de _Menu.Fichier.Fichier1
Pr_OuvreFichier(MoiMeme..Libellé)

//Voila ...
En prenant soins de cacher les 10 options au début du chargement, ça marche !!!
Rq : Lorsque vous ajoutez un fichier dans la liste, procédez comme suit :

PR_AjouteHisto(NomFic est une chaîne)

//ListeFic est toujours la liste des fichiers séparé par des RC
//Recherche si le fichier n'est pas déjà dans la liste
SI ChaîneOccurrence(ListeFic,NomFic,SansCasse) = 0 ALORS
//Dans ce cas on l'ajoute.
ListeFic = NomFic + RC + ListeFic
FIN

Reste à sauver la liste dans le fichier Init, à la fermeture du projet :

IdFic est un entier = fOuvre(FicInit,foAjout)
i est un entier = 1

SI IdFic = -1 ALORS
Erreur("Probleme ecriture dans le fichier " + FicInit)
RETOUR
FIN

//Histo :
Fic est une chaîne = ExtraitChaîne(ListeFic,i,RC)
fEcritLigne(IdFic,"[HISTO]")
TANTQUE i < 11 ET Fic <> EOT ET Fic <> ""
fEcritLigne(IdFic,Fic + "=")
i++
Fic = ExtraitChaîne(ListeFic,i,RC)
FIN

fFerme(IdFic)

//Je n'utilise pas IniEcrit, elle n'est pas adaptée ici.


PS : Je poste ici, une partie de mon code, chez moi ça marche, mais il manque certainement qques petites choses pour que cela fonctionne chez vous. Reprennez les grandes lignes, mais ne faite pas de copier coller, ça marchera pas ! Mettez le code à votre sauce !!

@+ !!

Pour ceux qui n'ont rien compris à cause de mes explications trop téléphonées, je reste à disposition et je pense pouvoir fournir un exemple à R&B asap... voila !

Contribution le : 30/08/2004 11:17
Créer un fichier PDF de la contribution Imprimer


Re: [Resolut]: Menu contextuel Dynamique...
Bonjour,

le seul probleme de cette methode et qu'il faut prevoir les emplacements a l'avance. si un jour on vous demande de rajouter 10 fichiers il faut se retaper le code pour changer quelques petits points, et refaire un exe.

pour une methode un peu plus hard mais tellement plus efficace il faut se pencher sur les menus dynamiques windows (et non windev car on peut pas obtenir leur handle)

ca permet d'avoir le menu dans un fichier ini ou comme nous dans une base SQL (code compris). on a donc la possibilite de rajouter des menus, du code etc sans refaire l'exe.
nous avons ainsi 5 applications qui tournent avec des menus completement differents et qui pourtant utilisent le meme exe.


bref pour ceux qui veulent voir vous pourrez trouver ca sous forme d'une classe qui gere les menus depuis un fichier ini ou une base SQL je crois qu'il y a un exemple

http://www.sqlmanagerx.com/famille/index.html
partie windev et download

Bon dev
@+

Contribution le : 30/08/2004 13:03
Créer un fichier PDF de la contribution Imprimer


Re: [Resolu]: Menu contextuel Dynamique...
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Ok, mais ma solution est plus simple ! na na na nanèreuhh !!


Pis je ne voulait faire une sauvegarde de seulement 10 fichiers ! Mais grand merci à toi aussi !!

Contribution le : 30/08/2004 14:17
Créer un fichier PDF de la contribution Imprimer


Re: [Resolut]: Menu contextuel Dynamique...
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
ben très intéressant tout ça, merci
euh mais résolU,
y'a pas de t, non pas de t.
on dit pas une difficulté résoluTE.

hem, enfin merci qd même

Contribution le : 30/08/2004 14:41
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2