Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | Plein écran (pb résolu !) | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Plein écran (pb résolu !) Mar 15 Déc 2015 - 16:33 | |
| J'ai un problème esthétique un peu bizarre, dont je ne vois pas la cause. J'ai fait un petit programme exécutable, avec une icône sur le bureau, qui m'affiche la liste des 5 derniers sources (.bas) panoramic enregistrés, en ordre chronologique inverse. Je clique sur un élément et ça me lance l'éditeur Panoramic avec ce source. Autrement dit, c'est fait pour travailler sur le source en cours de développement. C'est donc une toute petite fenêtre qui s'affiche à l'écran. Lancé en mode éditeur, ça marche très bien, comme je veux. Mais si je le lance en mode .exe, depuis l'icône du bureau, ça se lance en mode plein écran et ça masque tout le reste ! Pourquoi ? Voici le programme, 50 lignes (deux chemins à ajuster en tête: chemin des sources, chemin de l'éditeur panoramic): - Code:
-
' Lancement de l'éditeur Panoramic avec le dernier source en date: Panoder.bas LABEL Actif,Fin,Autres,Alfa,Surv DIM i%,f$,a$,rep$,exe$,hlig%,prem%,al%,es$ ' ################################ * A AJUSTER * ############################# rep$ = "C:\PANORAMIC": ' Répertoire des sources, à ajuster exe$ = "C:\PROGRA~2\PANORA~1\PANORAMIC_EDITOR.EXE": ' chemin de l'éditeur, idem ' ############################################################################## TOP 0,800: LEFT 0,10: WIDTH 0,240: HEIGHT 0,160: BORDER_HIDE 0 FONT_NAME 0,"Arial": FONT_SIZE 0,12: FONT_BOLD 0: COLOR 0,255,80,255 MEMO 1: HIDE 1 ALPHA 9: TOP 9,5: FONT_SIZE 9,10: CAPTION 9," DERNIERS SOURCES PANORAMIC" LIST 10: TOP 10,25: WIDTH 10,WIDTH(0): HEIGHT 10,HEIGHT(0)-58: ON_CLICK 10,Actif FONT_NAME 10,"Consolas": COLOR 10,255,255,148 BUTTON 11: TOP 11,TOP(10)+HEIGHT(10)+4: LEFT 11,5: CAPTION 11,"Autres" ON_CLICK 11,Autres BUTTON 12: TOP 12,TOP(11): LEFT 12,WIDTH(10)-80 CAPTION 12,"Annuler": ON_CLICK 12,Fin ALPHA 13: TOP 13,TOP(11)+3: LEFT 13,LEFT(11)+WIDTH(11)+5 EXECUTE_WAIT "Cmd.exe /c DIR "+rep$+"*.bas /O:-D /B | clip": CLIPBOARD_PASTE 1 ' Affichage de la liste des 5 derniers sources en date FOR i% = 1 TO 5: ITEM_ADD 10,ITEM_READ$(1,i%): NEXT i%
TIMER 20: TIMER_INTERVAL 20,500: ON_TIMER 20,Surv END ' ============================================================================== Actif: ' Lancement de Panoramic_Editor avec le source choisi EXECUTE exe$+" "+ITEM_INDEX$(10): ' dernier source enregistré Fin: TIMER_OFF 20 TERMINATE ' ============================================================================== Autres: ' Extension à la list complète des sources TOP 0,10: HEIGHT 0,SCREEN_Y-40 HEIGHT 10,HEIGHT(0)-58 HIDE 11: TOP 12,TOP(10)+HEIGHT(10)+4 CLEAR 10: FOR i% = 1 TO COUNT(1): ITEM_ADD 10,ITEM_READ$(1,i%): NEXT i% TOP 11,TOP(10)+HEIGHT(10)+4: CAPTION 11,"Alpha": SHOW 11: ON_CLICK 11,Alfa TOP 13,TOP(11)+3: CAPTION 13,STR$(COUNT(1))+" .bas" RETURN ' ============================================================================== Alfa: ' Classement du List (alphabétique ou chrono inverse) IF al% = 0 SORT 10 CAPTION 11,"Chrono" al% = 1 ELSE CLEAR 10: FOR i% = 1 TO COUNT(1): ITEM_ADD 10,ITEM_READ$(1,i%): NEXT i% CAPTION 11,"Alpha" al% = 0 END_IF RETURN ' ============================================================================== Surv: TIMER_OFF 20 ' Détection du clic droit sur un élément du List IF MOUSE_RIGHT_DOWN(10) = 1 Listelem(10) i% = 1+INT(MOUSE_Y_POSITION(10)/hlig%): ' position dans la partie visible de List i% = prem%+i%: f$ = rep$+ITEM_READ$(10,i%) FileDateSize(f$): a$ = CLIPBOARD_STRING_PASTE$: i% = INSTR(a$,";") MESSAGE f$+CHR$(10)+LEFT$(a$,i%-1)+CHR$(10)+RIGHT_POS$(a$,i%+1)+" octets." END_IF TIMER_ON 20 RETURN ' ============================================================================== SUB Listelem(lst%) ' Renvoie dans hlig% la hauteur en pixels d'une ligne du List lst%, ' et dans prem% le rang du 1er élément de lst% affiché dans la fenêtre visible ' du List (cas de présence des ascenseurs). DIM_LOCAL LB_GETITEMHEIGHT%,LB_GETTOPINDEX% IF VARIABLE("hlig%") = 0 THEN DIL hlig% IF VARIABLE("prem%") = 0 THEN DIM prem% LB_GETITEMHEIGHT% = 417 LB_GETTOPINDEX% = 398 DLL_ON "User32" hlig% = DLL_CALL4("SendMessageA",handle(lst%),LB_GETITEMHEIGHT%,0,0) prem% = DLL_CALL4("SendMessageA",handle(lst%),LB_GETTOPINDEX%,0,0) DLL_OFF END_SUB ' ============================================================================== SUB FileDateSize(path$) ' Date taille du fichier path$, résultat dans clipboard: jj/mm/aaaa hh:mm;taille octets DIM_LOCAL f$,q$,k%,a$,dt$ q$ = CHR$(34) f$ = FILE_EXTRACT_NAME$(path$) EXECUTE_WAIT "cmd.exe /c DIR /-C /TW "+q$+path$+q$+" | findstr "+q$+f$+q$+" | clip" a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,f$): dt$ = MID$(a$,k%-36,10)+MID$(a$,k%-25,6) CLIPBOARD_STRING_COPY dt$+";"+TRIM$(MID$(a$,k%-19,18)) END_SUB ' ============================================================================== C'était la 1ère question. J'en ai deux autres: 2) Quelle est la hauteur en pixels d'un élément de LIST (en fonction évidemment de la police et enrichissements attribués) ? Manifestement le TEXT_HEIGHT sur ce List donne un résultat incorrect.Après une petite recherche, ce problème a déjà été évoqué par ailleurs (par moi d'ailleurs...) et pas résolu, donc je ferai de manière empirique. ( https://panoramic.1fr1.net/t2378-text_width-dans-un-list?highlight=T%EAte+de+List ) 3) Comment savoir, dans un LIST avec ascenseur, quel est le rang de l'élément qui est affiché en tête ? Edit: ça aussi on en a déjà parlé: https://panoramic.1fr1.net/t1094-position-dans-un-list?highlight=Index+ListEdit du 17/12, 23h00: J'ai intégré sous forme de sub les excellentes solutions de silverman pour mes questions 2 et 3, le problème est donc résolu, un grand merci à lui. Donc: - clic gauche sur un élément de la Liste: lancement de l'éditeur Panoramic avec ce fichier - clic droit sur un élément: affichage des caractéristiques de ce fichier (nom, date et taille), sous forme de Message. Et j'ai toujours le plein écran en exécutable, mais bon, s'il n'y a que moi c'est pas grave. J'ai ajouté quelques commentaires dans le code, et je précise: Le plein écran ne se produit (chez moi du moins) que si je lance l'exécutable depuis une icône du bureau. Et non pas si je lance l'exe depuis l'explorateur Windows... Problème (?) résolu grâce à Klaus: le raccourci avait la propriété ' fenêtre agrandie'...
Dernière édition par JL35 le Ven 18 Déc 2015 - 22:39, édité 4 fois | |
| | | silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Plein écran (pb résolu !) Mer 16 Déc 2015 - 15:37 | |
| Bonjour JL35, je peux au moins t'aider sur 2 points: 1) je ne sais pas, je n'ai pas ce pb, que ce soit compilé en 'executable' ou en 'application' 2) Quelle est la hauteur en pixels d'un élément de LIST ? Voir le code ci-dessous 3) dans un LIST avec ascenseur, quel est le rang de l'élément qui est affiché en tête ? Voir le code ci-dessous - Code:
-
dim ret% dim LB_GETITEMHEIGHT%,LB_GETTOPINDEX%
LB_GETITEMHEIGHT% = 417 LB_GETTOPINDEX% = 398
caption 0,"'barre d'espace pour terminer'"
list 1 left 1,400 ' remplir un list avec la liste des polices font_names_add 1
dll_on "user32"
' retrouve la hauteur d'un element ret%=dll_call4("SendMessageA",handle(1),LB_GETITEMHEIGHT% ,0,0) print_locate 0,16 print "hauteur en pixels d'un élément : ",ret%," pixels"
alpha 2 repeat ' retrouve le rang du premier element visible dans un list ret%=dll_call4("SendMessageA",handle(1),LB_GETTOPINDEX%,0,0) caption 2,item_read$(1,ret%+1)+" à le rang/index numéro : "+str$(ret%) until scancode=32
dll_off terminate Bon codage ! | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plein écran (pb résolu !) Mer 16 Déc 2015 - 16:10 | |
| Joli, Silverman !
@JL35: Je ne rencontre pas non plus le problème de plein écran avec ton code généré en EXE. Mais as-tu essayé de le lancer de la manière suivante: - 1 clic gauche sur l'icône (pas 2 clics !) pour sélectionner cette dernière - taper la touche "Entrée" du clavier pour lancer le programme Est-ce que le programme démarre toujours en plein écran ? | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Plein écran (pb résolu !) Mer 16 Déc 2015 - 16:16 | |
| Moi, non plus. No problem. | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Plein écran (pb résolu !) Jeu 17 Déc 2015 - 21:59 | |
| D'abord merci à tous pour vos interventions. J'ai eu 48h d'absence forcée: panne EDF dans mon quartier qui a consisté à nous balancer du 380 volts sur le réseau en alternance avec le 220, entre 3 ou 4h du matin et 10h où là ils ont tout coupé. Mais ça a fait des dégâts énormes dans ne trentaine de maisons: pour moi chaudière hs, volets roulants électriques hs (et ils étaient baissés, agréable toute la journée...), porte de garage électrique hs, téléphones sans fil et décodeurs tnt hs, micro-ondes hs, entre autres, tout ça à remplacer, sans parler des ampoules grillées, et chez certains des dégâts bien plus importants. Et ils ont mis 24 heures pour trouver la panne (un câble en souterrain, on dirait). Bref, pas mal d'animation dans le quartier. Merci pour ton code silverman, je regarde ça en détail, mais ça m'intéresse beaucoup. @Klaus, je suis déjà en simple clic pour toutes les icônes... Mais vraiment, si je suis le seul à qui ça arrive ça me rend vraiment perplexe, et je confirme: OK sous éditeur, et plein écran en exécutable... Je m'y remets. @silverman, tes 3 ou 4 lignes de code sont absolument géniales ! et je sens que ça va bien me servir ! merci, c'est super ! En fait je voulais savoir quel élément a été cliqué dans le cas d'un clic droit. Et ça marche parfaitement. J'en ai fait une petite sub qui reprend ton code quasiment tel quel: - Code:
-
SUB Listelem(lst%) DIM_LOCAL LB_GETITEMHEIGHT%,LB_GETTOPINDEX% IF VARIABLE("hlig%") = 0 THEN DIL hlig% IF VARIABLE("prem%") = 0 THEN DIM prem% LB_GETITEMHEIGHT% = 417 LB_GETTOPINDEX% = 398 DLL_ON "User32" hlig% = DLL_CALL4("SendMessageA",handle(lst%),LB_GETITEMHEIGHT%,0,0) prem% = DLL_CALL4("SendMessageA",handle(lst%),LB_GETTOPINDEX%,0,0) DLL_OFF END_SUB et qui renvoie dans la variable hlig% la hauteur de ligne du List lst% et dans la variable prem% le rang du premier élément du List affiché (cas des ascenseurs). Cela dit, j'ai toujours ce problème du plein écran en exécutable... j'y perds un peu mon latin (le peu qui reste...). | |
| | | Jean Claude
Nombre de messages : 5950 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 7:48 | |
| @JL35, Dieu merci ton PC n'a pas grillé dans la bagarre Je regarderai ton programme au retour des fêtes. A+ | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 13:39 | |
| Salut Jean Claude, mon pc (et ma box) était derrière une prise parafoudre, je pense que c'est ça qui les a sauvés... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 20:33 | |
| Je reviens sur ce phénomène d'affichage en plein écran dans le cas d'exécution du programme ci-dessus compilé. Curieusement, ça ne se produit qu'en cas de lancement de l'exécutable depuis une icône du bureau. Si je lance l'exécutable depuis l'explorateur Windows en cliquant sur le .exe, l'affichage est normal. Que se passe-t'il ? | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 20:56 | |
| Alors, vérifie les propriétés du raccourci (clic droit/propriétés). On y trouve le paramétrage du type de fenêtre à l'ouverture: Regarde le champ "Exécuter" - il devrait afficher "Fenêtre normale". Tu as peut-être "Fenêtre agrandie" à la place... | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 22:36 | |
| Alors là Klaus, je tombe des nues, tu as mis le doigt juste dessus ! Ca ne m'était jamais arrivé et je n'aurais pas eu l'idée de regarder ça, et effectivement, il y a bien dans les propriétés: 'fenêtre agrandie' ! je me demande bien comment c'est arrivé là, mais bon, j'ai rectifié et tout est redevenu normal. C'était donc bien un problème local à moi Merci Klaus, tu m'as bien aidé et... rassuré. | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Plein écran (pb résolu !) Ven 18 Déc 2015 - 23:52 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Plein écran (pb résolu !) | |
| |
| | | | Plein écran (pb résolu !) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |