Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Tester l'HVIEWER : Micro éditeur HTML Dim 9 Juin 2024 - 18:03 | |
| Bonjour à tous ! Ce micro éditeur HTML permet de taper quelques lignes de texte et balises HTML dans un MEMO et de constater instantanément le résultat dans l’objet système HVIEWER. C’est l’idéal pour découvrir les possibilités du HVIEWER et tester si telle ou telle balise HTML est compatible. Il est composé de trois parties : - La zone blanche est l’éditeur (un MEMO_RICH) où vous pouvez entrer textes et balises HTML pour en apprécier le résultat. - La barre verte sert de séparation mobile. Elle peut être déplacée pour changer les proportions des zones. - La partie grise est un HVIEWER qui affichera le code présent dans le MEMO_RICH. Le menu contextuel (clic droit souris) permet de choisir le sens de séparation (horizontal ou vertical) ainsi que l’effacement du contenu du MEMO_RICH. La fenêtre principale est redimensionnable. - Code:
-
' Mini éditeur HTML pour tester l'objet système HVIEWER ' Marc - Juin 2024 ' Programme écrit en langage PANORAMIC 0.9.29i9
label actualiserHviewer, redim0GaucheDroite, redim0HautBas, ajusterSeparationHautBas, ajusterSeparationGaucheDroite label gauche_droite, haut_bas, effacer
dim y_separation%, x_separation%, null% dim souris_move_x%, souris_x%, souris_y%, souris_move_y%, last_souris_y%, last_souris_x%
inactive 0
interfaceUtilisateur()
y_separation% = height_client(0) / 2 x_separation% = width_client(0) / 2
gosub redim0HautBas
on_change 1,actualiserHviewer on_mouse_down 2,ajusterSeparationHautBas
' Charger texte d'accueil item_add 1,"<font face="+chr$(34)+"Arial"+chr$(34)+"><h1 align="+chr$(34)+"center"+chr$(34)+">Test de l'objet système<br><br><font color="+chr$(34)+"#0000FF"+chr$(34)+">HVIEWER</font></font>" item_add 1,"<br><br>" item_add 1,"<blockquote>" item_add 1,"<p>La ligne de séparation verte peut être déplacée à l'aide de la souris (cliquer-déplacer) pour changer les proportions des zones.</p>" item_add 1,"<p>Le menu contextuel (clic droit) permet de choisir le sens de la séparation entre vertical et horizontal.<p>" item_add 1,"<p>La fenêtre principale est redimensionnable avec la souris." item_add 1,"</blockquote>"
active 0
end ' ------------------------------------------------------------------------------ sub interfaceUtilisateur() width 0,1000 height 0,600
' centre la fenêtre FORM 0 top 0,(screen_y - height(0)) / 2 left 0,(screen_x - width(0)) / 2
memo_rich 1 bar_both 1
picture 2 cursor_cross 2
hviewer 3 main_menu_pop 4 sub_menu 5 parent 5,4 caption 5,"Haut / Bas" on_click 5,haut_bas sub_menu 6 parent 6,4 caption 6,"Gauche / Doite" on_click 6,gauche_droite sub_menu 7 parent 7,4 caption 7,"-" sub_menu 8 parent 8,4 caption 8,"Effacer le code HTML" on_click 8,effacer mark_on 5 end_sub ' ------------------------------------------------------------------------------ haut_bas: off_mouse_down 2 mark_off 6 mark_on 5 gosub redim0HautBas on_mouse_down 2,ajusterSeparationHautBas return ' ------------------------------------------------------------------------------ gauche_droite: off_mouse_down 2 mark_off 5 mark_on 6 gosub redim0GaucheDroite on_mouse_down 2,ajusterSeparationGaucheDroite return ' ------------------------------------------------------------------------------ actualiserHviewer: off_change 1 pause 20 clipboard_string_copy text$(1) pause 20 clipboard_paste 3 on_change 1,actualiserHviewer return ' ------------------------------------------------------------------------------ redim0HautBas: off_resize 0
' redimentionner le MEMO 1 top 1,0 left 1,0 width 1,width_client(0) height 1,y_separation%
' redimentionner le PICTURE 2 width 2,screen_x color 2,0,127,0 top 2,height(1) left 2,0 height 2,4
' redimensionner le HVIEWER 3 width 3,width_client(0) top 3,top(2) + 4 left 3,0 height 3,height_client(0) - top(2) - 4
on_resize 0,redim0HautBas return ' ------------------------------------------------------------------------------ redim0GaucheDroite: off_resize 0
' redimentionner le MEMO 1 top 1,0 left 1,0 width 1,x_separation% height 1,height_client(0)
' redimentionner le PICTURE 2 height 2,screen_y color 2,0,127,0 left 2,width(1) top 2,0 width 2,4
' redimensionner le HVIEWER 3 width 3,width_client(0) - left(2) - 4 left 3,left(2) + 4 height 3,height_client(0) top 3,0 on_resize 0,redim0GaucheDroite return ' ------------------------------------------------------------------------------ ajusterSeparationHautBas:
' sortir de la procédure si c'est le bouton droit de la souris qui a été enfoncé if mouse_right_down(2) = 1 ' réinitialiser les fonctions null% = mouse_left_up(2) null% = mouse_left_down(2) null% = mouse_right_up(2) null% = mouse_right_down(2) return end_if
' déactiver la détection d'appui sur un bouton de la souris off_mouse_down 2
' boucle active tant que le bouton gauche de la souris reste appuyé while mouse_left_up(2) = 0 souris_y% = mouse_y_position(2)
if souris_y% <> last_souris_y% :' or souris_x% <> last_souris_x% souris_move_y% = souris_y% - mouse_y_left_down(2) end_if top 2, top(2) + souris_move_y% last_souris_y% = souris_y% souris_move_y% = 0 y_separation% = top(2)
' limiter le déplacement de la séparation vers le haut if y_separation% < 0 y_separation% = 0 top 2,y_separation% end_if
' limiter le déplacement de la séparation vers le bas if y_separation% > height_client(0)-4 y_separation% = height_client(0)-4 top 2,y_separation% end_if ' répartir le MEMO_RICH 1 et le HVIEWER 3 de part et d'autre de la barre de séparation height 1,y_separation% top 3,top(2) + 4 height 3,height_client(0) - top(2) - 4
' ralentissement de la boucle WHILE pour ne pas affoler le processeur pause 20 end_while
' rétablir la détection de l'appui d'un bouton de la souris sur l'objet on_mouse_down 2,ajusterSeparationHautBas
' réinitialiser les fonctions null% = mouse_left_up(2) null% = mouse_left_down(2) null% = mouse_right_up(2) null% = mouse_right_down(2) return ' ------------------------------------------------------------------------------ ajusterSeparationGaucheDroite:
' sortir de la procédure si c'est le bouton droit de la souris qui a été enfoncé if mouse_right_down(2) = 1 ' réinitialiser les fonctions null% = mouse_left_up(2) null% = mouse_left_down(2) null% = mouse_right_up(2) null% = mouse_right_down(2) return end_if
' déactiver la détection d'appui sur un bouton de la souris off_mouse_down 2
' boucle active tant que le bouton gauche de la souris reste appuyé while mouse_left_up(2) = 0 souris_x% = mouse_x_position(2)
if souris_x% <> last_souris_x% souris_move_x% = souris_x% - mouse_x_left_down(2) end_if left 2, left(2) + souris_move_x% last_souris_x% = souris_x% souris_move_x% = 0 x_separation% = left(2)
' limiter le déplacement de la séparation vers le haut if x_separation% < 0 x_separation% = 0 left 2,x_separation% end_if
' limiter le déplacement de la séparation vers le bas if x_separation% > width_client(0)-4 x_separation% = width_client(0)-4 left 2,x_separation% end_if ' ajuster largeur MEMO_RICH 1 width 1,x_separation% ' positionner et ajuster le HVIEWER 3 left 3,left(2) + 4 width 3,width_client(0) - left(2) - 4
' ralentissement de la boucle WHILE pour ne pas affoler le processeur pause 20 end_while
' rétablir la détection de l'appui d'un bouton de la souris sur l'objet on_mouse_down 2,ajusterSeparationGaucheDroite
' réinitialiser les fonctions null% = mouse_left_up(2) null% = mouse_left_down(2) null% = mouse_right_up(2) null% = mouse_right_down(2) return ' ------------------------------------------------------------------------------ effacer: clear 1 :' MEMO_RICH 1 clear 3 :' HVIEWER 3 return
A noter : Il existe un autre éditeur HTML, plus complet et plus perfectionné, qui a été réalisé par JL35. Retrouvez-le ici : https://panoramic.1fr1.net/t3775-un-petit-editeur-htmlBonne programmation à tous ! | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| |