| ou est l'erreur? | |
|
+4Klaus Minibug Yannick pascal10000 8 participants |
|
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 1:52 | |
| Possiblement au niveau du handle du sous-menu que Panoramic retourne. Voici mon progamme test en Panoramic: - Code:
-
label sortir
dim bmp$, res%
main_menu 1 sub_menu 2 : parent 2,1 : caption 2,"Fichier" sub_menu 3 : parent 3,2 : caption 3,"Sortir" : on_click 3,sortir
open_dialog 13 filter 13,"bitmap|*.bmp" bmp$ = file_name$(13) if bmp$="_" then terminate
dll_on "KGF.dll" res% = dll_call3("TestMenu",handle(1),0,adr(bmp$)) res% = dll_call3("TestMenu",handle(1),1,adr(bmp$)) res% = dll_call3("TestMenu",handle(1),2,adr(bmp$)) res% = dll_call3("TestMenu",handle(2),0,adr(bmp$)) res% = dll_call3("TestMenu",handle(2),1,adr(bmp$)) res% = dll_call3("TestMenu",handle(3),0,adr(bmp$)) res% = dll_call3("TestMenu",handle(3),1,adr(bmp$))
end
sortir: terminate
Une de ces 7 lignes devrait le faire. E voici le code de ma fonction TestMenu en Delphi: - Code:
-
function TestMenu(hmenu: HWND; ind: integer; bmp: pstring):integer; stdcall; export; var Picture: TPicture; begin Picture:=TPicture.Create; Picture.LoadFromFile(bmp^); delay(100); SetMenuItemBitmaps(hmenu,ind,MF_BYPOSITION,Picture.Bitmap.Handle,Picture.Bitmap.Handle); result := 0; end; Ce code est directement issu de plusieurs publications sur le net. On a besoin du handle du menu, d'un indice compté à partir de 0 et de deux handles de bitmaps (un pour l'état "coché", l'autre pour l'état "non coche". Les deux peuvent être identiques. La fonction crée un picture iinterne, charge le fichier DMP dedans, et utilise le handle de la bitmap que renferme le picture. Techniquement très simple, sauf que ça ne marche pas. Et pour le moment, je ne sais pas pourquoi. EDIT J'ai découvert qu'il faut utiliser des icônes de 12x12 pixels, pour les menus. Donc, voici l'icône que j'utilise pour les tests: C'est un petit cercle noir sur fond blanc.
Dernière édition par Klaus le Mar 7 Juil 2015 - 9:32, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Juil 2015 - 2:11 | |
| Et comme Jack ignore royalement le sujet... Il nous a fait Container_tab et Tab mais là aussi, pas de possibilité d' icône dans les onglets, et pour les boutons, c' est la même histoire... Si il veut réellement une ouverture vers les tablettes, il va falloir qu' il se penche là dessus. J' ai l' impression qu' il se perd avec toutes ses variantes qui n' en sont pas, dommage... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 9:33 | |
| J'ai édité mon post ci-dessus pour ajouter l'icône que j'utilise pour les tests. Mais le problème est identique, quelque soit le BMP et indépendant des dimensions de l'image. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 9:44 | |
| [HS] Merci Klaus pour ta réponse. C'est bien comme cela que j'avais interprété la chose. Ce compteur est en réalité un compteur de "clone" (b$=a$) mais dès que tu touches à une de ces 2 variables, le compteur est décrémenté et une réservation supplémentaire est créé... Je ne comprend pas vraiment l’intérêt de ce mécanisme de gestion de chaine en Delphi. C'est même piégeux comme tu l'as démontré dans ton exemple. [/HS] Promis, je ne pourrirai plus ce topic ! | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Juil 2015 - 14:17 | |
| @ Klaus, Avec quelle version de KGF travailles tu ? Voilà ce que j' ai avec la dernière téléchargée : Vs 4.82 du 02/07/2015 ( chez moi ) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 14:42 | |
| Je travaillais évidemment avec une version modifiée, non publiée, contenant la fonctionprovisoire TestMenu. Je viens de copier cette version sur mon WebDav, dossier DLLs, sous le nom KGF_avec_TestMenu.dll. Su tu veux l'essayer, sers-toi... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Juil 2015 - 16:07 | |
| Je vais essayer pour voir, je me coucherai moins bête ce soir et peut être qu' une iddée me traversera l' esprit... | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 16:44 | |
| Fais quand même gaffe c'est dangereux ces idées qui traversent l'esprit, c'est depuis ce temps là moi que j'ai des courants d'air dans le crâne ... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 7 Juil 2015 - 19:00 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: ou est l'erreur? Mar 7 Juil 2015 - 19:35 | |
| Oui, je connais cette page. Je ne peux pas appliquer cette technique avec un objet ImageList, car je n'ai pas accès à l'objet Main_Menu. Et les autres liens sont essentiellement pour un menu contextuel (par clic droit), ce qui n'est pas notre cas.
La technique avec l'objet ImageList est certainement la bonne, mais Jack est le seul à pouvoir l'appliquer. Il faut lui suggérer une nouvelle commande: MENU_ICON N1,N2,F$ N1 étant le numéro du main_menu N2 étant le numéro du sub_menu pour lequel il faut afficher l'icône F$ étant le nom du fichier BMP contenant l'icône à afficher
Il faut garder en mémoire que ces bitmaps doivent avoir une dimension de 12x12 pixels.
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 8 Juil 2015 - 7:55 | |
| A moins de repasser par une dll pour utiliser un objet main_menu externe qui ,lui , accepte les icones... D' où une de mes propositions de créer une dll comme fltk pour tous les objets... bon ca y est je repars en vrille...je sors. D' autre part, si l' objet Container_Tab est sympa en natif, il comporte deux inconvénients dont un majeur: 1 / pas d' icône 2 / numérotation en dur ( ca, c' est ch...t, pour supprimer et rajouter des feuilles au classeur ) du coup, je me retourne vers l' objet de la dll... En ce moment, dès que j' ai un prog en tête, je me trouve confronté à une contrainte et j' abandonne... ...déjà que mon courage du moment est dans mes chaussettes. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: ou est l'erreur? Mer 8 Juil 2015 - 10:33 | |
| @Ygeronimi,
J'ai fait un essai, à l'instant, d'affecter un PICTURE à TAB avec la commande PARENT. Jusque là, pas de problème. Ensuite j'ai charger une "image.bmp" dans le PICTURE en prenant soin de choisir une image de 8x8, le souci c'est que l'image est visible, mais pas dans l'onglet.
Tu devrais demander à Jack qu'il créé une commande TAB_IMAGE_CAPTION N,"image.bmp" , si tu vois ce que je veux dire.
A+
En fait c'est pratiquement, ce qu'a suggérer Klaus. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 8 Juil 2015 - 13:35 | |
| J' en parle dans tous les sujets qui s' y prêtent. Je pense donc que Jack est au courant... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: ou est l'erreur? Mer 8 Juil 2015 - 14:44 | |
| A mon avis tu auras plus de succès en utilisant le post "vos souhaits d'amélioration .....".
A+ | |
|
| |
Contenu sponsorisé
| Sujet: Re: ou est l'erreur? | |
| |
|
| |
| ou est l'erreur? | |
|