Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Petit défi avec un objet memo. Lun 21 Oct 2013 - 11:09 | |
| Une proposition d'amélioration: reste à voir comment récupérer le texte entré par l'utilisateur et uniquement le sien. - Code:
' couleur de fond de la form dim fond_r% : fond_r% = 255 dim fond_g% : fond_g% = 255 dim fond_b% : fond_b% = 250
color 0,fond_r%, fond_g%, fond_b% width 0,1000 : height 0,700
dessiner_objet_infobulle(11,2,10,100,100,300,200,20,400,"Entrez le texte à traduire ci-dessous:","Traduire") dessiner_objet_cadre_3d(21,600,100,300,200,"Entrez un texte","Valider") dessiner_fond(31,3,10,100,350,300,200,20) dessiner_bord_3d(41,600,350,300,200)
end
' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés) ' s%! sens de la flèche 0=aucune flèche ' 1=en bas à gauche 2=en bas à droite ' 3=en haut à gauche 4=en haut à droite ' r%: rayon du cercle des coins arrondis ' x%,y%: coin en haut à gauche de la zone de dessin ' w%,h%: dimensions de la bulle ' p%: longueur horizontale et verticale de la pointe ' wm%: largeur du mémo ' t$: texte (caption) du bouton sub dessiner_objet_infobulle(n%,s%,r%,x%,y%,w%,h%,p%,wm%,txt$,t$) ' dessiner la bulle dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%) ' placer le mémo memo n%+1 : top n%+1,top(n%)+p%+r% : left n%+1,left(n%)+p%+r% height n%+1,height(n%)-r%*2-p%*2 : width n%+1,wm% ' insèrer le texte if txt$<>"" then item_add n%+1,txt$ ' placer le bouton if t$="" then exit_sub button n%+2 : width n%+2,80 : caption n%+2,t$ top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2 height n%+2,20 end_sub
' n%: numero de l'objet de base (n%, n%+1 et n%+2 utilisés) ' x%,y%: coin en haut à gauche de la zone de dessin ' w%,h%: dimensions de la bulle ' t$: texte (caption) du bouton sub dessiner_objet_cadre_3d(n%,x%,y%,w%,h%,txt$,t$) ' dessiner la bulle dessiner_bord_3d(n%,x%,y%,w%,h%) ' placer le mémo memo n%+1 : top n%+1,top(n%)+7 : left n%+1,left(n%)+7 height n%+1,h%-10 : width n%+1,w%-10 ' insèrer le texte if txt$<>"" then item_add n%+1,txt$ ' placer le bouton if t$="" then exit_sub button n%+2 : width n%+2,80 : caption n%+2,t$ top n%+2,top(n%+1)+height(n%+1) : left n%+2,left(n%+1)+(width(n%+1)-width(n%+2))/2 height n%+2,20 end_sub
' n%: numero de l'objet ' x%,y%: coin en haut à gauche de la zone de dessin ' w%,h%: dimensions de la bulle sub dessiner_bord_3d(n%,x%,y%,w%,h%) picture n% top n%,y% : left n%,x% : width n%,w%+4 : height n%,h%+4 color n%,fond_r%, fond_g%, fond_b% color n%,242,230,234 2d_target_is n% : 2d_pen_width 1 2d_pen_color 255,254,245 2d_line 0,0,w%+3,0 2d_line 0,0,0,h%+3 2d_pen_color 107,111,97 2d_line w%+3,0,w%+3,h%+4 2d_line 0,h%+3,w%+3,h%+3 2d_pen_color 240,238,225 2d_line 1,1,w%+2,1 2d_line 1,1,1,h%+2 2d_pen_color 169,173,148 2d_line w%+2,1,w%+2,h%+3 2d_line 1,h%+2,w%+2,h%+2 2d_pen_color 0,0,0 : 2d_pen_width 1 end_sub
' n%: numero de l'objet ' s%! sens de la flèche 0=aucune flèche ' 1=en bas à gauche 2=en bas à droite ' 3=en haut à gauche 4=en haut à droite ' r%: rayon du cercle des coins arrondis ' x%,y%: coin en haut à gauche de la zone de dessin ' w%,h%: dimensions de la bulle ' p%: longueur horizontale et verticale de la pointe sub dessiner_fond(n%,s%,r%,x%,y%,w%,h%,p%) picture n% top n%,y% : left n%,x% : width n%,w%+p%*2 : height n%,h%+p%*2 color n%,fond_r%, fond_g%, fond_b% 2d_target_is n% : 2d_fill_color 255,255,0 2d_pen_width 2 : 2d_pen_color 195,195,196 if s%=3 : ' coin en haut à gauche 2d_line 0,0,p%,p%+r% 2d_line 0,0,p%+r%,p% else 2d_circle r%+p%,r%+p%,r% end_if if s%=4 : ' coin en haut à droite 2d_line w%+p%*2,0,w%+p%-r%,p% 2d_line w%+p%*2,0,w%+p%,p%+r% else 2d_circle w%-r%+p%,r%+p%,r% end_if if s%=1 : ' coin en bas à gauche 2d_line 0,h%+p%*2,p%,h%+p%-r% 2d_line 0,h%+p%*2,p%+r%,h%+p% else 2d_circle r%+p%,h%+p%-r%,r% end_if if s%=2 : ' coin en bas à droite 2d_line w%+p%*2,h%+p%*2,w%+p%-r%,h%+p% 2d_line w%+p%*2,h%+p%*2,w%+p%,h%+p%-r% else 2d_circle w%-r%+p%,h%+p%-r%,r% end_if ' parties horizontales de la bulle 2d_rectangle p%+r%,p%,w%+p%-r%,h%+p% 2d_rectangle p%,p%+r%,w%+p%,h%+p%-r% ' effacer les lignes inutiles 2d_pen_color 255,255,0 2d_rectangle p%+r%-1,p%+2,w%+p%-r%+1,h%+p%-2 2d_rectangle p%+2,p%+r%-1,w%+p%-2,h%+p%-r%+1 ' remplir la pointe select s% case 1 2d_flood p%+r%-5,p%+h%-r%+5,255,255,0 case 2 2d_flood p%+w%-r%+5,p%+h%-r%+5,255,255,0 case 3 2d_flood p%+r%-5,p%+r%-5,255,255,0 case 4 2d_flood p%+w%-r%+5,p%+r%-5,255,255,0 end_select 2d_pen_color 0,0,0 2d_pen_width 1 end_sub
Mais bon, çà complique les choses. PS: Le terme InfoBulle de la sub me parait inexacte vu que l'objet est prévu pour y saisir du texte. Je verrais mieux Dessiner_memobulle
A+ | |
|