FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Simuler l’appui de n’importe quelle touche.
par papydall Hier à 23:54

» Le Forum est en vacances.
par JL35 Hier à 21:20

» Une autre façon de terminer une application.
par JL35 Mar 22 Aoû 2017 - 14:27

» Compilateur FBPano
par Mike Lun 21 Aoû 2017 - 23:17

» Pb 20 (en analyse): plantage à l'appel d'un SUB
par Jack Lun 21 Aoû 2017 - 21:58

» Pb 19 (en analyse): libellé d'erreur dans des IF imbriqués
par Jack Lun 21 Aoû 2017 - 21:55

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Lun 21 Aoû 2017 - 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Lun 21 Aoû 2017 - 5:01

» Mettre en windows en veille
par papydall Lun 21 Aoû 2017 - 4:15

» Stretch_on ne stretch plus...
par papydall Dim 20 Aoû 2017 - 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Dim 20 Aoû 2017 - 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Dessin(x)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Froggy One

avatar

Nombre de messages : 391
Date d'inscription : 06/01/2012

MessageSujet: Re   Mar 24 Fév 2015 - 18:41

@ JL35 : Avec grand plaisir ! Ne crois pas que je garde des choses pour moi, c'est juste que mon emploi du temps est très délayé. Là par exemple, dès que j'ai fermé cette fenêtre, j'écris (10 chapitres sur 30 à finir), et avant, je rattrapais un désherbage urgent... il me faudrait VRAIMENT une vie pour écrire, une autre pour coder, une troisième pour apprendre le piano... je suis un touche à tout. Au moins j'ai fini deux bouquins, un jour, c'est sûr, je finirai un programme !!! Laughing

À bientôt !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gaeldwest.wordpress.com
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Mar 24 Fév 2015 - 19:23

Essaie de faire du dédoublement (détriplement dans ton cas ?) de personnalité, ça pourrait aider...

Je comprends bien, mais ne te plains pas, tu verras quand tu seras retraité comme moi tu seras encore plus débordé !
Je plaisante, c'est ce qu'on dit, c'est quand même la belle vie, mais ne sois pas trop pressé d'y arriver, ça ne dure qu'un temps...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Froggy One

avatar

Nombre de messages : 391
Date d'inscription : 06/01/2012

MessageSujet: Re   Mar 24 Fév 2015 - 20:24

Very Happy   Smile   Laughing Nous essaierons !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gaeldwest.wordpress.com
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 0:32

Sans doute la dernière version, je la remets en entier ici car elle a bien grossi, en particulier parce que j'ai ajouté une barre de menu (avec ouverture/sauvegarde) et surtout une fonction insertion de texte.
Il y a également une fonction impression, elle n'est pas intégrée because ça nécessite une ressource externe...
La fonction Texte permet de préparer le texte à part, de le mettre en forme (police, taille, enrichissements), éventuellement de le centrer sur lui-même (par rapport à la ligne la plus longue), puis de l'insérer au clic souris, avec la couleur courante (avec possibilité de déplacements, ou d'annulation).
Avec une petite aide succincte.
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$
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
ftmp$ = "C:\TEMP\Tmp.bmp"

wp% = 800: hp% = 600: ' Dimensions du picture de dessin
het% = 30: ' hauteur de l'en-tête

WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+54: 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%
'    ofx = LEFT(0)+LEFT(p%)+8: ofy = TOP(0)+TOP(p%)+40
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"
    FOR i% = 90 TO 93: 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,30: 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

CONTAINER 60: TOP 60,TOP(10): HEIGHT 60,HEIGHT(10): LEFT 60,LEFT(10)+WIDTH(10)
    WIDTH 60,95
  CHECK 61: PARENT 61,60: TOP 61,0: LEFT 61,0: CAPTION 61,"Carré/Cercle"
  CHECK 62: PARENT 62,60: TOP 62,15: LEFT 62,0: CAPTION 62,"Rebouclage"

' Palette
CONTAINER 20: LEFT 20,LEFT(60)+WIDTH(60)+0: 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

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,500: 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,55: 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)-70: 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)-65: 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%+17
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%
        CAPTION 0,"x= "+STR$(xd%)+"  y= "+STR$(yd%)
        btn = DLL_CALL1("GetMouseXY",ADR(coord$))
        IF btn=1: ' bouton gauche enfoncé
            GOSUB Dessiner
        END_IF
    ELSE
      btn = DLL_CALL1("GetMouseXY",ADR(coord$))
    END_IF
    PAUSE 100
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: ' Collet
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:
ofx = LEFT(0)+LEFT(p%)+8: ofy = TOP(0)+TOP(p%)+het%+17
xd%=VAL(LEFT$(coord$,4))-ofx: yd% = VAL(RIGHT$(coord$,4))-ofy
xa%=xd%: ya%=yd%: x1%=xd%: y1%=yd%
btn = 1
IF typ = 6: ' coller
    FILE_SAVE p%,ftmp$
    CLIPBOARD_PASTE 57: 2D_IMAGE_PASTE 57,xd%,yd%: RETURN
END_IF
CLIPBOARD_COPY p%
WHILE btn = 1
    btn = DLL_CALL1("GetMouseXY",ADR(coord$))
    x%=VAL(LEFT$(coord$,4))-ofx: y% = VAL(RIGHT$(coord$,4))-ofy
    IF x%<0 OR y%<0 OR x%>WIDTH(p%) OR y%>HEIGHT(p%) THEN GOTO ign
    CAPTION 0,"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
                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é
                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%
                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
            CASE 6
        END_SELECT
        x1%=x%: y1%=y%
    END_IF
ign:
    PAUSE 50
END_WHILE
' bouton gauche relâché: tracé définitif
IF typ = 0
    IF CHECKED(62)=1 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
    END_SELECT
    2D_PEN_WIDTH 1: 2D_PEN_DOT: 2D_PEN_COLOR 0,0,255
END_IF
RETURN
' ==============================================================================
Destrait:
2D_LINE xa%,ya%,xf%,yf%
RETURN
' ==============================================================================
Desrec:
IF CHECKED(61) = 1 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%
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
    CASE 45: xf%=xf%+j%: yf%=yf%+j%: ' augmenter
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=5: ' coller
    FILE_LOAD p%,ftmp$
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
        
    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%+54
    CASE 91: ' A4 paysage
        wp% = 1100: hp% = 778: WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+54
    CASE 92: ' 1/2 A4
        wp% = 778: hp% = wp%*297/420
    CASE 93: ' 800x600
        wp% = 800: hp% = 600
END_SELECT
WIDTH p%,wp%: HEIGHT p%,hp%
WIDTH 0,wp%+16: HEIGHT 0,hp%+het%+54: ' WIDTH p%,wp%: HEIGHT p%,hp%
RETURN
' ==============================================================================
Raztou:
' Effacement total
i%=MESSAGE_CONFIRMATION_YES_NO("Effacer totalement le dessin ?")
IF i% = 1
    2D_FILL_COLOR 255,255,255: CLS: 2D_FILL_COLOR r%,g%,b%
END_IF
RETURN
' ==============================================================================
Finaper:
HIDE 140
RETURN
' ==============================================================================
Texte:
LEFT 120,LEFT(0)+WIDTH(0)
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."+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,"+rc$
a$=a$+"le type de figure à tracer: dessin libre, trait droit, rectangle ou carré,"+rc$
a$=a$+"ellipse ou cercle, puis cliquer l'emplacement du dessin, tracer, relâcher."+rc$
a$=a$+"Jusqu'au relâchement, le dessin provisoire sera tracé en pointillés en suivante"+rc$
a$=a$+"la souris."+rc$+rc$
a$=a$+"On peut tracer des formes géométriques élémentaires, pour les carrés et cercles"+rc$
a$=a$+"(cas particuliers des rectangles et ellipses), il faut cocher préalablement la"+rc$
a$=a$+"case 'Carré/Cercle'."+rc$
a$=a$+"Pour la fonction 'Remplissage', choisir la couleur de remplissage, puis cliquer"+rc$
a$=a$+"un point à l'intérieur de la zone à remplir."+rc$
a$=a$+"Dans le cas de dessin libre, on peut forcer le rebouclage de l'arrivée sur le point"+rc$
a$=a$+"de départ en cochant la case 'Rebouclage'."+rc$
a$=a$+"La fonction dessin libre peut servir de gomme en choisissant la couleur d'éffacement"+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 de la"+rc$
a$=a$+"déplacer finement dans le dessin, d'un nombre choisi de pixels, à l'aide des boutons"+rc$
a$=a$+"flèches (4 directions), ou de la réduire (bouton flèche bas à gauche) ou agrandir"+rc$
a$=a$+"(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"+rc$
a$=a$+"texte, qui permet de choisir la police, sa taille, ses enrichissements éventuels,"+rc$
a$=a$+"puis de saisir le texte à insérer. Il est possible après saisie du texte de le"+rc$
a$=a$+"centrer sur lui-même: le centrage est relatif 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"+rc$
a$=a$+"du texte sera la couleur courante."
MESSAGE a$
RETURN
' ==============================================================================

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5523
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 2:26

JL35 a écrit:
ET puis je ne veux pas mettre de l'anglais sur mes boutons, na !  

Oui, les boutons sont les tiens et tu y mets ce que You want.

JL35 a écrit:
Il y a également une fonction impression, elle n'est pas intégrée because ça nécessite une ressource externe...

Je constate que tu t’es concilié  avec l’english

Correction de frappe : enlever le e terminale de suivante
Ligne 405
Code:
 a$=a$+"Jusqu'au relâchement, le dessin provisoire sera tracé en pointillés en suivante"+rc$

A part ça, merci pour le partage de cet utilitaire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 12:14

Par contre il y a un tout petit défaut à ton squelette de logiciel:
Comme tu as voulu éviter e prendre la grosse DLL de Klaus, tu n'as pas de détection de la version de Windows et d'ajustement de la taille des bordure donc sous Windows 8, pour toute les fenêtres, tu as les ascenseurs sauf si tu modifies les valeurs dans le programme. C'est dommage que tu n'es pas mis de variable pour la taille des bordures comme tu l'as fait pour les entêtes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 14:56

Évidemment, le puriste papydall ne m'a pas loupé, tout ça à cause d'un because...

@Jicehel désolé, mais ne travaillant que sous W7 (ou à la rigueur XP) je n'ai pas été confronté à ce problème de bordures (W8 ?), et je ne vois pas du tout ce qu'il y a à corriger...
Entre parenthèses, il doit bien y avoir moyen de détecter la version de Windows sans la dll de Klaus ?

Là je vais intégrer une petite amélioration, l'ajustage de la taille du texte après insertion (en plus des déplacements), comme pour les figures géométriques, ça doit être facile à faire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:12

Concernant la taille des fenêtres, il y a une solution simple.

c'est ici => http://panoramic.free-boards.net/t4018-les-fenetres-sous-w8-avec-kgf-dll#46980

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:19

Merci Jean-Claude, après un coup d'oeil rapide sur ton lien il semble qu'on peut le faire en panoramic pur (Klaus), je vais regarder de plus près.
Pour redimensionner la taille des textes après insertion, c'est fait (je module la taille de la police):
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 (+1)
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%
'    ofx = LEFT(0)+LEFT(p%)+8: ofy = TOP(0)+TOP(p%)+40
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"
    FOR i% = 90 TO 93: 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

CONTAINER 60: TOP 60,TOP(10): HEIGHT 60,HEIGHT(10): LEFT 60,LEFT(10)+WIDTH(10)
    WIDTH 60,95
  CHECK 61: PARENT 61,60: TOP 61,0: LEFT 61,0: CAPTION 61,"Carré/Cercle"
  CHECK 62: PARENT 62,60: TOP 62,15: LEFT 62,0: CAPTION 62,"Rebouclage"

' Palette
CONTAINER 20: LEFT 20,LEFT(60)+WIDTH(60)+0: 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,500: 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,55: 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)-70: 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)-65: 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%)+hb%
ofy = TOP(0)+TOP(p%)+30+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
                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é
                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%
                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 CHECKED(62)=1 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:
2D_LINE xa%,ya%,xf%,yf%
RETURN
' ==============================================================================
Desrec:
IF CHECKED(61) = 1 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%
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
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:
LEFT 120,LEFT(0)+WIDTH(0)
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."+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. Pour les carrés et cercles (cas"+rc$
a$=a$+"particuliers des rectangles et ellipses), il faut cocher préalablement la case 'Carré/Cercle'."+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$+"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 cochant la case 'Rebouclage'."+rc$
a$=a$+"La fonction dessin libre peut servir de gomme en choisissant la couleur d'effacement et"+rc$
a$=a$+"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
' ==============================================================================

Un truc qui me chiffonne concernant la taille des bordures:
Est-ce que sous W8 les paramètres des fenêtres Panoramic (Form) sont différents de W7 ? qui sont ceux-ci:
- bandeau supérieur: 30 pixels (ou 26 pixels si Border_Small)
- bordures gauche, droite et inférieure: 8 pixels

Edit: modif pour faire disparaître les barres de défilement au changement de format. Et mise à jour de l'aide.
ET ajout de tempos dans la fonction coller.


Dernière édition par JL35 le Ven 27 Fév 2015 - 0:16, édité 6 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:32

Une petite SUB simple pour détecter la taille des bords et du bandeau suivant la version de Windows.
Merci à Klaus.
Code:
dim bord%, bandeau%
detection_des_dimensions_des_fenetres()
print " largeur d'un bord: " + str$(bord%)
print " hauteur du bandeau: " + str$(bandeau%)

END
'===============================================
SUB detection_des_dimensions_des_fenetres()
  full_space 0
  if object_exists(1)=0
      memo 1 : full_space 1
      bord% = (width(0)-width(1))/2
      bandeau% = height(0) - height(1) - bord%
      delete 1
      ' hide 0:' à mettre en service suivant que.....
  else
      message "La SUB detection_des_dimensions_des_fenetres() doit être applée en priorité" : terminate
  end_if
END_SUB


A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:39

On s'est croisés JC
Je modifierais même un peu:
Code:
dim bord%, bandeau%
detection_des_dimensions_des_fenetres()
print " largeur d'un bord: " + str$(bord%)
print " hauteur du bandeau: " + str$(bandeau%)
END
'===============================================
SUB detection_des_dimensions_des_fenetres()
DIM_LOCAL w,h
  w=WIDTH(0): h=HEIGHT(0): full_space 0
  memo 900 : full_space 900
  bord% = (width(0)-width(900))/2
  bandeau% = height(0) - height(900) - bord%
  delete 900: WIDTH 0,w: HEIGHT 0,h
END_SUB
(dans ta sub tu testes l'existence du memo, mais comme tu le supprimes à chaque passage...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:48

Ce qui est curieux c'est que sous W8 seul le bandeau est différent (31 Pixels).

Cela explique pourquoi certains codes (créer sous W7) n'ont pas besoin d'être rectifiés pour W8.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 15:53

S'il n'y a que ça, effectivement pas la peine de se casser la tête, autant prendre ses aises et compter 31 pixels dans tous les cas...

Je mets donc ma variable het% (ligne 14) à 31 au lieu de 30.
Mais en cas de changement de format, je n'arrive pas à éviter dans tous les cas l'apparition des barres de défilement... ça dépend si on définit d'abord les dimensions du Form puis du Picture, ou l'inverse. Il suffit de tirer un peu vers le bas ou la droite pour les faire disparaître, mais ce n'est pas très joli.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5523
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:08

JL35 a écrit:
Entre parenthèses, il doit bien y avoir moyen de détecter la version de Windows sans la dll de Klaus ?

Voici une solution brute

Code:
execute_wait "cmd /c winver"

Puis il faut faire ce qu'il faut pour en exploiter le résultat
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:12

Je n'avais pas cité ton nom, mais je me doutais bien qu'il y avait une solution simple et qu'elle viendrait de toi, notre savant papydall.
A mettre sous le coude, ça peut servir, pour l'instant j'ai une solution rustique mais qui doit être satisfaisante.

L'inconvénient de winver c'est que le résultat est sous forme d'une fenêtre graphique, donc pas très exploitable par programme, à moins qu'il y ait un paramètre ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5523
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:19

C'est ce que j'ai appelé une solution brute !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:26

Il y a la commander 'ver' au lieu de 'winver' qui donne la version système sous forme numérique, qu'il faut interpréter ensuite...
Ainsi pour moi ça me renvoie 6.1.7601, ce qui correspond à Windows 7, Service Pack 1.
Pas très parlant, il faut avoir la table de correspondance (je l'ai, allez, je partage ! Very Happy ):
Code:
execute_wait "Cmd.exe /c ver | clip"
print clipboard_string_paste$
end

Windows 1.0 1.04
Windows 2.0 2.11
Windows 3.0 3
Windows 95 4.0.950
Windows XP 5.1.2600
Windows XP Professional x64 Edition 5.2.3790
Windows Home Server 5.2.3790
Windows Server 2003 5.2.3790
Windows Server 2003, Service Pack 1 5.2.3790.1180
Windows Server 2003 5.2.3790.1218
Windows Vista, RTM (Release to Manufacturing) 6.0.6000.16386
Windows Vista 6.0.6000 / Windows Server 2008 6.0.6001
Windows Vista, Service Pack 2 / Server 2008 Sp2 6.0.6002
Windows 7, RTM (Release to Manufacturing) 6.1.7600.16385
Windows 7 6.1.7600
Windows 7, Service Pack 1 6.1.7601
Windows Server 2008 R2, RTM (Release to Manufacturing) 6.1.7600.16385
Windows 8, RTM (Release to Manufacturing) 6.2.9200.16384
Windows 8 6.2.9200
Windows Server 2012 6.2.9200
Windows 8.1 6.3.9600.16384.130821-1623
Windows Server 2012 R2 6.3.9600
Windows 10 Technical Preview 6.4.9841


Dernière édition par JL35 le Jeu 26 Fév 2015 - 16:35, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5523
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:33

Je connais cette commande et elle me renvoie exactement 6.1.7601, comme chez toi.
Je n'ai jamais su interpréter ce résultat.
Moi, je suis sous Windows 7 Edition Intégrale.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 16:36

Voilà ami papydall, tu as la réponse ci-dessus ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5523
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 17:22

Veuillez tester ce code

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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 17:22

Je vois que vous avez trouvé des solutions sympas. Bon, je bricole encore dans la chambre de ma fille et je regarderais plus attentivement tout ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 18:29

J'ai agrandi un peu les tolérances pour faire disparaître les barres de défilement en cas de changement de format, et pour ne pas être obligé de tester la version de Windows...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 20:00

@JL35
Je viens de tester ta version de la page précédente.

Il y a toujours les ascenseurs, mais je pense avoir trouvé pourquoi.
Si je modifie la ligne 15
Code:
hb% = 39: ' hauteur du bandeau supérieur et bordure inférieure form 0 (W8)

Là c'est bon ! (38 c'est plus bon)
Je pense que hb%=39 doit se lire 31+8 (Hauteur du bandeau+hauteur du bord inférieur, d'ailleurs tu l'écris en commentaire Very Happy ).


@Papydall ta SUB Window_Ver() fonctionne bien, la fenêtre noir n’apparaît qu'une fraction de seconde.
On peut l'utiliser l'ors d'une installation.


A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5928
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 20:27

@Jean Claude
Je suis quand même perplexe, 30+8 (W7) ou 31+8 (W8) d'accord pour bordure normale, mais moi j'ai mis Border_Small 0, ce qui doit faire 26+8 (et sans doute 27+8 en W8)
Bon, si ça marche avec 39 mettons 39, on ne va pas pinailler, au prix où est le pixel !

Papydall, tu aurais pu l'appeler Windows_Ver au lieu de Window_Ver ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Dessin(x)   Jeu 26 Fév 2015 - 20:33

En border_small, voici ce que donne mon petit code:
Code:
fenêtre normale:
  Largeur totale: 600
  Hauteur totale: 480
mémo:
  Largeur utile: 584
  Hauteur utile: 441
bords gauche, bas, droit: 8
titre: 31

fenêtre plein écran:
  Largeur totale: 1366
  Hauteur totale: 768
mémo:
  Largeur utile: 1350
  Hauteur utile: 729
bords gauche, bas, droit: 8
titre: 31

fenêtre plein écran avec menu:
  Largeur totale: 1366
  Hauteur totale: 768
mémo:
  Largeur utile: 1350
  Hauteur utile: 709
bords gauche, bas, droit: 8
titre: 31
menu: 20

dimensions écran:
  Largeur utile: 1366
  Hauteur utile: 768
Donc, sous W8, pas de changement entre border_normal et border_small:
bord = 8
titre = 31
menu = 20
La seule différence est la disparition des boutons Minimaliser et Maximiser
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Dessin(x)   

Revenir en haut Aller en bas
 
Dessin(x)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Ce n'est plus seulement un dessin...
» Art-Of-Spirit cherche professeurs de graphisme, dessin et écriture
» [Résolu] sprite dessin
» Dessin 3D
» Possibilité de créer des mini dessin animé ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: