Novembre 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 | | Calendrier |
|
|
| Dessin(x) | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 20:35 | |
| Merci pour ces précisions Klaus. Dans ces conditions, je comprends mieux: en W8, 31 et 31 ! alors qu'en W7 il y a bien 4 pixels de différence (30 et 26). C'est un peu n'importe quoi, mais je suppose que c'est une contrainte Windows, Panoramic n'y est pour rien.
Conclusion pratique: il vaut mieux éviter le Border_Small, pour la compatibilité. Dommage, j'en avais pris l'habitude. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 20:54 | |
| @jl35, Eviter le border_small, bof, t'es pas obligé vu que çà ne change rien. Par contre, si tu veux que tes codes soit lisibles en border_small pour W8 tu dois prendre les dimensions du bandeau W8 normal (31 Px). N'oubli pas que border_small n'affiche que la croix rouge pour quitter, (et c'est valable sous W8).
A+
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 20:55 | |
| Je rappelle l'excellente procédure de Papydall: - Code:
-
rem ============================================================================ rem Détermination de la sersion de Windows rem ============================================================================ Window_Ver() end rem ============================================================================ SUB Window_Ver() dim_local v$,v1$,v2$,w$,n v1$ = "version" execute_wait "cmd /c ver | clip" v$ = CLIPBOARD_STRING_PASTE$ n = instr(v$,v1$) v2$ = mid$(v$,n+8,3) if v2$ ="6.3" then w$ = "Windows 8.1" if v2$ ="6.2" then w$ = "Windows 8" if v2$ ="6.1" then w$ = "Windows 7" if v2$ ="6.0" then w$ = "Windows Vista" if v2$ ="5.1" then w$ = "Windows XP" if v2$ ="4.9" then w$ = "Windows ME" if v2$ ="5.0" then w$ = "Windows 2000" if v2$ ="4.1" then w$ = "Windows 98" if v2$ ="4.0" then w$ = "Windows 95"
message "Votre version est : " +w$
END_SUB rem ============================================================================ qui marche parfaitement, en Panoramic pur. Avec ça, facile de savoir si l'on est en W7 ou W8.. Prends ça, JL35, et tu n'auras pas de problème. Bien sûr, si tu utilises KGF.dll, tu as des fonctions (oui, plus d'une !) pour récupérer l'information. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 21:25 | |
| Plutôt que de tester la version, je vais prendre la valeur maximum pour couvrir tous les cas (qui peut le plus peut le moins), au pire dans W7 ça fera quelques pixels inutiles au bas du picture. N'empêche que je mets de côté la procédure papydall, ça peut servir. Je fais une modif dans le dernier code publié (page précédente), j'ai ajouté quelques temporisations pour sécuriser la procédure 'coller' une image qui était parfois un peu fantaisiste. Et a priori je vais en rester là. Jean Claude, toi qui as la chance ( ) d'avoir W8, tu me diras si les ascenseurs ont disparu, et sinon, eh bien tu me suggéreras les constantes à mettre ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 21:58 | |
| Comme Papydall’s Procedure semble vous plaire et pour faire plaisir à JL35 pour Window s_ver, je vous remets le code légèrement modifié : ça détecte aussi la version Windows 10. Attention : il n’y a pas de Windows 9. - Code:
-
rem ============================================================================ rem Détermination de la sersion de Windows rem ============================================================================ Windows_Ver() end rem ============================================================================ SUB Windows_Ver() dim_local v$,v1$,v2$,w$,n v1$ = "version" execute_wait "cmd /c ver | clip" v$ = CLIPBOARD_STRING_PASTE$ n = instr(v$,v1$) v2$ = mid$(v$,n+8,3) if v2$ ="10." then w$ = "Windows 10" ' il n'y a pas de windows 9 car confusion possible avec windows 95/98 if v2$ ="6.3" then w$ = "Windows 8.1" if v2$ ="6.2" then w$ = "Windows 8" if v2$ ="6.1" then w$ = "Windows 7" if v2$ ="6.0" then w$ = "Windows Vista" if v2$ ="5.1" then w$ = "Windows XP" if v2$ ="4.9" then w$ = "Windows ME" if v2$ ="5.0" then w$ = "Windows 2000" if v2$ ="4.1" then w$ = "Windows 98" if v2$ ="4.0" then w$ = "Windows 95"
message "Votre version est : " +w$
END_SUB rem ============================================================================
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 22:18 | |
| Merci papydall, c'est noté (mais je n'ai pas trouvé ma version Windows 3.1 ? ) A propos, c'est quoi la sersion de Windows ? Jean Claude j'ai un peu cafouillé avec mes bordures, je viens de corriger le tir, maintenant ça devrait aller avec tous les windows connus à ce jour ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 22:51 | |
| Oui, ça c'est vraiment une procédure à rajouter sur le site du mag et un petit article qui expliquerait comment s'en servir pour pouvoir ajuster l'affichage de ses programmes selon les version en ajustant les marges et qui reprendrait une partie des discussions qui viennent d'avoir lieu. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 23:06 | |
| - JL35 a écrit:
- Merci papydall, c'est noté (mais je n'ai pas trouvé ma version Windows 3.1 ?
Pardon, j'ai oublié que tu es né avant la préhistoire! La voici, ta version qui est aussi la mienne. - Code:
-
rem ============================================================================ rem Détermination de la sersion de Windows rem ============================================================================ Windows_Ver() end rem ============================================================================ SUB Windows_Ver() dim_local v$,v1$,v2$,w$,n v1$ = "version" execute_wait "cmd /c ver | clip" v$ = CLIPBOARD_STRING_PASTE$ n = instr(v$,v1$) v2$ = mid$(v$,n+8,3) if v2$ ="10." then w$ = "Windows 10" ' il n'y a pas de windows 9 car confusion possible avec windows 95/98 if v2$ ="6.3" then w$ = "Windows 8.1 du 18 octobre 2013" if v2$ ="6.2" then w$ = "Windows 8 du 26 octobre 2012" if v2$ ="6.1" then w$ = "Windows 7 du 22 octobre 2009" if v2$ ="6.0" then w$ = "Windows Vista du 30 Janvier 2007" if v2$ ="5.1" then w$ = "Windows XP du 25 octobre 2001" if v2$ ="4.9" then w$ = "Windows ME du 14 Septembre 2000" if v2$ ="5.0" then w$ = "Windows 2000 du 17 Février 2000" if v2$ ="4.1" then w$ = "Windows 98 du 25 Juin 1998" if v2$ ="4.0" then w$ = "Windows 95 du 24 Aout 1996" if v2$ ="3.1" then w$ = "Windows 3.10 de Avril 1992 " if v2$ ="3.0" then w$ = "Windows 3.00 du 22 Mai 1990" if v2$ ="2.1" then w$ = "Windows 2.10 du 27 Mai 1988" if v2$ ="2.0" then w$ = "Windows 2.0 du 9 Décembre 1987" if v2$ ="1.0" then w$ = "Windows 1.0 du 20 Novembre 1985"
message "Votre version est : " +w$
END_SUB rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Dessin(x) Jeu 26 Fév 2015 - 23:37 | |
| JL35, moi, pour que je n'ai pas de marge avec mon Windows 8.1, j'ai mis à la ligne 15: - Code:
-
WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+59 | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 1:57 | |
| mais j'ai reprise le code de Klaus dans ton programme et le début donne: - Code:
-
' Dessin LABEL Quit,Type,Couleur,Dessiner,ign,Destrait,Desrec,Desell,Destex,Deplacer,Annuler LABEL SauvRest,Format,Raztou,Finaper,Texte,Ftexte,Chp,Chp1,Chp2,Aide DIM wp%,hp%,het%,i%,j%,p%,x%,y%,xd%,yd%,x1%,y1%,xa%,ya%,xf%,yf%,btn,coord$,ofx,ofy,typ DIM r%,g%,b%,wt%,rx%,ry%,xc%,yc%,pi,t,f$,mm$,ftmp$,a$,pol$,sz%,rc$, bord% pi = 4*ATN(1) mm$ = "Mouse.dll": ' <<<<<<<<<<<<<< CHEMIN À PRÉCISER <<<<<<<<<< ' La sub Mouse.dll de Nardo est à télécharger ici: ' http://nardo26.lescigales.org/divers-dll-28.html ftmp$ = "C:\TEMP\Tmp.bmp"
wp% = 800: hp% = 600: ' Dimensions du picture de dessin MEMO 2 : FULL_SPACE 2 bord% = (WIDTH(0) - WIDTH(2))/2 het% = HEIGHT(0) - HEIGHT(2) - bord%: ' hauteur de l'en-tête DELETE 2
WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+59: COLOR 0,180,255,255: ON_CLOSE 0,Quit FONT_BOLD 0 : BORDER_SMALL 0 p% = 1: PICTURE p%: TOP p%,het%: WIDTH p%,wp%: HEIGHT p%,hp% | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 7:49 | |
| @JL35, L'affichage sous W8, avec ta dernière version, c'est OK. Bon courage pour la suite.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 10:15 | |
| Merci Jicehel et jean Claude, ça roule ! Et merci aussi à papydall pour sa sollicitude ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 15:38 | |
| Dernier avatar: - Ajout d'un mode plein écran (bof) - Suppression du check pour faire des carrés au lieu des rectangles et des cercles au lieu des ellipses: il suffit de maintenir la touche 'Maj' enfoncée, c'est plus facile. - Suppression du check pour reboucler les figures libres, pareil, maintenir la touche 'Maj' enfoncée en fin de tracé (au relâchement du bouton). - Tracé de droites: si on maintient la touche Maj (encore !) enfoncée pendant le tracé et qu'on est proche d'une verticale ou d'une horizontale, le tracé se fera suivant la verticale ou l'horizontale stricte. - Code:
-
' Dessin LABEL Quit,Type,Couleur,Dessiner,ign,Destrait,Desrec,Desell,Destex,Deplacer,Annuler LABEL SauvRest,Format,Raztou,Finaper,Texte,Ftexte,Chp,Chp1,Chp2,Aide DIM wp%,hp%,het%,i%,j%,p%,x%,y%,xd%,yd%,x1%,y1%,xa%,ya%,xf%,yf%,btn,coord$,ofx,ofy,typ DIM r%,g%,b%,wt%,rx%,ry%,xc%,yc%,pi,t,f$,mm$,ftmp$,a$,pol$,sz%,rc$,iv$,hb% pi = 4*ATN(1) mm$ = "C:\PANORAMIC\Mouse.dll": ' <<<<<<<<<<<<<< CHEMIN À PRÉCISER <<<<<<<<<< ' La sub Mouse.dll de Nardo est à télécharger ici: ' http://nardo26.lescigales.org/divers-dll-28.html ' iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe": ' IrfanView (fonction impression) ftmp$ = "C:\TEMP\Tmp.bmp"
wp% = 800: hp% = 600: ' Dimensions du picture de dessin het% = 32: ' hauteur de l'en-tête contenant les choix (Container_option 10) hb% = 31: ' hauteur du bandeau supérieur form 0 (W8) hb% = hb%+20: ' + bande des menus
WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+hb%+8: COLOR 0,180,255,255: ON_CLOSE 0,Quit: FONT_BOLD 0 ' BORDER_SMALL 0 p% = 1: PICTURE p%: TOP p%,het%: WIDTH p%,wp%: HEIGHT p%,hp%
MAIN_MENU 70 SUB_MENU 71: PARENT 71,70: CAPTION 71,"Fichier" SUB_MENU 80: PARENT 80,71: CAPTION 80,"Ouvrir (JPG, BMP)" SUB_MENU 81: PARENT 81,71: CAPTION 81,"Enregistrer (BMP)" SUB_MENU 82: PARENT 82,71: CAPTION 82,"Aperçu" SUB_MENU 83: PARENT 83,71: CAPTION 83,"Imprimer" SUB_MENU 84: PARENT 84,71: CAPTION 84,"Quitter" FOR i% = 80 TO 84: ON_CLICK i%,SauvRest: NEXT i% SUB_MENU 72: PARENT 72,70: CAPTION 72,"Format" SUB_MENU 90: PARENT 90,72: CAPTION 90,"A4" SUB_MENU 91: PARENT 91,72: CAPTION 91,"A4 Paysage" SUB_MENU 92: PARENT 92,72: CAPTION 92,"½ A4" SUB_MENU 93: PARENT 93,72: CAPTION 93,"800 x 600" a$ = STR$(SCREEN_X-16)+" x "+STR$(SCREEN_Y-132) SUB_MENU 94: PARENT 94,72: CAPTION 94,"Plein écran ("+a$+")" FOR i% = 90 TO 94: ON_CLICK i%,Format: NEXT i% SUB_MENU 73: PARENT 73,70: CAPTION 73,"RAZ Totale": ON_CLICK 73,Raztou SUB_MENU 74: PARENT 74,70: CAPTION 74,"Annul dernier": ON_CLICK 74,Annuler SUB_MENU 75: PARENT 75,70: CAPTION 75,"?": ON_CLICK 75,Aide ' Figures CONTAINER_OPTION 10: TOP 10,0: HEIGHT 10,het%: WIDTH 10,250 OPTION 11: PARENT 11,10: TOP 11,0: LEFT 11,5: CAPTION 11,"Libre": MARK_ON 11 OPTION 12: PARENT 12,10: TOP 12,15: LEFT 12,5: CAPTION 12,"Trait" OPTION 13: PARENT 13,10: TOP 13,0: LEFT 13,55: CAPTION 13,"Rectangle" OPTION 14: PARENT 14,10: TOP 14,15: LEFT 14,55: CAPTION 14,"Ellipse" OPTION 15: PARENT 15,10: TOP 15,0: LEFT 15,133: CAPTION 15,"Remplir" OPTION 16: PARENT 16,10: TOP 16,15: LEFT 16,133: CAPTION 16,"Texte" OPTION 17: PARENT 17,10: TOP 17,0: LEFT 17,195: CAPTION 17,"Coller" FOR i% = 11 TO 17: ON_CLICK i%,Type: NEXT i% typ = 0: 2D_PEN_SOLID: ' tracé libre
' Palette CONTAINER 20: LEFT 20,LEFT(10)+WIDTH(10)+20: HEIGHT 20,22: TOP 20,TOP(10)+3: WIDTH 20,105 PICTURE 21: PARENT 21,20: TOP 21,1: WIDTH 21,25: HEIGHT 21,22: COLOR 21,0,0,0 PICTURE 22: PARENT 22,20: TOP 22,TOP(21): LEFT 22,32: WIDTH 22,90: HEIGHT 22,HEIGHT(21) 2D_TARGET_IS 22 2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 0,0,0: 2D_RECTANGLE 0,0,12,22 2D_PEN_COLOR 255,255,255: 2D_FILL_COLOR 255,255,255: 2D_RECTANGLE 12,0,24,22 2D_PEN_COLOR 255,0,0: 2D_FILL_COLOR 255,0,0: 2D_RECTANGLE 24,0,36,22 2D_PEN_COLOR 0,255,0: 2D_FILL_COLOR 0,255,0: 2D_RECTANGLE 36,0,48,22 2D_PEN_COLOR 0,0,255: 2D_FILL_COLOR 0,0,255: 2D_RECTANGLE 48,0,60,22 2D_PEN_COLOR 255,255,0: 2D_FILL_COLOR 255,255,0: 2D_RECTANGLE 60,0,72,22 ON_CLICK 22,Couleur ' Épaisseur du trait ALPHA 30: TOP 30,TOP(20)+5: LEFT 30,LEFT(20)+110: CAPTION 30,"Trait:" SPIN 31: TOP 31,TOP(30)-4: LEFT 31,LEFT(30)+35: WIDTH 31,40 MIN 31,1: MAX 31,20: POSITION 31,1 ' Déplacement, réduction, augmentation BUTTON 40: TOP 40,TOP(31): LEFT 40,LEFT(31)+50: HEIGHT 40,23: WIDTH 40,20 BUTTON 41: TOP 41,TOP(40): LEFT 41,LEFT(40)+20: HEIGHT 41,23: WIDTH 41,20 BUTTON 42: TOP 42,TOP(40): LEFT 42,LEFT(41)+20: HEIGHT 42,23: WIDTH 42,20 BUTTON 43: TOP 43,TOP(40): LEFT 43,LEFT(42)+20: HEIGHT 43,23: WIDTH 43,20 BUTTON 44: TOP 44,TOP(40): LEFT 44,LEFT(43)+20: HEIGHT 44,23: WIDTH 44,20 BUTTON 45: TOP 45,TOP(40): LEFT 45,LEFT(44)+20: HEIGHT 45,23: WIDTH 45,20 FOR i%=40 TO 45 FONT_NAME i%,"Wingdings": CAPTION i%,CHR$(191+i%): ON_CLICK i%,Deplacer NEXT i% CAPTION 44,CHR$(229): CAPTION 45,CHR$(228) SPIN 46: TOP 46,TOP(40): LEFT 46,LEFT(45)+20: WIDTH 46,40: POSITION 46,5: MIN 46,1: MAX 46,50 ALPHA 47: TOP 47,TOP(30): WIDTH 47,10: LEFT 47,LEFT(46)+40: CAPTION 47,"pixels"
OPEN_DIALOG 55: FILTER 55,"fichier image BMP ou JPG|*.bmp*.jpg" SAVE_DIALOG 56: FILTER 56,"fichier image .BMP|*.bmp" IMAGE 57 ' Texte FORM 120: HIDE 120: BORDER_SMALL 120: COLOR 120,0,255,255 CAPTION 120,"- Texte à insérer -" TOP 120,50: LEFT 120,LEFT(0)+WIDTH(0): WIDTH 120,600: HEIGHT 120,600: FONT_BOLD 120 ON_CLOSE 120,Ftexte EDIT 121: PARENT 121,120: TOP 121,5: LEFT 121,5: WIDTH 121,150 TEXT 121,"Arial": ON_CLICK 121,Chp SPIN 122: PARENT 122,120: TOP 122,TOP(121): LEFT 122,WIDTH(121)+10: WIDTH 122,45 MIN 122,6: MAX 122,255: POSITION 122,12: ON_CHANGE 122,Chp2 CHECK 123: PARENT 123,120: TOP 123,TOP(122)+3: LEFT 123,LEFT(122)+50 CAPTION 123,"G" CHECK 124: PARENT 124,120: TOP 124,TOP(123): LEFT 124,LEFT(123)+30 CAPTION 124,"I" CHECK 125: PARENT 125,120: TOP 125,TOP(123): WIDTH 125,50: LEFT 125,LEFT(124)+30 CAPTION 125,"S" CHECK 126: PARENT 126,120: TOP 126,TOP(123): WIDTH 126,60: LEFT 126,LEFT(125)+30 CAPTION 126,"Centrer" FOR i% = 123 TO 126: ON_CLICK i%,Chp2: NEXT i% pol$ = "Arial": sz% = 12 MEMO 127: PARENT 127,120: TOP 127,30: LEFT 127,0: WIDTH 127,WIDTH(120)-16 HEIGHT 127,HEIGHT(120)-72: FONT_NAME 127,pol$: FONT_SIZE 127,sz%: FONT_BOLD_OFF 127 LIST 129: PARENT 129,120: TOP 129,TOP(121)+25: LEFT 129,5: WIDTH 129,200 HEIGHT 129,HEIGHT(120)-70: FONT_NAMES_LOAD 129: ON_CLICK 129,Chp1: HIDE 129 COLOR 129,255,255,190 FOR i% = COUNT(129) TO 1 STEP -1 IF LEFT$(ITEM_READ$(129,i%),1)="@" THEN ITEM_DELETE 129,i% NEXT i% LIST 130: PARENT 130,120: HIDE 130
FORM 140: HIDE 140: BORDER_SMALL 140: COLOR 140,0,255,255: CAPTION 140,"- Aperçu -" PICTURE 141: PARENT 141,140: STRETCH_ON 141 BUTTON 142: PARENT 142,140: HEIGHT 142,20: TOP 142,HEIGHT(140)-29: LEFT 142,WIDTH(140)/2-40 CAPTION 142,"OK": ON_CLICK 142,Finaper
2D_TARGET_IS p%: DLL_ON mm$ coord$ = STRING$(8," ") btn = DLL_CALL1("GetMouseXY",ADR(coord$)): ' état boutons et coordonnées souris ofx = LEFT(0)+LEFT(p%)+8: ofy = TOP(0)+TOP(p%)+het%+20 WHILE btn<>2: ' Boucle d'attente de clic dans la surface de dessin xd% = VAL(LEFT$(coord$,4))-ofx: yd% = VAL(RIGHT$(coord$,4))-ofy IF xd%>=0 AND yd%>=0 AND xd%<wp% AND yd%<hp%: ' souris dans le dessin CAPTION 0,"Fct="+STR$(typ)+" x= "+STR$(xd%)+" y= "+STR$(yd%) IF btn=1: ' bouton gauche enfoncé GOSUB Dessiner END_IF END_IF PAUSE 100 btn = DLL_CALL1("GetMouseXY",ADR(coord$)) END_WHILE END ' ============================================================================== Quit: TERMINATE ' ============================================================================== Type: ' Type de dessin: libre, rectangle, cercle/ellipse, ou autre (à voir)... FOR i% = 11 TO 20 IF CHECKED(i%)=1 THEN typ = i%-11: EXIT_FOR NEXT i% SELECT typ CASE 0: 2D_PEN_SOLID: 2D_PEN_WIDTH POSITION(31): ' tracé libre CASE 1: 2D_PEN_DOT: 2D_PEN_WIDTH 1: 2D_PEN_COLOR 0,0,255: ' Trait CASE 2: 2D_PEN_DOT: 2D_PEN_WIDTH 1: 2D_PEN_COLOR 0,0,255: ' Rectangle CASE 3: 2D_PEN_DOT: 2D_PEN_WIDTH 1: 2D_PEN_COLOR 0,0,255: ' Ellipse CASE 4: ' Remplir CASE 5: ' Texte CASE 6: ' Coller END_SELECT IF typ = 5 THEN GOSUB Texte RETURN ' ============================================================================== Couleur: ' Couleur du tracé x%=MOUSE_X_POSITION(22): y%=MOUSE_Y_POSITION(22) r%=COLOR_PIXEL_RED(22,x%,y%): g%=COLOR_PIXEL_GREEN(22,x%,y%): b%=COLOR_PIXEL_BLUE(22,x%,y%) COLOR 21,r%,g%,b%: 2D_PEN_COLOR r%,g%,b% RETURN ' ============================================================================== Dessiner: xd% = MOUSE_X_POSITION(p%): yd% = MOUSE_Y_POSITION(p%) xa%=xd%: ya%=yd%: x1%=xd%: y1%=yd% btn = 1 IF typ = 6: ' coller FILE_SAVE p%,ftmp$: PAUSE 300: ' sauvegarde état précédent CLIPBOARD_PASTE 57: 2D_IMAGE_PASTE 57,xd%,yd%: RETURN: ' coller le clipboard END_IF CLIPBOARD_COPY p% WHILE btn = 1 btn = DLL_CALL1("GetMouseXY",ADR(coord$)) x% = MOUSE_X_POSITION(p%): y% = MOUSE_Y_POSITION(p%) IF x%<0 OR y%<0 OR x%>WIDTH(p%) OR y%>HEIGHT(p%) THEN GOTO ign CAPTION 0,"Fct="+STR$(typ)+" x= "+STR$(x%)+" y= "+STR$(y%) IF x%<>x1% OR y%<>y1% SELECT typ 2D_PEN_COLOR 0,0,0 CASE 0: ' tracé libre 2D_PEN_COLOR r%,g%,b% 2D_PEN_WIDTH POSITION(31): 2D_LINE x1%,y1%,x%,y% CASE 1: ' trait IF SCANCODE = 160 IF ABS(x%-xd%)<30 THEN x% = xd%: ' verticale IF ABS(y%-yd%)<30 THEN y% = yd%: ' horizontale END_IF CLIPBOARD_PASTE p%: 2D_LINE xd%,yd%,x%,y% CASE 2: ' rectangle/carré CLIPBOARD_PASTE p% ' IF CHECKED(61) = 1 THEN y% = yd%+x%-xd%: ' carré IF SCANCODE = 160 THEN y% = yd%+x%-xd%: ' carré 2D_LINE xd%,yd%,x%,yd%: 2D_POLY_TO x%,y%: 2D_POLY_TO xd%,y% 2D_POLY_TO xd%,yd% CASE 3: ' ellipse/cercle CLIPBOARD_PASTE p% rx%=(x%-xd%)/2: ry%=(y%-yd%)/2 ' IF CHECKED(61)=1 THEN ry%=rx% IF SCANCODE = 160 THEN ry% = rx%: ' cercle xc%=xd%+rx%: yc%=yd%+ry% 2D_POLY_FROM xc%+rx%,yc% FOR t=0 TO 2*pi STEP pi/180 2D_POLY_TO xc%+rx%*COS(t),yc%+ry%*SIN(t) NEXT t CASE 4: ' remplir CASE 5: ' texte CASE 6: ' coller END_SELECT x1%=x%: y1%=y% END_IF ign: PAUSE 50 END_WHILE ' bouton gauche relâché: tracé définitif IF typ = 0 IF SCANCODE = 160 THEN 2D_LINE x%,y%,xa%,ya%: ' rebouclage tracé libre ELSE CLIPBOARD_PASTE p%: 2D_PEN_SOLID: 2D_PEN_WIDTH POSITION(31): 2D_PEN_COLOR r%,g%,b% xa%=xd%: ya%=yd%: xf%=x%: yf%=y% SELECT typ CASE 1: GOSUB Destrait: ' trait CASE 2: GOSUB Desrec: ' rectangle/carré CASE 3: GOSUB Desell: ' ellipse/cercle CASE 4: 2D_FLOOD xa%,ya%,r%,g%,b%: ' remplir CASE 5: GOSUB Destex CASE 6: ' coller END_SELECT 2D_PEN_WIDTH 1: 2D_PEN_DOT: 2D_PEN_COLOR 0,0,255 END_IF RETURN ' ============================================================================== Destrait: IF SCANCODE = 160 IF ABS(x%-xd%)<30 THEN x% = xd%: ' verticale IF ABS(y%-yd%)<30 THEN y% = yd%: ' horizontale END_IF 2D_LINE xa%,ya%,xf%,yf% RETURN ' ============================================================================== Desrec: ' IF CHECKED(61) = 1 THEN yf% = yd%+xf%-xd% IF SCANCODE = 160 THEN yf% = yd%+xf%-xd% 2D_LINE xa%,ya%,xf%,ya%: 2D_POLY_TO xf%,yf%: 2D_POLY_TO xa%,yf%: 2D_POLY_TO xa%,ya% RETURN ' ============================================================================== Desell: rx%=(xf%-xa%)/2: ry%=(yf%-ya%)/2 ' IF CHECKED(61)=1 THEN ry%=rx% IF SCANCODE = 160 THEN ry% = rx%: ' cercle xc%=xa%+rx%: yc%=ya%+ry% 2D_POLY_FROM xc%+rx%,yc% FOR t=0 TO 2*pi STEP pi/180 2D_POLY_TO xc%+rx%*COS(t),yc%+ry%*SIN(t) NEXT t RETURN ' ============================================================================== Destex: IF COUNT(127) = 0 THEN RETURN PRINT_TARGET_IS p%: FONT_NAME p%,pol$ FONT_BOLD_OFF p%: FONT_ITALIC_OFF p%: FONT_UNDERLINE_OFF p% IF CHECKED(123)=1 THEN FONT_BOLD p% IF CHECKED(124)=1 THEN FONT_ITALIC p% IF CHECKED(125)=1 THEN FONT_UNDERLINE p% FONT_SIZE p%,sz%: FONT_COLOR p%,r%,g%,b%: 2D_FILL_COLOR 255,255,255 x% = xa%: y% = ya% FOR i% = 1 TO COUNT(127) a$ = ITEM_READ$(127,i%) PRINT_LOCATE x%,y%: PRINT a$: y%=y%+TEXT_HEIGHT(a$,p%) NEXT i% RETURN ' ============================================================================== Deplacer: IF typ = 0 THEN RETURN: ' (tracé libre, non déplaçable) i% = NUMBER_CLICK: j% = POSITION(46) SELECT i% CASE 40: xa%=xa%-j%: xf%=xf%-j%: ' gauche CASE 41: xa%=xa%+j%: xf%=xf%+j%: ' droite CASE 42: ya%=ya%-j%: yf%=yf%-j%: ' haut CASE 43: ya%=ya%+j%: yf%=yf%+j%: ' bas CASE 44: xf%=xf%-j%: yf%=yf%-j%: ' diminuer IF typ = 5 THEN IF sz%>4 THEN sz% = sz%-1 CASE 45: xf%=xf%+j%: yf%=yf%+j%: ' augmenter IF typ = 5 THEN sz% = sz%+1 END_SELECT CLIPBOARD_PASTE p%: 2D_PEN_SOLID: 2D_PEN_WIDTH POSITION(31): 2D_PEN_COLOR r%,g%,b% SELECT typ CASE 1: GOSUB Destrait CASE 2: GOSUB Desrec CASE 3: GOSUB Desell CASE 4 CASE 5: GOSUB Destex CASE 6 END_SELECT 2D_PEN_WIDTH 1: 2D_PEN_DOT: 2D_PEN_COLOR 0,0,255 RETURN ' ============================================================================== Annuler: IF typ=6: ' annuler coller CLS: FILE_LOAD p%,ftmp$: PAUSE 300 ELSE CLIPBOARD_PASTE p%: ' retour à l'état précédent END_IF RETURN ' ============================================================================== SauvRest: i% = NUMBER_CLICK SELECT i% CASE 80: ' Ouvrir f$ = FILE_NAME$(55) IF LEN(f$)<5 THEN RETURN IF UPPER$(RIGHT$(f$,4))<>".BMP" OR UPPER$(RIGHT$(f$,4))<>".JPG" MESSAGE "Format non BMP ou JPG !"+CHR$(13)+"Chargement ignoré." ELSE FILE_SAVE p%,f$ END_IF CASE 81: ' Enregistrer f$ = FILE_NAME$(56) IF LEN(f$)<5 THEN RETURN IF UPPER$(RIGHT$(f$,4))<>".BMP" MESSAGE "Format non BMP !"+CHR$(13)+"Sauvegarde annulée." ELSE FILE_SAVE p%,f$ END_IF CASE 82: ' Aperçu FILE_SAVE p%,ftmp$ WIDTH 141,wp%/2: HEIGHT 141,hp%/2 WIDTH 140,wp%/2+16: HEIGHT 140,hp%/2+54 TOP 142,HEIGHT(141): LEFT 142,WIDTH(141)/2-40 FILE_LOAD 141,ftmp$ SHOW 140 CASE 83: ' Imprimer CLIPBOARD_COPY p% ' EXECUTE_WAIT iv$+" /clippaste /print" CASE 84: ' Quitter TERMINATE END_SELECT RETURN ' ============================================================================== Format: i% = NUMBER_CLICK SELECT i% CASE 90: ' A4 wp% = 778: hp% = wp%*297/210: HEIGHT 0,hp%+het%+hb%+8 CASE 91: ' A4 paysage wp% = 1100: hp% = 778: WIDTH 0,wp%+50: HEIGHT 0,hp%+het%+hb%+8 CASE 92: ' 1/2 A4 wp% = 778: hp% = wp%*297/420 CASE 93: ' 800x600 wp% = 800: hp% = 600: WIDTH 0,wp%+50: HEIGHT 0,hp%+het%+hb%+8 CASE 94: ' plein écran wp% = SCREEN_X-16: hp%=SCREEN_Y-het%-hb%-48: WIDTH 0,SCREEN_X: HEIGHT 0,SCREEN_Y-40 END_SELECT WIDTH p%,wp%: HEIGHT p%,hp% WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+hb%+8 RETURN ' ============================================================================== Raztou: ' Effacement total i%=MESSAGE_CONFIRMATION_YES_NO("Effacer totalement le dessin ?") IF i% = 1 ' WIDTH p%,wp%: HEIGHT p%,wp% 2D_FILL_COLOR 255,255,255: CLS: 2D_FILL_COLOR r%,g%,b% END_IF RETURN ' ============================================================================== Finaper: HIDE 140 RETURN ' ============================================================================== Texte: IF WIDTH(0)>(SCREEN_X-WIDTH(120)) LEFT 120,SCREEN_X-WIDTH(120) ELSE LEFT 120,LEFT(0)+WIDTH(0) END_IF SHOW 120 RETURN Ftexte: HIDE 120 MARK_ON 11 RETURN ' ============================================================================== Chp: SHOW 129 RETURN Chp1: HIDE 129 pol$ = ITEM_INDEX$(129): TEXT 121,pol$: FONT_NAME 127,pol$ RETURN Chp2: IF CLICKED(126) = 1: ' centrage IF COUNT(127) = 0 THEN RETURN j% = 0 FOR i% = 1 TO COUNT(127) a$ = TRIM$(ITEM_READ$(127,i%)): IF TEXT_WIDTH(a$,130)>j% THEN j%=TEXT_WIDTH(a$,130) NEXT i% FOR i% = 1 TO COUNT(127) a$ = TRIM$(ITEM_READ$(127,i%)) WHILE TEXT_WIDTH(a$,130)<j%:a$=" "+a$+" ": END_WHILE ITEM_DELETE 127,i%: ITEM_INSERT 127,i%,RTRIM$(a$) NEXT i% ELSE FONT_BOLD_OFF 127: FONT_ITALIC_OFF 127: FONT_UNDERLINE_OFF 127 FONT_BOLD_OFF 130: FONT_ITALIC_OFF 130: FONT_UNDERLINE_OFF 130 IF CHECKED(123)=1 THEN FONT_BOLD 127: FONT_BOLD 130 IF CHECKED(124)=1 THEN FONT_ITALIC 127: FONT_ITALIC 130 IF CHECKED(125)=1 THEN FONT_UNDERLINE 127: FONT_UNDERLINE 130 sz% = POSITION(122): FONT_SIZE 127,sz%: FONT_SIZE 130,sz% END_IF RETURN ' ============================================================================== Aide: rc$=CHR$(13)+CHR$(10) a$="===== DESSIN ====="+rc$+rc$ a$=a$+"- Menu Fichier: fonctions classiques Ouvrir, Enregistrer, Aperçu, Imprimer, Quitter"+rc$ a$=a$+" NB: la fonction Imprimer n'est pas implémentée (nécessite une ressource externe)."+rc$ a$=a$+"- Menu Format: proportions A4 portrait et paysage, 1/2 A4, 800x600 pixels, plein"+rc$ a$=a$+" écran."+rc$ a$=a$+"- RAZ Totale: effacement total de la surface de dessin."+rc$ a$=a$+"- Annul dernier: annulation de la dernière opération (retour à l'écran précédent)."+rc$+rc$
a$=a$+"Pour dessiner: choisir d'abord la couleur et l'épaisseur du trait de dessin, le type de"+rc$ a$=a$+"figure à tracer: dessin libre, trait droit, rectangle ou carré, ellipse ou cercle, puis"+rc$ a$=a$+"cliquer l'emplacement du dessin, tracer, relâcher."+rc$ a$=a$+"Jusqu'au relâchement, le dessin provisoire sera tracé en pointillés en suivant la souris"+rc$+rc$
a$=a$+"On peut tracer des formes géométriques élémentaires :"+rc$ a$=a$+"Pour le tracé de droites, si on est proche d'une horizontale ou d'une verticale, l'appui"+rc$ a$=a$+"simultané sur la touche 'Maj' forcera le tracé sur l'horizontale ou la verticale exacte."+rc$ a$=a$+"Pour les carrés et cercles (cas particuliers des rectangles et ellipses), il faut appuyer"+rc$ a$=a$+"simultanément sur la touche 'Maj'."+rc$ a$=a$+"Dans le cas de dessin libre, on peut forcer le rebouclage de l'arrivée sur le point de départ"+rc$ a$=a$+"en appuyant sur la touche 'Maj' en fin de tracé."+rc$ a$=a$+"Pour la fonction 'Remplissage', choisir la couleur de remplissage, puis cliquer un point"+rc$ a$=a$+"à l'intérieur de la zone à remplir."+rc$ a$=a$+"NB: La fonction dessin libre peut servir de gomme en choisissant la couleur d'effacement"+rc$ a$=a$+"et une largeur de trait suffisante."+rc$+rc$
a$=a$+"Une fois la figure tracée (relâchement du bouton souris), il est possible soit d'annuler"+rc$ a$=a$+"purement et simplement l'opération (menu 'Annul dernier'), soit de la déplacer finement"+rc$ a$=a$+"dans le dessin, d'un nombre choisi de pixels, à l'aide des boutons flèches (4 directions),"+rc$ a$=a$+"ou de la réduire (bouton flèche bas à gauche) ou agrandir (bouton flèche haut à droite)."+rc$+rc$
a$=a$+"Fonction Texte: le clic sur l'option provoque l'affichage d'une boîte à outil de texte,"+rc$ a$=a$+"qui permet de choisir la police, sa taille, ses enrichissements éventuels, puis de saisir"+rc$ a$=a$+"le texte à insérer. Il est possible après saisie du texte de le centrer sur lui-même:"+rc$ a$=a$+"le centrage est relatif (par rapport à la plus longue ligne) pour l'ensemble du texte saisi."+rc$ a$=a$+"L'insertion du texte se fera au clic souris dans la zone de dessin. La couleur du texte"+rc$ a$=a$+"sera la couleur courante."+rc$ a$=a$+"Comme pour les figures, on peut après insertion le déplacer ou le redimensionner."+rc$+rc$
a$=a$+"Collage d'un graphique: cocher d'abord l'option 'Coller', puis à l'aide d'un programme"+rc$ a$=a$+"externer 'copier' une image dans le presse-papier, puis cliquer l'emplacement récepteur"+rc$ a$=a$+"dans la zone de dessin (éviter de faire chevaucher le dessin par la fenêtre du programme"+rc$ a$=a$+"externe sous peine d'apparition d'effets indésirables). Il est prudent de faire une"+rc$ a$=a$+"sauvegarde préalable à l'opérarion de collage..." MESSAGE a$ RETURN ' ============================================================================== PS suppression des ascenseurs intempestifs de la Form Texte sous W8
Dernière édition par JL35 le Ven 27 Fév 2015 - 17:38, édité 1 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 16:45 | |
| Pas mal ! Tu n'as pas pensé au FORM pour l'insertion de texte, on se retrouve avec les 2 vilains ascenseurs. Bon, maintenant c'est facile à corriger A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 17:28 | |
| Où ça les ascenseurs ? dans la Form du texte (Form 120) ?
Ah oui, exact, c'est vrai que le Border_Small est inopérant sous W8 (va savoir pourquoi !) Je corrige tout de suite ci-dessus, j'ai compté large, pour être sûr. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 18:33 | |
| C'est nickel ! Heu..., sans abuser, avoir des couleurs pour le texte... Bon, je sors avant de me faire houspiller. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 19:44 | |
| Oui, parce que tu n'as pas lu le mode d'emploi (Aide). Tu les as les couleurs pour le texte, il s'affichera dans la couleur qui est sélectionnée. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 20:25 | |
| Ben voilà, encore une bonne occasion de me taire La prochaine fois, je lirais 7 fois le mode d'emploi, et je tournerais 7 fois ma langue dans ma bouche avant d'ouvrir ma grande Gueule. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 20:41 | |
| Allez, pour cette fois va en paix ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 20:59 | |
| Merci, Ho grand JL35. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Dessin(x) Ven 27 Fév 2015 - 21:37 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Dessin(x) | |
| |
| | | | Dessin(x) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |