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 |
|
|
| Pseudo-objet - Générateur de code | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: Pseudo-objet - Générateur de code Dim 19 Déc 2010 - 22:02 | |
| Bonjour, Voici un générateur de code pour afficher des pseudo objet : Quelques objets :Polygone : Polygone 2D Image scrollabe : Image qui peut défiler Dialogue Couleurs : Une boîte de dialogue de couleurs (moi ça me sauve 10 minutes) Bouton Slit : Un bouton avec une flèche pour ouvrir un menu contextuel avec des objets dedans. Horloge : Affiche l'heure. Choix avec trotteuse et cadran. Le nombre en parenthèses, c'est le nombre d'objet que nécessite ce pseudo-objet. - Citation :
Mise à jour 2010/12/22 12:00
Nouvelle version 0.3. Code en plein écran mais sans nouvelle fenêtre. Nouveau pseudo-objet 'horloge' Voici le code : - Code:
-
label time dim i,j,pi,minute,seconde,heure dim angle_heure,angle_minute,angle_seconde,angle
pi = 3.14159265358979323846264337
heure=val(left$(time$,2)) minute=val(mid$(time$,4,2)) seconde=val(right$(time$,2))
picture 1 left 1,0 top 1,0 width 1,130 height 1,131 2d_target_is 1 2d_fill_color 255,255,255
edit 2 left 2,2 top 2,108 width 2,126 text 2,time$
timer 3 timer_interval 3,500 on_timer 3,time
end
time: cls text 2,time$ heure=val(left$(time$,2)) minute=val(mid$(time$,4,2)) seconde=val(right$(time$,2)) 2d_pen_color 0,0,0 2d_pen_width 2 2d_rectangle 1,1,130,131 2d_circle 65,55,50
2d_pen_width 1 for i=1 to 12 angle = i/12*(2*pi)+0.5*pi 2d_line 65-45*cos(angle),55-45*sin(angle),65-50*cos(angle),55-50*sin(angle) next i
if heure>=12 then heure=heure-12 angle_heure = heure/12*(2*pi)+0.5*pi angle_minute = minute/60*(2*pi)+0.5*pi angle_seconde = seconde/60*(2*pi)+0.5*pi 2d_pen_width 2:2d_line 65,55,65-35*cos(angle_heure),55-35*sin(angle_heure) 2d_line 65,55,65-45*cos(angle_minute),55-45*sin(angle_minute) 2d_pen_color 0,0,255:2d_pen_width 1 2d_line 65,55,65-45*cos(angle_seconde),55-45*sin(angle_seconde) 2d_pen_color 0,0,0 2d_pen_width 7:2d_line 65,55,65,55 return Amusez-vous bien ! @ Klaus Tu peux m'aider à ajouter tes pseudo-objet si tu veux.
Dernière édition par Nicolas le Mer 22 Déc 2010 - 18:06, édité 2 fois |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Pseudo-objet - Générateur de code Dim 19 Déc 2010 - 23:03 | |
| Pas mal comme programme Nicolas, il y a de l'idée... Surtout pour ton âge (98 ans ????) Je suppose que c'est le deuxième code qui est à jour. Une première remarque: quand on fait 'Copier' du code généré, il manque les retour chariot/interlignes après chaque ligne, tout est collé. Il faudrait remplacer la ligne 586 par: - Code:
-
copy$=copy$+item_read$(4,i)+a$+CHR$(13)+CHR$(10) | |
| | | Invité Invité
| Sujet: Re: Pseudo-objet - Générateur de code Dim 19 Déc 2010 - 23:07 | |
| pour l'age ok, j'ai environ XX.
JL35, a$ vaut chr$(10)
par coller est-ce que tu veux dire :
1. exempleexemple
ou
2. exemple exemple
|
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Pseudo-objet - Générateur de code Dim 19 Déc 2010 - 23:14 | |
| Pardon Nicolas, je n'avais pas remarqué le a$= chr$(10) Simplement j'ai collé dans le Bloc-Notes et toutes les lignes étaient collées entre elles en une seule grande ligne: exempleexemple.
Je regarde de plus près, mais à mon avis il faut rajouter un chr$(13)
Pour l'âge, 98 c'est ce qui s'affiche sous ton pseudo ! Bizarre, quand je colle le code généré dans le Bloc-Note tout est collé, mais si je le colle dans l'éditeur Panoramic là il y a bien les sauts de ligne. Mais il me semble quand même que ce serait plus propre avec a$ = chr$(13)+chr$(10) plutôt qu'avec seulement chr$(10)
Dernière édition par JL35 le Dim 19 Déc 2010 - 23:21, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objet - Générateur de code Dim 19 Déc 2010 - 23:20 | |
| Joli générateur. Il y a deux oublis de guillemets dans le code généré d'un SLIT - je l'ai corrigé. Mais surtout, en ligne 60, le on_change est en trop. La fonction décclenchée par on_change devrait être invoquée d'une autre façon, car tu déclenches automatiquement le on_change en générant le code pour un objet - c'est item_add qui déclenche on_change. Or, tu déclenches un on_change pour chaque item_add, et cela se produit de façon asynchrone par rapport aux ajouts dans le mémo, provoquant ainsi un plantage magnifique qui ne peut même pas être intercepté par un on_error. Déclenche change2 par un bouton supplémentaire, et tout ce passera bien. Pour le moment, j'ai mis la ligne en commentaire. Mes trois petites corrections sont marquées "Klaus" dans un commentaire. Voici le code modifié: - Code:
-
label forme_change,choisir,generer,spin_change,bar_change,annule,new,colordialog label ok,numero,copy,agrandir_code,change,close_text,change2
dim i,j,a$,mess,ar,so,numero$,copy$,caract dim x0,y0,r,px,py,px2,py2,n,Pi,a
ar=1 a$=chr$(10) numero$=1
width 0,500 height 0,369 caption 0,"Pseudo-objet - Générateur de code"
' menus ________________________________________________________________________
main_menu 1000 sub_menu 1001:parent 1001,1000:caption 1001,"Objets" sub_menu 1003:parent 1003,1000:caption 1003,"Code" sub_menu 1002:parent 1002,1001:caption 1002,"Numéro d'objet à partir de 1":on_click 1002,numero
sub_menu 1004:parent 1004,1003:caption 1004,"Nouveau":on_click 1004,new sub_menu 1005:parent 1005,1003:caption 1005,"Générer":on_click 1005,generer sub_menu 1006:parent 1006,1003:caption 1006,"Copier":on_click 1006,copy sub_menu 1007:parent 1007,1003:caption 1007,"Voir le code en plein écran":on_click 1007,agrandir_code
' principal ____________________________________________________________________
alpha 1 left 1,5 top 1,5 caption 1,"Sélectionnez un pseudo-objet :" font_size 1,10
combo 2 top 2,3 left 2,190 width 2,170 item_add 2,"Polygone (0)" item_add 2,"Image scrollabe (3)" item_add 2,"Boîte de dialogue couleurs (10)" item_add 2,"Bouton Slit (3)"
button 3 top 3,3 left 3,365 height 3,21 width 3,120 caption 3,"Choisir" font_size 3,10 on_click 3,choisir
memo 4 top 4,211 left 4,5 width 4,482 height 4,100 bar_both 4 font_name 4,"Courier New" ' on_change 4,change2 Klaus: cette instruction conduit au plantage !
picture 5 top 5,190 width 5,492 color 5,0,0,0 height 5,1
alpha 6 top 6,192 left 6,15 caption 6,"Code" font_size 6,10
j=332 for i=7 to 8 button i:left i,j:top i,192:height i,17:j=j+80 next i caption 7,"Nouveau":caption 8,"Générer" on_click 7,new:on_click 8,generer
button 700 height 700,17 left 700,252 top 700,192 caption 700,"Copier" on_click 700,copy
' contenu ______________________________________________________________________
alpha 9 hide 9 left 9,20 top 9,30 caption 9,"Nombre de cotés : "+a$+a$+"Angle :"+a$+a$+"Rayon :"+a$+a$+"Position (centre) :"+a$+a$+"X Y"
alpha 13 hide 13 left 13,250 top 13,30 caption 13,"Aperçu :"
picture 14 hide 14 top 14,45 left 14,210 width 14,275 height 14,130 2d_target_is 14 2d_rectangle 0,0,275,130
j=28 for i=10 to 12 spin i:hide i:left i,110:top i,j:width i,60:j=j+26 next i min 10,3:max 10,"100":position 10,"5" min 11,0:max 11,360 min 12,10:max 12,1000:position 12,"50" j=30 for i=15 to 16 spin i:hide i:left i,j:top i,130:width i,60:j=j+75 next i min 15,0:max 15,screen_x:position 15,130 min 16,0:max 16,screen_y:position 16,60
for i=10 to 12 on_change i,forme_change next i for i=15 to 16 on_change i,forme_change next i gosub forme_change
caption 9,"Dimension :"+a$+a$+"X Y"+a$+a$+"Position :"+a$+a$+"X Y"+a$+a$+"Couleur : "
j=30 for i=17 to 18 spin i:hide i:left i,j:top i,51:width i,60:j=j+75:min i,20 next i j=30 for i=19 to 20 spin i:hide i:left i,j:top i,103:width i,60:j=j+75:min i,0 next i max 17,screen_x:position 17,"200" max 18,screen_y:position 18,"200" max 19,screen_x max 20,screen_y
picture 21 hide 21 left 21,70 top 21,131 height 21,21 width 21,40 2d_target_is 21 2d_rectangle 0,0,40,21
button 22 hide 22 top 22,131 left 22,115 width 22,21 height 22,21 caption 22,"..." on_click 22,colordialog
edit 33 hide 33 left 33,123 top 33,54 width 33,200 text 33,"Choisir une couleur..."
spin 34 hide 34 top 34,53 left 34,80 min 34,20:max 34,screen_x position 34,152
' FORMS ________________________________________________________________________
form 23 hide 23 caption 23,"Choisir une couleur..." command_target_is 23
j=1 for i=24 to 26 track_bar i:height i,25:min i,0:max i,255:top i,j:position i,255:on_change i,bar_change spin i+3:top i+3,j+2:left i+3,150:width i+3,60:min i+3,0:max i+3,255:j=j+30:position i+3,255:on_change i+3,spin_change next i
j=216 for i=30 to 31 button i:width i,60:left i,j:height i,21:top i,70:j=j+65 next i caption 30,"Annuler":caption 31,"OK" on_click 30,annule:on_click 31,ok
picture 32 left 32,216 height 32,59 top 32,5 width 32,125 2d_target_is 32 2d_rectangle 0,0,125,59
width 23,354 height 23,120 border_small 23
' ______________________________________
form 900 hide 900 full_space 900 on_close 900,close_text command_target_is 900
memo 901 full_space 901 font_name 901,"Courier New" on_change 901,change bar_both 901
end
forme_change: 2d_target_is 14:cls 2d_rectangle 0,0,275,130 x0=position(15) Y0=position(16) r=position(12) n=position(10) a=position(11) pi=3.1415926535898 px=r*cos(a)+x0 py=r*sin(a)+y0 2d_poly_from px,py for j=1 to n px2=r*cos(a+2*pi*j/n)+x0 py2=r*sin(a+2*pi*j/n)+y0 2d_poly_to px2,py2 px=Px2 py=Py2 next j return
choisir: show 9 font_size 9,8 caption 9,"":font_bold_off 9 if text$(2)="Polygone (0)" ar=1 caption 6,"Code (cliquez sur générer pour afficher)" caption 9,"Nombre de cotés : "+a$+a$+"Angle :"+a$+a$+"Rayon :"+a$+a$+"Position (centre) :"+a$+a$+"X Y" left 13,250 top 13,30 caption 13,"Aperçu :" for i=9 to 16 show i next i for i=17 to 22 hide i next i active 8:hide 33:hide 34 so=1 end_if if text$(2)="Image scrollabe (3)" ar=1 show 9:hide 34:hide 33 top 19,103:top 20,103 left 21,70:top 21,131 top 22,131:left 22,115 for i=17 to 22 show i next i for i=10 to 16 hide i next i caption 6,"Code (cliquez sur générer pour afficher)" caption 9,"Dimension :"+a$+a$+"X Y"+a$+a$+"Position :"+a$+a$+"X Y"+a$+a$+"Couleur : " so=2 end_if if text$(2)="Boîte de dialogue couleurs (10)" ar=1 show 9:show 33:show 21:show 22:hide 34 caption 9,"Couleur par défaut : "+a$+a$+"Titre de la fenêtre : " left 21,123:top 21,28 left 22,168:top 22,28 left 33,123:top 33,54 for i=10 to 20 hide i next i so=3 end_if if text$(2)="Bouton Slit (3)" ar=1:show 9:show 33:show 19:show 20:show 21:show 22:show 34 for i=10 to 18 hide i next i caption 9,"Couleur de fond :"+a$+a$+"Longueur : "+a$+a$+"Texte : "+a$+a$+"Position :"+a$+a$+"X Y" top 19,129:top 20,129 top 33,80:left 33,60:text 33,"" left 21,113:top 21,28 left 22,158:top 22,28 so=4 end_if if text$(2)<>"Polygone (0)" and text$(2)<>"Image scrollabe (3)" and text$(2)<>"Boîte de dialogue couleurs (10)" and text$(2)<>"Bouton Slit (3)" for i=10 to 22 hide i next i hide 33:hide 34 if ar=1 font_size 9,12 caption 9,"Aucun résultat":font_bold 9 caption 6,"Code" end_if ar=1 end_if return
generer: if so=1 clear 4 item_add 4,"dim x0,y0,r,px,py,px2,py2,n,j,pi,a" item_add 4,"x0="+str$(position(15)) item_add 4,"y0="+str$(position(16)) item_add 4,"r="+str$(position(12)) item_add 4,"n="+str$(position(10)) item_add 4,"a="+str$(position(11)) item_add 4,"pi=3.1415926535898" item_add 4,"px=r*cos(a)+x0" item_add 4,"py=r*sin(a)+y0" item_add 4,"2d_poly_from px,py" item_add 4,"for j=1 to n" item_add 4," px2=r*cos(a+2*pi*j/n)+x0" item_add 4," py2=r*sin(a+2*pi*j/n)+y0" item_add 4," 2d_poly_to px2,py2" item_add 4," px=px2" item_add 4," py=py2" item_add 4,"next j" end_if if so=2 clear 4 item_add 4,"label bar_change" item_add 4,"" item_add 4,"scroll_bar "+numero$ item_add 4,"left "+numero$+","+str$(position(19)) item_add 4,"top "+numero$+","+str$(position(18)+position(20)) item_add 4,"width "+numero$+","+str$(position(17)) item_add 4,"min "+numero$+",0:max "+numero$+","+str$(position(17)) item_add 4,"on_change "+numero$+",bar_change" item_add 4,"" item_add 4,"scroll_bar "+str$(val(numero$)+1) item_add 4,"vertical "+str$(val(numero$)+1) item_add 4,"left "+str$(val(numero$)+1)+","+str$(position(17)+position(19)) item_add 4,"top "+str$(val(numero$)+1)+","+str$(position(20)) item_add 4,"height "+str$(val(numero$)+1)+","+str$(position(18)) item_add 4,"min "+str$(val(numero$)+1)+",0:max "+numero$+","+str$(position(18)) item_add 4,"on_change "+str$(val(numero$)+1)+",bar_change" item_add 4,"" item_add 4,"picture "+str$(val(numero$)+2) item_add 4,"left "+str$(val(numero$)+2)+","+str$(position(19)) item_add 4,"top "+str$(val(numero$)+2)+","+str$(position(20)) item_add 4,"width "+str$(val(numero$)+2)+","+str$(position(17)) item_add 4,"height "+str$(val(numero$)+2)+","+str$(position(18)) item_add 4,"color "+str$(val(numero$)+2)+","+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"bar_change:" item_add 4,"top "+str$(val(numero$)+2)+",position("+str$(val(numero$)+1)+")*-1+"+str$(position(19)) item_add 4,"height "+str$(val(numero$)+2)+","+str$(position(18))+"+position("+str$(val(numero$)+1)+")" item_add 4,"left "+str$(val(numero$)+2)+",position("+numero$+")*-1+"+str$(position(20)) item_add 4,"width "+str$(val(numero$)+2)+","+str$(position(17))+"+position("+numero$+")" item_add 4,"color "+str$(val(numero$)+2)+","+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"return" end_if if so=3 clear 4 item_add 4,"label bar_change,spin_change,annule,ok" item_add 4,"dim i,j" item_add 4,"" item_add 4,"form "+numero$ item_add 4,"caption "+numero$+","+chr$(34)+text$(33)+chr$(34) item_add 4,"command_target_is "+numero$ item_add 4,"" item_add 4,"j=1" item_add 4,"for i="+str$(val(numero$)+1)+" to "+str$(val(numero$)+3) item_add 4," track_bar i:height i,25:min i,0:max i,255:top i,j" item_add 4," spin i+3:top i+3,j+2:left i+3,150:width i+3,60:min i+3,0:max i+3,255:j=j+30" item_add 4,"next i" item_add 4,"position "+str$(val(numero$)+1)+","+str$(position(24)) item_add 4,"position "+str$(val(numero$)+2)+","+str$(position(25)) item_add 4,"position "+str$(val(numero$)+3)+","+str$(position(26)) item_add 4,"position "+str$(val(numero$)+4)+","+str$(position(24)) item_add 4,"position "+str$(val(numero$)+5)+","+str$(position(25)) item_add 4,"position "+str$(val(numero$)+6)+","+str$(position(26)) item_add 4,"" item_add 4,"j=216" item_add 4,"for i="+str$(val(numero$)+7)+" to "+str$(val(numero$)+8) item_add 4," button i:width i,60:left i,j:height i,21:top i,70:j=j+65" item_add 4,"next i" item_add 4,"caption "+str$(val(numero$)+7)+","+chr$(34)+"Annuler"+chr$(34)+":caption "+str$(val(numero$)+8)+","+chr$(34)+"OK"+chr$(34) item_add 4,"on_click "+str$(val(numero$)+7)+",annule:on_click "+str$(val(numero$)+8)+",ok" item_add 4,"" item_add 4,"picture "+str$(val(numero$)+9) item_add 4,"left "+str$(val(numero$)+9)+",216" item_add 4,"height "+str$(val(numero$)+9)+",59" item_add 4,"top "+str$(val(numero$)+9)+",5" item_add 4,"width "+str$(val(numero$)+9)+",125" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_fill_color "+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"" item_add 4,"width "+numero$+",354" item_add 4,"height "+numero$+",120" item_add 4,"border_small "+numero$ item_add 4,"" item_add 4,"for i="+str$(val(numero$)+1)+" to "+str$(val(numero$)+6) item_add 4," on_change i,bar_change" item_add 4,"next i" item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"bar_change:" item_add 4,"position "+str$(val(numero$)+4)+",position("+str$(val(numero$)+1)+")" item_add 4,"position "+str$(val(numero$)+5)+",position("+str$(val(numero$)+2)+")" item_add 4,"position "+str$(val(numero$)+6)+",position("+str$(val(numero$)+3)+")" item_add 4,"2d_fill_color position("+str$(val(numero$)+4)+"),position("+str$(val(numero$)+5)+"),position("+str$(val(numero$)+6)+")" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"return" item_add 4,"" item_add 4,"spin_change:" item_add 4,"position "+str$(val(numero$)+1)+",position("+str$(val(numero$)+4)+")" item_add 4,"position "+str$(val(numero$)+2)+",position("+str$(val(numero$)+5)+")" item_add 4,"position "+str$(val(numero$)+3)+",position("+str$(val(numero$)+6)+")" item_add 4,"2d_fill_color position("+str$(val(numero$)+1)+"),position("+str$(val(numero$)+2)+"),position("+str$(val(numero$)+3)+")" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"return" item_add 4,"" item_add 4,"ok:" item_add 4,"hide "+numero$ item_add 4,"return" item_add 4,"" item_add 4,"annule:" item_add 4,"hide "+numero$ item_add 4,"return" end_if if so=4 clear 4 item_add 4,"label slit,slit_hide" item_add 4,"dim i,j,slit" item_add 4,"" item_add 4,"on_click 0,slit_hide" item_add 4,"" item_add 4,"j="+str$(position(17)) item_add 4,"for i=1 to 2" item_add 4," button i:top i,"+str$(position(18))+":left i,j:width i,21:height i,21:j=j+21" item_add 4,"next i" item_add 4,"width "+str$(val(numero$)+1)+",10:font_size "+str$(val(numero$)+1)+",6:caption 2,"+chr$(34)+"6"+chr$(34)+":font_name "+str$(val(numero$)+1)+","+chr$(34)+"Webdings"+chr$(34) item_add 4,"on_click "+str$(val(numero$)+1)+",slit:on_click "+numero$+",slit_hide" item_add 4,"caption "+numero$+","+chr$(34)+text$(33)+chr$(34) item_add 4,"" : ' Klaus: 2ème guillemet manquant item_add 4,"picture "+str$(val(numero$)+2) item_add 4,"hide "+str$(val(numero$)+2) item_add 4,"top "+str$(val(numero$)+2)+","+str$(position(18)+21) item_add 4,"width "+str$(val(numero$)+2)+",152" : ' Klaus: guillemet terminal manquant item_add 4,"height "+str$(val(numero$)+2)+",23" item_add 4,"2d_target_is "+str$(val(numero$)+2) item_add 4,"2d_rectangle 0,0,"+str$(position(34))+",23" item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"slit:" item_add 4,"if slit=0" item_add 4," show "+str$(val(numero$)+2) item_add 4," slit=1" item_add 4,"else" item_add 4," hide "+str$(val(numero$)+2) item_add 4," slit=0" item_add 4,"end_if" item_add 4,"return" item_add 4,"" item_add 4,"slit_hide:" item_add 4,"slit=0:hide "+str$(val(numero$)+2) item_add 4,"return" end_if return
spin_change: position 24,position(27) position 25,position(28) position 26,position(29) 2d_fill_color position(27),position(28),position(29) 2d_target_is 32 2d_rectangle 0,0,125,59 return
bar_change: position 27,position(24) position 28,position(25) position 29,position(26) 2d_fill_color position(27),position(28),position(29) 2d_target_is 32 2d_rectangle 0,0,125,59 return
ok: hide 23 2d_target_is 21 2d_fill_color position(27),position(28),position(29) 2d_rectangle 0,0,40,21 return
colordialog: show 23 to_foreground 23 return
annule: hide 23 position 24,color_pixel_red(21,1,1) position 25,color_pixel_green(21,1,1) position 26,color_pixel_blue(21,1,1) return
new: mess=message_confirmation_yes_no("Voulez-vous vraiment créer un nouveau code?") if mess=1 then ar=0:clear 4:clear 901:text 2,"":caption 6,"Code":goto choisir if mess=0 or 2 then return return
numero: mess=message_input("Numéro à partir de...","Entrer le numéro du premier objet que le générateur va créer :",numero$) if (numeric(message_text$))=0 then message "Cette valeur n'est pas numérique!":return if len(message_text$)>6 then message "Ce numéro est trop élévé!":return numero$=message_text$ caption 1002,"Numéro d'objet à partir de "+numero$ return
copy: copy$="" for i=1 to count(4) copy$=copy$+item_read$(4,i)+a$ next i clipboard_string_copy copy$ return
agrandir_code: show 900 to_foreground 900 clear 4 caract=0 for i=1 to count(4) item_add 901,item_read$(4,i) caract=caract+len(item_read$(901,i)) next i caption 900,"Code en plein écran - "+str$(count(901))+" ligne(s) - "+str$(caract)+" caractère(s)" return
change: caract=0 for i=1 to count(901) caract=caract+len(item_read$(901,i)) next i caption 900,"Code en plein écran - "+str$(count(901))+" ligne(s) - "+str$(caract)+" caractère(s)" return
change2: caract=0 clear 901 for i=1 to count(4) item_add 901,item_read$(4,i) caract=caract+len(item_read$(901,i)) next i caption 900,"Code en plein écran - "+str$(count(901))+" ligne(s) - "+str$(caract)+" caractère(s)" return
close_text: mess=message_confirmation_yes_no("Voulez-vous transférer les modifications dans l'autre fenêtre?") if mess=1 clear 4 for i=1 to count(901) item_add 4,item_read$(901,i) next i end_if return On peut intégrer mes pseudo-éléments dans ce mécanisme. J'ai gardé ton module et je vais proposer quelque chose prochainement. Mais sache que l'intégration de mes pseudo-objets se passe en 3 étapes: 1. intégrer quelques lignes (voir la doc correspondante) au début du programme 2. intégrer le module source complet à la fin du programme (par #INCLUDE par exemple) 3. insérer à l'endroit stratégique la liste des appels à la routine de gestion pour le pseudo-objet, après avoir chargé au préalable la variable servant de passage de paramètres C'est ce troisième point qui pourrait faire l'objet d'une génération. EDIT P.S. mon post s'est croisé avec celui de JL35. Il vaut mieux, bien sûr, ajouter CR+LF ! Mais, une astuce: les CR LF sont déjà dans le mémo ! Il suffit de sélectionner le texte complet et de copier le texte sélectionné dans le presse-papier, de la manière suivante: - Code:
-
select_text 4,1,count(4)*100 clipboard_copy 4
C'est tout. Plus besoin de faire une boucle pour accoler les lignes une à une - tout est copié directement, et ce AVEC les CR LF ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Pseudo-objet - Générateur de code Lun 20 Déc 2010 - 14:34 | |
| Merci Klaus pour l'astuce du copier global, je n'y aurais pas pensé. | |
| | | Invité Invité
| Sujet: Re: Pseudo-objet - Générateur de code Mar 21 Déc 2010 - 22:30 | |
| Mise à jour 2010/12/21 16:30 Mise à jour 2010/12/22 12:00 Mise à jour 2010/12/24 11:00
Dernière édition par Nicolas le Ven 24 Déc 2010 - 17:01, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Pseudo-objet - Générateur de code Ven 24 Déc 2010 - 17:00 | |
| Nouvelle version V.0.7 Ajouts : Horloge (aperçu) CommandConsole 1.0 (une espèce de DOS. JL35 va aimer ça! ) - Code:
-
label forme_change,choisir,generer,spin_change,bar_change,annule,new,colordialog label ok,numero,copy,agrandir_code,help,about,help_select,resize,click,red,green label blue,time,pi_change,ccwindow,change,command
dim pi2,minute,seconde,heure,angle_heure,angle_minute,angle_seconde,angle dim s,file$,dir$,k,b$ dim i,j,a$,mess,ar,so,numero$,agrandir,no dim x0,y0,r,px,py,px2,py2,n,pi,a
ar=1 a$=chr$(10) numero$=1
pi2=3.14159265358979323846264337
width 0,500 height 0,368 caption 0,"Pseudo-objet - Générateur de code - V.0.7"
' menus ________________________________________________________________________
main_menu 1000 sub_menu 1001:parent 1001,1000:caption 1001,"Objets" sub_menu 1003:parent 1003,1000:caption 1003,"Code" sub_menu 1011:parent 1011,1000:caption 1011,"Format" sub_menu 1016:parent 1016,1000:caption 1016,"Outils" sub_menu 1008:parent 1008,1000:caption 1008,"Aide"
sub_menu 1002:parent 1002,1001:caption 1002,"Numéro d'objet à partir de 1":on_click 1002,numero
sub_menu 1004:parent 1004,1003:caption 1004,"Nouveau":on_click 1004,new sub_menu 1005:parent 1005,1003:caption 1005,"Générer":on_click 1005,generer sub_menu 1006:parent 1006,1003:caption 1006,"Copier":on_click 1006,copy sub_menu 1007:parent 1007,1003:caption 1007,"Voir le code en plein écran":on_click 1007,agrandir_code
sub_menu 1012:parent 1012,1011:caption 1012,"Couleur du fond" sub_menu 1013:parent 1013,1012:caption 1013,"Bleu":on_click 1013,blue sub_menu 1014:parent 1014,1012:caption 1014,"Rouge":on_click 1014,red sub_menu 1015:parent 1015,1012:caption 1015,"Vert":on_click 1015,green
sub_menu 1017:parent 1017,1016:caption 1017,"CommandConsole...":on_click 1017,ccwindow
sub_menu 1009:parent 1009,1008:caption 1009,"Aide...":on_click 1009,help sub_menu 1010:parent 1010,1008:caption 1010,"À propos de...":on_click 1010,about
' principal ____________________________________________________________________
alpha 1 left 1,5 top 1,5 caption 1,"Sélectionnez un pseudo-objet :" font_size 1,10
combo 2 top 2,3 left 2,190 width 2,170 item_add 2,"Polygone (0)" item_add 2,"Image scrollabe (3)" item_add 2,"Boîte de dialogue couleurs (10)" item_add 2,"Bouton Slit (3)" item_add 2,"Horloge (2 ou 3)"
button 3 top 3,3 left 3,365 height 3,21 width 3,120 caption 3,"Choisir" font_size 3,10 on_click 3,choisir
memo 4 top 4,211 left 4,5 width 4,482 height 4,100 bar_both 4 font_name 4,"Courier New"
picture 5 top 5,190 width 5,492 height 5,124 2d_target_is 5 2d_line 0,0,492,0 for i=1 to 125 2d_pen_color 0,230-i,255 2d_line 0,126-i,700,126-i next i
alpha 6 top 6,192 left 6,15 caption 6,"Code" font_size 6,10 color 6,0,116,255 on_click 6,click
j=332 for i=7 to 8 button i:left i,j:top i,192:height i,17:j=j+80 next i caption 7,"Nouveau":caption 8,"Générer" on_click 7,new:on_click 8,generer
button 700 height 700,17 left 700,252 top 700,192 caption 700,"Copier" on_click 700,copy
' contenu ______________________________________________________________________
alpha 9 hide 9 left 9,20 top 9,30 caption 9,"Nombre de cotés : "+a$+a$+"Angle :"+a$+a$+"Rayon :"+a$+a$+"Position (centre) :"+a$+a$+"X Y"
alpha 13 hide 13 left 13,250 top 13,30 caption 13,"Aperçu :"
picture 14 hide 14 top 14,45 left 14,210 width 14,275 height 14,130 2d_target_is 14 2d_rectangle 0,0,275,130
j=28 for i=10 to 12 spin i:hide i:left i,110:top i,j:width i,60:j=j+26 next i min 10,3:max 10,"100":position 10,"5" min 11,0:max 11,360 min 12,10:max 12,1000:position 12,"50" j=30 for i=15 to 16 spin i:hide i:left i,j:top i,130:width i,60:j=j+75 next i min 15,0:max 15,screen_x:position 15,130 min 16,0:max 16,screen_y:position 16,60
for i=10 to 12 on_change i,forme_change next i for i=15 to 16 on_change i,forme_change next i gosub forme_change
caption 9,"Dimension :"+a$+a$+"X Y"+a$+a$+"Position :"+a$+a$+"X Y"+a$+a$+"Couleur : "
j=30 for i=17 to 18 spin i:hide i:left i,j:top i,51:width i,60:j=j+75:min i,20 next i j=30 for i=19 to 20 spin i:hide i:left i,j:top i,103:width i,60:j=j+75:min i,0 next i max 17,screen_x:position 17,"200" max 18,screen_y:position 18,"200" max 19,screen_x max 20,screen_y
picture 21 hide 21 left 21,70 top 21,131 height 21,21 width 21,40 2d_target_is 21 2d_rectangle 0,0,40,21
button 22 hide 22 top 22,131 left 22,115 width 22,21 height 22,21 caption 22,"..." on_click 22,colordialog
edit 33 hide 33 left 33,123 top 33,54 width 33,200 text 33,"Choisir une couleur..."
spin 34 hide 34 top 34,53 left 34,80 min 34,20:max 34,screen_x position 34,152
j=130 for i=35 to 37 check i:hide i:left i,15:top i,j:mark_on i:width i,250:j=j+19 next i caption 35,"Afficher la trotteuse":caption 36,"Afficher le cadran":caption 37,"Afficher la progression des heures et des minutes"
check 43 hide 43 left 43,170 top 43,130 caption 43,"Afficher les traits" mark_on 43
edit 38 hide 38 left 38,50 top 38,80 width 38,200 text 38,"3.14159265358979323846264337" on_change 38,pi_change
picture 39 hide 39 left 39,300 top 39,50 width 39,130 height 39,131
edit 40 hide 40 left 40,302 top 40,158 width 40,126 text 40,time$
spin 41 hide 41 width 41,50 left 41,415 top 41,27 min 41,1:max 41,20 position 41,1
' FORMS ________________________________________________________________________
form 23 hide 23 caption 23,"Choisir une couleur..." command_target_is 23
j=1 for i=24 to 26 track_bar i:height i,25:min i,0:max i,255:top i,j:position i,255:on_change i,bar_change spin i+3:top i+3,j+2:left i+3,150:width i+3,60:min i+3,0:max i+3,255:j=j+30:position i+3,255:on_change i+3,spin_change next i
j=216 for i=30 to 31 button i:width i,60:left i,j:height i,21:top i,70:j=j+65 next i caption 30,"Annuler":caption 31,"OK" on_click 30,annule:on_click 31,ok
picture 32 left 32,216 height 32,59 top 32,5 width 32,125 2d_target_is 32 2d_rectangle 0,0,125,59
width 23,354 height 23,120 border_small 23
' _____________________________________
form 500 hide 500 left 500,100 top 500,100 width 500,450 height 500,300 caption 500,"Aide de PO-GC..." command_target_is 500
memo 501 top 501,21 width 501,320 height 501,245 font_size 501,10 bar_vertical 501
edit 502 width 502,442
list 503 width 503,122 height 503,245 top 503,21 left 503,320 item_add 503,"Nombre en parenthèse" item_add 503,"? Pseudo-objet ?" item_add 503,"Fonctionnement" sort_on 503 on_click 503,help_select
' _________________________________________
form 402 hide 402 width 402,500 height 402,300 caption 402,"CommandConsole 1.0" command_target_is 402
memo 401 width 401,492 height 401,245 item_add 401,"CommandConsole 1.0 - 2010-2011" item_add 401,"Tapez HELP pour obtenir de l'aide." bar_vertical 401 font_name 401,"courier new"
combo 400 width 400,492 top 400,245 font_color 400,0,0,255 on_key_up 400,command on_change 400,change
' TIMERS _______________________________________________________________________
timer 550 timer_interval 550,1 on_timer 550,resize
timer 42 timer_interval 42,500 on_timer 42,time
end
forme_change: 2d_target_is 14:cls 2d_rectangle 0,0,275,130 x0=position(15) Y0=position(16) r=position(12) n=position(10) a=position(11) pi=3.1415926535898 px=r*cos(a)+x0 py=r*sin(a)+y0 2d_poly_from px,py for j=1 to n px2=r*cos(a+2*pi*j/n)+x0 py2=r*sin(a+2*pi*j/n)+y0 2d_poly_to px2,py2 px=Px2 py=Py2 next j return
choisir: show 9 font_size 9,8 caption 9,"":font_bold_off 9 if text$(2)="Polygone (0)" ar=1:hide 33:hide 34:hide 35:hide 36:hide 37:hide 38:hide 39:hide 40:hide 41:hide 43 caption 6,"Code (cliquez sur générer pour afficher)" caption 9,"Nombre de cotés : "+a$+a$+"Angle :"+a$+a$+"Rayon :"+a$+a$+"Position (centre) :"+a$+a$+"X Y" left 13,250 top 13,30 caption 13,"Aperçu :" for i=9 to 16 show i next i for i=17 to 22 hide i next i so=1 end_if if text$(2)="Image scrollabe (3)" ar=1:show 9:hide 34:hide 33:hide 35:hide 36:hide 37:hide 38:hide 39:hide 40:hide 41:hide 43 top 19,103:top 20,103 left 19,30:left 20,105 left 21,70:top 21,131 top 22,131:left 22,115 for i=17 to 22 show i next i for i=10 to 16 hide i next i caption 6,"Code (cliquez sur générer pour afficher)" caption 9,"Dimension :"+a$+a$+"X Y"+a$+a$+"Position :"+a$+a$+"X Y"+a$+a$+"Couleur : " so=2 end_if if text$(2)="Boîte de dialogue couleurs (10)" ar=1:show 9:show 33:show 21:show 22:hide 34:hide 35:hide 36:hide 37:hide 38:hide 39:hide 40:hide 41:hide 43 caption 9,"Couleur par défaut : "+a$+a$+"Titre de la fenêtre : " left 21,123:top 21,28 left 22,168:top 22,28 left 33,123:top 33,54 for i=10 to 20 hide i next i so=3 end_if if text$(2)="Bouton Slit (3)" ar=1:show 9:show 33:show 19:show 20:show 21:show 22:show 34:hide 35:hide 36:hide 37:hide 38:hide 39:hide 40:hide 41:hide 43 for i=10 to 18 hide i next i caption 9,"Couleur de fond :"+a$+a$+"Longueur : "+a$+a$+"Texte : "+a$+a$+"Position :"+a$+a$+"X Y" top 19,129:top 20,129 left 19,30:left 20,105 top 33,80:left 33,60:text 33,"" left 21,113:top 21,28 left 22,158:top 22,28 so=4 end_if if text$(2)="Horloge (2 ou 3)" ar=1:show 9:show 21:show 22:show 37:show 35:show 36:show 38:hide 33:hide 34:show 19:show 20:show 39:show 40:show 41:show 43 for i=10 to 18 hide i next i caption 9,"Couleur du fond : Largeur du traitde l'horloge et du cadre :"+a$+a$+"Position : X Y"+a$+a$+"Pi ="+a$+a$+"Options :" top 21,28:top 22,28 left 21,105:left 22,150 j=75 for i=19 to 20 top i,52:left i,j:j=j+75 next i text 38,"3.14159265358979323846264337" so=5 end_if if text$(2)<>"Polygone (0)" and text$(2)<>"Image scrollabe (3)" and text$(2)<>"Boîte de dialogue couleurs (10)" and text$(2)<>"Bouton Slit (3)" and text$(2)<>"Horloge (2 ou 3)" for i=10 to 22 hide i next i hide 33:hide 34 if ar=1 font_size 9,12 caption 9,"Aucun résultat":font_bold 9 caption 6,"Code" end_if ar=1 end_if return
generer: if so=1 clear 4 item_add 4,"dim x0,y0,r,px,py,px2,py2,n,j,pi,a" item_add 4,"" item_add 4,"x0="+str$(position(15)) item_add 4,"y0="+str$(position(16)) item_add 4,"r="+str$(position(12)) item_add 4,"n="+str$(position(10)) item_add 4,"a="+str$(position(11)) item_add 4,"pi=3.1415926535898" item_add 4,"px=r*cos(a)+x0" item_add 4,"py=r*sin(a)+y0" item_add 4,"2d_poly_from px,py" item_add 4,"for j=1 to n" item_add 4," px2=r*cos(a+2*pi*j/n)+x0" item_add 4," py2=r*sin(a+2*pi*j/n)+y0" item_add 4," 2d_poly_to px2,py2" item_add 4," px=px2" item_add 4," py=py2" item_add 4,"next j" end_if if so=2 clear 4 item_add 4,"label bar_change" item_add 4,"" item_add 4,"scroll_bar "+numero$ item_add 4,"left "+numero$+","+str$(position(19)) item_add 4,"top "+numero$+","+str$(position(18)+position(20)) item_add 4,"width "+numero$+","+str$(position(17)) item_add 4,"min "+numero$+",0:max "+numero$+","+str$(position(17)) item_add 4,"on_change "+numero$+",bar_change" item_add 4,"" item_add 4,"scroll_bar "+str$(val(numero$)+1) item_add 4,"vertical "+str$(val(numero$)+1) item_add 4,"left "+str$(val(numero$)+1)+","+str$(position(17)+position(19)) item_add 4,"top "+str$(val(numero$)+1)+","+str$(position(20)) item_add 4,"height "+str$(val(numero$)+1)+","+str$(position(18)) item_add 4,"min "+str$(val(numero$)+1)+",0:max "+numero$+","+str$(position(18)) item_add 4,"on_change "+str$(val(numero$)+1)+",bar_change" item_add 4,"" item_add 4,"picture "+str$(val(numero$)+2) item_add 4,"left "+str$(val(numero$)+2)+","+str$(position(19)) item_add 4,"top "+str$(val(numero$)+2)+","+str$(position(20)) item_add 4,"width "+str$(val(numero$)+2)+","+str$(position(17)) item_add 4,"height "+str$(val(numero$)+2)+","+str$(position(18)) item_add 4,"color "+str$(val(numero$)+2)+","+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"bar_change:" item_add 4,"top "+str$(val(numero$)+2)+",position("+str$(val(numero$)+1)+")*-1+"+str$(position(19)) item_add 4,"height "+str$(val(numero$)+2)+","+str$(position(18))+"+position("+str$(val(numero$)+1)+")" item_add 4,"left "+str$(val(numero$)+2)+",position("+numero$+")*-1+"+str$(position(20)) item_add 4,"width "+str$(val(numero$)+2)+","+str$(position(17))+"+position("+numero$+")" item_add 4,"color "+str$(val(numero$)+2)+","+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"return" end_if if so=3 clear 4 item_add 4,"label bar_change,spin_change,annule,ok" item_add 4,"dim i,j" item_add 4,"" item_add 4,"form "+numero$ item_add 4,"caption "+numero$+","+chr$(34)+text$(33)+chr$(34) item_add 4,"command_target_is "+numero$ item_add 4,"" item_add 4,"j=1" item_add 4,"for i="+str$(val(numero$)+1)+" to "+str$(val(numero$)+3) item_add 4," track_bar i:height i,25:min i,0:max i,255:top i,j" item_add 4," spin i+3:top i+3,j+2:left i+3,150:width i+3,60:min i+3,0:max i+3,255:j=j+30" item_add 4,"next i" item_add 4,"position "+str$(val(numero$)+1)+","+str$(position(24)) item_add 4,"position "+str$(val(numero$)+2)+","+str$(position(25)) item_add 4,"position "+str$(val(numero$)+3)+","+str$(position(26)) item_add 4,"position "+str$(val(numero$)+4)+","+str$(position(24)) item_add 4,"position "+str$(val(numero$)+5)+","+str$(position(25)) item_add 4,"position "+str$(val(numero$)+6)+","+str$(position(26)) item_add 4,"" item_add 4,"j=216" item_add 4,"for i="+str$(val(numero$)+7)+" to "+str$(val(numero$)+8) item_add 4," button i:width i,60:left i,j:height i,21:top i,70:j=j+65" item_add 4,"next i" item_add 4,"caption "+str$(val(numero$)+7)+","+chr$(34)+"Annuler"+chr$(34)+":caption "+str$(val(numero$)+8)+","+chr$(34)+"OK"+chr$(34) item_add 4,"on_click "+str$(val(numero$)+7)+",annule:on_click "+str$(val(numero$)+8)+",ok" item_add 4,"" item_add 4,"picture "+str$(val(numero$)+9) item_add 4,"left "+str$(val(numero$)+9)+",216" item_add 4,"height "+str$(val(numero$)+9)+",59" item_add 4,"top "+str$(val(numero$)+9)+",5" item_add 4,"width "+str$(val(numero$)+9)+",125" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_fill_color "+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"" item_add 4,"width "+numero$+",354" item_add 4,"height "+numero$+",120" item_add 4,"border_small "+numero$ item_add 4,"" item_add 4,"for i="+str$(val(numero$)+1)+" to "+str$(val(numero$)+3) item_add 4," on_change i,bar_change" item_add 4," on_change i+3,spin_change" item_add 4,"next i" item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"bar_change:" item_add 4,"position "+str$(val(numero$)+4)+",position("+str$(val(numero$)+1)+")" item_add 4,"position "+str$(val(numero$)+5)+",position("+str$(val(numero$)+2)+")" item_add 4,"position "+str$(val(numero$)+6)+",position("+str$(val(numero$)+3)+")" item_add 4,"2d_fill_color position("+str$(val(numero$)+1)+"),position("+str$(val(numero$)+2)+"),position("+str$(val(numero$)+3)+")" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"return" item_add 4,"" item_add 4,"spin_change:" item_add 4,"position "+str$(val(numero$)+1)+",position("+str$(val(numero$)+4)+")" item_add 4,"position "+str$(val(numero$)+2)+",position("+str$(val(numero$)+5)+")" item_add 4,"position "+str$(val(numero$)+3)+",position("+str$(val(numero$)+6)+")" item_add 4,"2d_fill_color position("+str$(val(numero$)+1)+"),position("+str$(val(numero$)+2)+"),position("+str$(val(numero$)+3)+")" item_add 4,"2d_target_is "+str$(val(numero$)+9) item_add 4,"2d_rectangle 0,0,125,59" item_add 4,"return" item_add 4,"" item_add 4,"ok:" item_add 4,"hide "+numero$ item_add 4,"return" item_add 4,"" item_add 4,"annule:" item_add 4,"hide "+numero$ item_add 4,"return" end_if if so=4 clear 4 item_add 4,"label slit,slit_hide" item_add 4,"dim i,j,slit" item_add 4,"" item_add 4,"on_click 0,slit_hide" item_add 4,"" item_add 4,"j="+str$(position(19)) item_add 4,"for i=1 to 2" item_add 4," button i:top i,"+str$(position(20))+":left i,j:width i,21:height i,21:j=j+21" item_add 4,"next i" item_add 4,"width "+str$(val(numero$)+1)+",10:font_size "+str$(val(numero$)+1)+",6:caption 2,"+chr$(34)+"6"+chr$(34)+":font_name "+str$(val(numero$)+1)+","+chr$(34)+"Webdings"+chr$(34) item_add 4,"on_click "+str$(val(numero$)+1)+",slit:on_click "+numero$+",slit_hide" item_add 4,"caption "+numero$+","+chr$(34)+text$(33)+chr$(34) item_add 4,"" item_add 4,"picture "+str$(val(numero$)+2) item_add 4,"hide "+str$(val(numero$)+2) item_add 4,"left "+str$(val(numero$)+2)+","+str$(position(19)) item_add 4,"top "+str$(val(numero$)+2)+","+str$(position(20)+21) item_add 4,"width "+str$(val(numero$)+2)+",152" item_add 4,"height "+str$(val(numero$)+2)+",23" item_add 4,"2d_target_is "+str$(val(numero$)+2) item_add 4,"2d_rectangle 0,0,"+str$(position(34))+",23" item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"slit:" item_add 4,"if slit=0" item_add 4," show "+str$(val(numero$)+2) item_add 4," slit=1" item_add 4,"else" item_add 4," hide "+str$(val(numero$)+2) item_add 4," slit=0" item_add 4,"end_if" item_add 4,"return" item_add 4,"" item_add 4,"slit_hide:" item_add 4,"slit=0:hide "+str$(val(numero$)+2) item_add 4,"return" end_if if so=5 clear 4 item_add 4,"label time" item_add 4,"dim i,j,pi,minute,seconde,heure" item_add 4,"dim angle_heure,angle_minute,angle_seconde,angle" item_add 4,"" if numeric(text$(38))=0 item_add 4,"pi = 3.14159265358979323846264337" else item_add 4,"pi = "+text$(38) end_if item_add 4,"" item_add 4,"picture "+numero$ item_add 4,"left "+numero$+","+str$(position(19)) item_add 4,"top "+numero$+","+str$(position(20)) item_add 4,"width "+numero$+",130" if checked(36)=1 item_add 4,"height "+numero$+",131" else item_add 4,"height "+numero$+",110" end_if item_add 4,"2d_target_is "+numero$ item_add 4,"2d_fill_color "+str$(position(24))+","+str$(position(25))+","+str$(position(26)) item_add 4,"" if checked(36)=1 item_add 4,"edit "+str$(val(numero$)+1) item_add 4,"left "+str$(val(numero$)+1)+","+str$(position(19)+2) item_add 4,"top "+str$(val(numero$)+1)+","+str$(position(20)+108) item_add 4,"width "+str$(val(numero$)+1)+",126" item_add 4,"text "+str$(val(numero$)+1)+",time$" item_add 4,"" item_add 4,"timer "+str$(val(numero$)+2) item_add 4,"timer_interval "+str$(val(numero$)+2)+",500" item_add 4,"on_timer "+str$(val(numero$)+2)+",time" else item_add 4,"timer "+str$(val(numero$)+1) item_add 4,"timer_interval "+str$(val(numero$)+1)+",500" item_add 4,"on_timer "+str$(val(numero$)+1)+",time" end_if item_add 4,"" item_add 4,"end" item_add 4,"" item_add 4,"time:" item_add 4,"cls" if checked(36)=1 item_add 4,"text "+str$(val(numero$)+1)+",time$" end_if item_add 4,"heure=val(left$(time$,2))" item_add 4,"minute=val(mid$(time$,4,2))" item_add 4,"seconde=val(right$(time$,2))" item_add 4,"2d_pen_color 0,0,0" item_add 4,"2d_pen_width "+str$(position(41)) if checked(36)=1 item_add 4,"2d_rectangle 1,1,130,131" else item_add 4,"2d_rectangle 1,1,130,110" end_if item_add 4,"2d_circle 65,55,50" item_add 4,"" item_add 4,"2d_pen_width 2" item_add 4,"for i=1 to 12" item_add 4," angle = i/12*(2*pi)+0.5*pi" item_add 4," 2d_line 65-45*cos(angle),55-45*sin(angle),65-50*cos(angle),55-50*sin(angle)" item_add 4,"next i" item_add 4,"2d_pen_width 1" item_add 4,"for i=1 to 60" item_add 4," angle = i/60*(2*pi)+0.5*pi" item_add 4," 2d_line 65-47*cos(angle),55-47*sin(angle),65-50*cos(angle),55-50*sin(angle)" item_add 4,"next i" item_add 4,"" item_add 4,"if heure>=12 then heure=heure-12" if checked(37)=1 item_add 4,"angle_heure = (heure+minute/60)/12*(2*pi)+0.5*pi" item_add 4,"angle_minute = (minute+seconde/60)/60*(2*pi)+0.5*pi" else item_add 4,"angle_heure = heure/12*(2*pi)+0.5*pi" item_add 4,"angle_minute = minute/60*(2*pi)+0.5*pi" end_if if checked(35)=1 item_add 4,"angle_seconde = seconde/60*(2*pi)+0.5*pi" end_if item_add 4,"2d_pen_width 2:2d_line 65,55,65-35*cos(angle_heure),55-35*sin(angle_heure)" item_add 4,"2d_line 65,55,65-45*cos(angle_minute),55-45*sin(angle_minute)" item_add 4,"2d_pen_color 0,0,255:2d_pen_width 1" if checked(35)=1 item_add 4,"2d_line 65,55,65-45*cos(angle_seconde),55-45*sin(angle_seconde)" end_if item_add 4,"2d_pen_color 0,0,0" item_add 4,"2d_pen_width 7:2d_line 65,55,65,55" item_add 4,"return" end_if return
spin_change: position 24,position(27) position 25,position(28) position 26,position(29) 2d_fill_color position(24),position(25),position(26) 2d_target_is 32 2d_rectangle 0,0,125,59 return
bar_change: position 27,position(24) position 28,position(25) position 29,position(26) 2d_fill_color position(27),position(28),position(29) 2d_target_is 32 2d_rectangle 0,0,125,59 return
ok: hide 23 2d_target_is 21 2d_fill_color position(27),position(28),position(29) 2d_rectangle 0,0,40,21 return
colordialog: show 23 to_foreground 23 return
annule: hide 23 position 24,color_pixel_red(21,1,1) position 25,color_pixel_green(21,1,1) position 26,color_pixel_blue(21,1,1) return
new: mess=message_confirmation_yes_no("Voulez-vous vraiment créer un nouveau code?") if mess=1 then ar=0:clear 4:clear 901:text 2,"":caption 6,"Code":goto choisir if mess=0 or 2 then return return
numero: mess=message_input("Numéro à partir de...","Entrer le numéro du premier objet que le générateur va créer :",numero$) if (numeric(message_text$))=0 then message "Cette valeur n'est pas numérique!":return if len(message_text$)>6 then message "Ce numéro est trop élévé!":return numero$=message_text$ caption 1002,"Numéro d'objet à partir de "+numero$ return
copy: if count(4)>0 select_text 4,1,count(4)*100 clipboard_copy 4 end_if return
agrandir_code: if (agrandir=0) for i=1 to 22 hide i next i for i=33 to 40 hide i next i no=1 hide 700 full_space 4:show 4 timer_off 550 agrandir=1 caption 1007,"Remettre la taille normale" else no=0 height 0,screen_y width 4,1:height 4,1 width 0,500:height 0,368 top 4,211:left 4,5 width 4,482:height 4,100 for i=1 to 8 show i next i show 700 timer_on 550 gosub choisir agrandir=0 caption 1007,"Voir le code en plein écran" end_if return
resize: width 0,500 height 0,368 return
click: goto agrandir_code return
blue: 2d_target_is 5:cls color 6,0,116,255 for i=1 to 125 2d_pen_color 0,230-i,255 2d_line 0,126-i,700,126-i next i 2d_pen_color 0,0,0:2d_line 0,0,492,0 return
red: 2d_target_is 5:cls color 6,255,116,0 for i=1 to 125 2d_pen_color 255,230-i,0 2d_line 0,126-i,700,126-i next i 2d_pen_color 0,0,0:2d_line 0,0,492,0 return
green: 2d_target_is 5:cls color 6,0,255,116 for i=1 to 125 2d_pen_color 0,255,230-i 2d_line 0,126-i,700,126-i next i 2d_pen_color 0,0,0:2d_line 0,0,492,0 return
pi_change: if (numeric(text$(38)))=0 then return pi2=val(text$(38)) return
time: if so=5 and no=0 if checked(36)=1 show 40:height 39,131 else hide 40:height 39,110 end_if end_if 2d_target_is 39:cls text 40,time$ heure=val(left$(time$,2)) minute=val(mid$(time$,4,2)) seconde=val(right$(time$,2)) 2d_fill_color position(24),position(25),position(26) 2d_pen_color 0,0,0 if position(41)<21 and position(41)>0 2d_pen_width position(41) else 2d_pen_width 1 end_if if checked(36)=1 2d_rectangle 1,1,130,131 else 2d_rectangle 1,1,130,110 end_if 2d_circle 65,55,50
if checked(43)=1 2d_pen_width 2 for i=1 to 12 angle = i/12*(2*pi2)+0.5*pi2 2d_line 65-45*cos(angle),55-45*sin(angle),65-50*cos(angle),55-50*sin(angle) next i 2d_pen_width 1 for i=1 to 60 angle = i/60*(2*pi2)+0.5*pi2 2d_line 65-47*cos(angle),55-47*sin(angle),65-50*cos(angle),55-50*sin(angle) next i end_if
if heure>=12 then heure=heure-12 if checked(37)=1 angle_heure = (heure+minute/60)/12*(2*pi2)+0.5*pi2 angle_minute = (minute+seconde/60)/60*(2*pi2)+0.5*pi2 else angle_heure = heure/12*(2*pi2)+0.5*pi2 angle_minute = minute/60*(2*pi2)+0.5*pi2 end_if if checked(35)=1 angle_seconde = seconde/60*(2*pi)+0.5*pi2 end_if 2d_pen_width 2:2d_line 65,55,65-35*cos(angle_heure),55-35*sin(angle_heure) 2d_line 65,55,65-45*cos(angle_minute),55-45*sin(angle_minute) 2d_pen_color 0,0,255:2d_pen_width 1 if checked(35)=1 2d_line 65,55,65-45*cos(angle_seconde),55-45*sin(angle_seconde) end_if 2d_pen_color 0,0,0 2d_pen_width 7:2d_line 65,55,65,55 return
' aide _________________________________________________________________________
help: show 500 to_foreground 500 return
help_select: text 502,item_index$(503):clear 501 if item_index$(503)="Fonctionnement" item_add 501,"Fonctionnement":item_add 501,"":item_add 501,"Pour commencer, vous choisissez le pseudo-objet que vous voulez créer. Deuxièmemement, vous changer les propriétés du pseudo-objet. Ensuite vous cliquer sur Générer puis sur Copier pour copier dans le presse-papiers.":item_add 501,"Si vous voulez mettre le code en plein écran aller dans Code/Voir le code en plein écran. Si vous voulez créer un nouveau code cliquez sur Nouveau." end_if if item_index$(503)="? Pseudo-objet ?" item_add 501,"FAQ - Pseudo-objet":item_add 501,"":item_add 501,"Les pseudo-objets sont des objets qui ne sont pas dans Panoramic et qui sont formés d'un ou de plusieurs objets.":item_add 501,"":item_add 501,"Liste des pseudo-objets disponibles :":item_add 501,"":item_add 501,"Polygone":item_add 501,"Image scrollabe":item_add 501,"Boîte de dialogue couleurs":item_add 501,"Bouton Slit":item_add 501,"Horloge" end_if if item_index$(503)="Nombre en parenthèse" item_add 501,"Nombre en parenthèse":item_add 501,"":item_add 501,"Les nombres en parenthèse indique le nombre d'objet que nécessite le pseudo-objet." end_if return
about: hide 0:hide 23:hide 500 mess=message_information_ok("À propos de PO-GC"+a$+a$+"Auteur : Nicolas Maltais"+a$+"Date de version : 24 décembre 2010"+a$+a$+"License : Open Source") show 0 return
' Command Console
ccwindow: show 402 to_foreground 402 set_focus 400 return
command: if k=0 if key_up_code=13 if lower$(text$(400))="quit" then terminate if lower$(text$(400))="screen size" then item_add 400,text$(400):item_add 401,"":item_add 401,"X : "+str$(screen_x):item_add 401,"Y : "+str$(screen_y) if lower$(left$(text$(400),6))="lower(" and right$(lower$(text$(400)),1)=")" then item_add 400,text$(400):item_add 401,"":item_add 401,lower$(mid$(text$(400),7,len(text$(400))-7)) if lower$(left$(text$(400),6))="upper(" and right$(lower$(text$(400)),1)=")" then item_add 400,text$(400):item_add 401,"":item_add 401,upper$(mid$(text$(400),7,len(text$(400))-7)) if lower$(text$(400))="cls" then item_add 400,text$(400):clear 401:item_add 401,"CommandConsole 1.0 - 2010-2011":item_add 401,"Tapez HELP pour obtenir de l'aide." if lower$(text$(400))="version" then item_add 400,text$(400):item_add 401,"":item_add 401,"CommandConsole 1.0 - 2010-2011" if lower$(text$(400))="help" item_add 400,text$(400) item_add 401,"" item_add 401,"CLS : Efface l'historique des commandes." item_add 401,"DEL F : Supprimer le fichier F." item_add 401,"DIR D : Liste les fichiers du répertoire D." item_add 401,"FILE SIZE F : Retourne la taille en octets du fichier F." item_add 401,"HELP : Obtient de l'aide" item_add 401,"LOWER(T) : Retourne le texte T en minuscules." item_add 401,"MKDIR D : Crée le répertoire D." item_add 401,"QUIT : Ferme la fenêtre de CommandConsole." item_add 401,"SCREEN SIZE : Retourne la largeur et la hauteur de l'écran." item_add 401,"UPPER(T) : Retourne le texte T en majuscules." item_add 401,"VERSION : Retourne la version actuelle de CommandConsole." item_add 401,"VOL : Affiche les volumes et périphériques connectés." end_if
' fichiers if lower$(left$(text$(400),4))="del " if len(text$(400))>4 if file_exists(right$(text$(400),len(text$(400))-4))=1 item_add 400,text$(400) item_add 401,"":item_add 401,"Voulez-vous vraiment supprimer le fichier '"+right$(text$(400),len(text$(400))-4)+"' ? (Y ou N)" k=1:s=1:file$=right$(text$(400),len(text$(400))-4) else item_add 401,"":item_add 401,"Ce fichier n'existe pas!" end_if end_if end_if ' répertoires if lower$(left$(text$(400),6))="rmdir " if len(text$(400))>6 if dir_exists(right$(text$(400),len(text$(400))-6))=1 item_add 400,text$(400) item_add 401,"":item_add 401,"Voulez-vous vraiment supprimer le répertoire '"+right$(text$(400),len(text$(400))-6)+"' ? (Y ou N)" k=1:s=2:dir$=right$(text$(400),len(text$(400))-6) else item_add 401,"":item_add 401,"Ce répertoire n'existe pas!" end_if end_if end_if if lower$(left$(text$(400),10))="file size " if len(text$(400))>10 if file_exists(right$(text$(400),len(text$(400))-10))=1 item_add 400,text$(400) filebin_open_read 1,right$(text$(400),len(text$(400))-10) if filebin_size(1)>1 item_add 401,"":item_add 401,"Taille du fichier '"+right$(text$(400),len(text$(400))-10)+"' : "+str$(filebin_size(1))+" octets" else item_add 401,"":item_add 401,"Taille du fichier '"+right$(text$(400),len(text$(400))-10)+"' : "+str$(filebin_size(1))+" octet" end_if filebin_close 1 else item_add 401,"":item_add 401,"Ce fichier n'existe pas!" end_if end_if end_if if lower$(left$(text$(400),4))="dir " if len(text$(400))>4 if dir_exists(right$(text$(400),len(text$(400))-4))=1 item_add 400,text$(400) dir_change right$(text$(400),len(text$(400))-4) if right$(text$(400),1)<>"" filebin_open_read 1,right$(text$(400),len(text$(400))-4)+""+file_find_first$ else filebin_open_read 1,right$(text$(400),len(text$(400))-4)+file_find_first$ end_if if filebin_size(1)>1 item_add 401,"":item_add 401,file_find_first$+" \ "+str$(filebin_size(1))+" octets" else item_add 401,"":item_add 401,file_find_first$+" \ "+str$(filebin_size(1))+" octet" end_if filebin_close 1 b$=file_find_next$ while b$<>"_" if right$(text$(400),1)<>"" filebin_open_read 1,right$(text$(400),len(text$(400))-4)+""+b$ else filebin_open_read 1,right$(text$(400),len(text$(400))-4)+b$ end_if if filebin_size(1)>1 item_add 401,b$+" \ "+str$(filebin_size(1))+" octets" else item_add 401,b$+" \ "+str$(filebin_size(1))+" octet" end_if filebin_close 1 b$=file_find_next$ end_while file_find_close end_if end_if end_if if lower$(text$(400))="vol" item_add 400,text$(400) item_add 401,"" for i=65 to 90 if dir_exists(chr$(i)+":")=1 then item_add 401,chr$(i)+":" next i end_if if lower$(left$(text$(400),6))="mkdir " if len(text$(400))>6 item_add 400,text$(400) item_add 401,"":item_add 401,"Êtes-vous sûr de créer le répertoire '"+right$(text$(400),len(text$(400))-6)+"' ? (Y ou N)" k=1:s=3:dir$=right$(text$(400),len(text$(400))-6) end_if end_if text 400,"" end_if else if s=1 if key_up_code=13 if lower$(text$(400))="y" then file_delete file$:item_add 401,"Le fichier '"+file$+"' a été supprimé.":s=0:k=0 if lower$(text$(400))="n" then item_add 401,"La suppression du fichier '"+file$+"' a été annulée.":s=0:k=0 end_if end_if if s=2 if key_up_code=13 if lower$(text$(400))="y" then rmdir dir$:item_add 401,"Le répertoire '"+dir$+"' a été supprimé.":s=0:k=0 if lower$(text$(400))="n" then item_add 401,"La suppression du répertoire '"+dir$+"' a été annulée.":s=0:k=0 end_if end_if if s=3 if key_up_code=13 if lower$(text$(400))="y" then dir_make dir$:item_add 401,"Le répertoire '"+dir$+"' a été créé.":s=0:k=0 if lower$(text$(400))="n" then item_add 401,"La création du répertoire '"+dir$+"' a été annulée.":s=0:k=0 end_if end_if end_if return
change: if lower$(text$(400))="help" then font_bold_off 400:font_color 400,255,0,0:return if lower$(text$(400))="cls" then font_bold 400:return if lower$(left$(text$(400),7))="lower("+chr$(34) and right$(lower$(text$(400)),2)=chr$(34)+")" then font_color 2,0,0,0:return if lower$(left$(text$(400),7))="upper("+chr$(34) and right$(lower$(text$(400)),2)=chr$(34)+")" then font_color 2,0,0,0:return font_color 400,0,0,255:font_bold_off 400 return Au revoir ! |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Pseudo-objet - Générateur de code Ven 24 Déc 2010 - 17:46 | |
| Le Form 0 est trop petit (500x368) pour tout contenir, alors ça tronque et ça fait apparaître des barres de défilement. Pas facile à corriger, parce que les dimensions sont redéfinies à plusieurs endroits (3 ?), si je mets 550 x 400 ça me convient mieux.
La fenêtre 'Code' est petite, on n'a pas une vue assez globale du code généré (5 lignes seulement visibles).
Sinon, petit programme sympathique. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Pseudo-objet - Générateur de code Sam 25 Déc 2010 - 0:46 | |
| Très joli, l'objet "horloge". Cela me plaît beaucoup ! | |
| | | Contenu sponsorisé
| Sujet: Re: Pseudo-objet - Générateur de code | |
| |
| | | | Pseudo-objet - Générateur de code | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |