FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Affichage d'un texte formaté dans un picture Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Affichage d'un texte formaté dans un picture Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Affichage d'un texte formaté dans un picture Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Affichage d'un texte formaté dans un picture Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Affichage d'un texte formaté dans un picture Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Affichage d'un texte formaté dans un picture Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Affichage d'un texte formaté dans un picture Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Affichage d'un texte formaté dans un picture Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Affichage d'un texte formaté dans un picture Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Affichage d'un texte formaté dans un picture Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Affichage d'un texte formaté dans un picture Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Affichage d'un texte formaté dans un picture Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Affichage d'un texte formaté dans un picture Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Affichage d'un texte formaté dans un picture Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Affichage d'un texte formaté dans un picture Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-29%
Le deal à ne pas rater :
DYSON V8 Origin – Aspirateur balai sans fil
269.99 € 379.99 €
Voir le deal

 

 Affichage d'un texte formaté dans un picture

Aller en bas 
5 participants
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMar 19 Déc 2017 - 23:41

Par exemple pour afficher une aide, un mode d'emploi, ou n'importe quoi d'autre avec un affichage un peu fantaisiste, une petite sub simple:
Code:
DIM p%,txt$,x%,y%,fnt$,sz%,cr$,a$,k%,wt%,ht%
cr$ = CHR$(13)+CHR$(10)
txt$ = "Au clair de la lune"+cr$
txt$ = txt$+"Mon <B>ami</B> Pierrot"+cr$
txt$ = txt$+"<S=16>Prête-moi <I>ta plume</I>"
txt$ = txt$+cr$+"<F=Lucida Console><S=14>Pour <C=hFF0000>écrire<C=000000> un mot"
PICTURE 1: FULL_SPACE 1
PICTURE 2: HIDE 2
x% = 20: y% = 30: fnt$ = "Arial": sz% = 12
Textformat(1,txt$,x%,y%,fnt$,sz%)
END

SUB Textformat(p%,txt$,x%,y%,fnt$,sz%)
  ' Affichage du texte txt$ sur le picture p% en x%,y%,
  ' Police et taille de départ fnt$ et sz% (fnt$="" et sz%=0: fonte et taille actuels)
  ' avec enrichissements dans le corps du texte:
  ' <F=...> police, <S=...> taille,
  ' <C=hRRGGBB...> couleur RGB sous forme hexa, ou <C=xxx...> sous forme numérique
  ' <B>...</B> gras, <I>...</I> italique, <U>...</U> souligné
  ' Les dimensions résultantes du texte en pixels sont rendues dans le clipboard
  ' sous la forme d'une chaîne Ascii: "www,hhh"
  DIM_LOCAL me%,i%,j%,k%,k1%,a$,s$,a1$,c$,r%,g%,b%,hl%,xi%,yi%,w%
  me% = 800: MEMO me%: HIDE me%: WIDTH me%,1000: ITEM_ADD me%,txt$
  PRINT_TARGET_IS p%
  IF fnt$<>"" THEN FONT_NAME p%,fnt$
  IF sz% <> 0 THEN FONT_SIZE p%,sz%
  xi% = x%: yi% = y%: w% = 0
  FOR i% = 1 TO COUNT(me%)
      a$ = ITEM_READ$(me%,i%)
      k1% = 0: k% = INSTR(a$,"<"): IF k% > 0 THEN k1% = INSTR_POS(a$,">",k%+1)
      WHILE k1%>0
          PRINT_LOCATE x%,y%: a1$= LEFT$(a$,k%-1): PRINT a1$
          x% = x%+TEXT_WIDTH(a1$,p%)
          s$ = MID$(a$,k%+1,k1%-k%-1): a$ = RIGHT_POS$(a$,k1%+1)
          IF MID$(s$,2,1) = "="
              IF LEFT$(s$,2)="F=": ' Fonte
                  FONT_NAME p%,RIGHT_POS$(s$,3)
              END_IF
              IF LEFT$(s$,2)="S=": ' Taille
                  FONT_SIZE p%,VAL(RIGHT_POS$(s$,3))
              END_IF
             IF LEFT$(s$,2) = "C=": ' Couleur
                  IF UPPER$(MID$(s$,3,1)) = "H": ' couleur sous forme hexa RRGGBB
                    r%=HEX(MID$(s$,4,2)): g%=HEX(MID$(s$,6,2)): b%=HEX(MID$(s$,8,2))
                  ELSE: ' couleur sous forme numérique R*65536+G*256+B
                    j% = VAL(RIGHT_POS$(s$,3))
                    r%=INT(j%/65536): g%=BIN_AND(j%,65280)/256: b%=BIN_AND(j%,255)
                  END_IF
                  FONT_COLOR p%,r%,g%,b%
              END_IF
          ELSE
              IF s$ = "B" THEN FONT_BOLD p%
              IF s$ = "/B" THEN FONT_BOLD_OFF p%
              IF s$ = "I" THEN FONT_ITALIC p%
              IF s$ = "/I" THEN FONT_ITALIC_OFF p%
              IF s$ = "U" THEN FONT_UNDERLINE p%
              IF s$ = "/U" THEN FONT_UNDERLINE_OFF p%
          END_IF
          ' a$ = RIGHT_POS$(a$,k1%+1)
          k1%=0: k% = INSTR(a$,"<"): IF k% > 0 THEN k1% = INSTR_POS(a$,">",k%+1)
      END_WHILE
      IF a$ = "" THEN a$ = " "
      PRINT_LOCATE x%,y%: PRINT a$: j%=x%+TEXT_WIDTH(a$,p%): IF j%>w% THEN w%=j%
      hl% = TEXT_HEIGHT(a$,p%)
      x% = xi%: y% = y%+hl%
  NEXT i%
  CLIPBOARD_STRING_COPY STR$(w%-xi%)+","+STR$(y%-yi%): ' dimensions du texte
  DELETE me%
END_SUB
Le texte lui-même contient les enrichissements, fonte, taille, gras; italique, souligné, couleur, sous forme de balises incluses dans .le texte.
La forme est analogue à celle du format .rtf (wordpad), avec les balises contenues entre les caractères '<' et '>', par exemple:
<B> pour caractères gras, </B> fin de gras.
Affichage d'un texte formaté dans un picture Txt10

Ajout du 23/12
--------------
Grâce aux travaux de l'ami Klaus, en faisant appel aux fonctions RichEdit de KGF.dll, une sub qui permet de passer d'un texte au format .rtf (donc rédigé sous Wordpad par exemple, ce qui évite de mettre soi-même les balises et donne plus de libertés dans le formatage) au format image .bmp qu'on peut donc insérer facilement dans un Picture:
Code:
DIM frtf$,fbmp$
frtf$ = "C:\TEMP\MonDocument.rtf": ' document créé dans WordPad
fbmp$ = "Z:\Imgbmp.bmp": ' image résultante (chemin à adapter)
WIDTH 0,600: HEIGHT 0,SCREEN_Y-30: BORDER_SMALL 0: COLOR 0,164,255,255
RtfToBmp(frtf$,fbmp$)
' Affichage du résultat:
PICTURE 1: TOP 1,10: LEFT 1,10: WIDTH 1,550: HEIGHT 1,HEIGHT(0)-50
CAPTION 0,clipboard_string_paste$: ' dimensions de l'image
FILE_LOAD 1,fbmp$
END
' ==============================================================================
SUB RtfToBmp(frtf$,fbmp$)
  ' Conversion d'un texte formaté .RTF en image .BMP (ou clip si fbmp$="")
  ' Si fichier, les dimensions sont dans le clipboard, sous la forme wwwxhhh)
  ' Le Form 0 doit être assez grand pour contenir l'ensemble du texte.
  DIM_LOCAL RE%,res%,wt%,ht%,fm%,im%,mg%,mh%,x%,y%
  mg%=(WIDTH(0)-WIDTH_CLIENT(0))/2: mh%=HEIGHT(0)-HEIGHT_CLIENT(0)-mg%: ' marges Form 0
  DLL_ON "C:\PANORAMIC\KGF\KGF.dll": '  <================== À ADAPTER ==========
  RE% = DLL_CALL1("RichEditCreate",HANDLE(0))
  res% = DLL_CALL5("RichEditGeometry",RE%,0,0,600,800): ' x, y, w, h
  res% = DLL_CALL2("RichEditFileLoad",RE%,ADR(frtf$))
  ' dimensions du résultat :
  res% = DLL_CALL4("RichEditGetTextSizes",RE%,HANDLE(0),ADR(wt%),ADR(ht%))
  fm%=900
  FORM fm%: TOP fm%,0: LEFT fm%,0: WIDTH fm%,SCREEN_X: HEIGHT fm%,SCREEN_Y
    BORDER_HIDE fm%: HIDE fm%: 2D_TARGET_IS fm%: WAIT 100
  ht% = ht%-ht%/3
  x% = LEFT(0)+mg%+3: y% = TOP(0)+mh%+3: ' (bordures du RE% = 3 pixels)
  im%=fm%+1: IMAGE im%: 2D_IMAGE_COPY im%,x%,y%,x%+wt%,y%+ht%: ' capture de l'image affichée
  res% = DLL_CALL1("RichEditDelete",RE%): ' suppression du RichEdit
  DLL_OFF
  IF fbmp$ = ""
      CLIPBOARD_COPY im%
  ELSE
      FILE_SAVE im%,fbmp$: clipboard_string_copy str$(wt%)+"x"+str$(ht%)
  END_IF
  2D_TARGET_IS 0: DELETE fm%: DELETE im%
END_SUB
' ==============================================================================
NB: la conversion en bmp se fait par saisie du contenu de l'écran, donc le texte formaté doit tenir dans l'écran (Form 0 dimensionné en conséquence avant l'opération).


Dernière édition par JL35 le Sam 23 Déc 2017 - 17:16, édité 4 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 8:22

Bonjour à tous,

Bien vu JL35, l'idée d'utiliser des "balises" pour formater le texte, c'est excellent.
Cette SUB est bien pratique, bravo.

Il te reste à nous concocter un outil couleur qui fournisse les codes couleurs en HEXA.
(txt$ = txt$+cr$+"<F=Lucida Console><S=14>Pour <C=FF0000>écrire<C=000000> un mot")

En tous cas cheers bravo !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 9:45

Bravo JL35, très bonne astuce
Revenir en haut Aller en bas
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 14:01

Merci mes bons amis pour vos commentaires !

Jean Claude, quand même, c'est à l'usage des programmeurs et non pas du 'vulgum pecus', et n'importe quel programmeur peut exprimer une couleur en hexa.
Évidemment, si on veut vulgariser, il faudra envisager un petit module de conversion, mais ça c'est à la portée de tout le monde (programmeur ...).

Ce qui serait intéressant, peut-être, ce serait de reprendre la syntaxe exacte .rtf, de façon à rédiger le texte dans wordpad, avec ses enrichissements, de l'enregistrer en .rtf, et de le relire dans un picture avec interprétation des balises.
Ce serait bien plus facile pour la rédaction.

C'est une idée... j'ai le nom de la sub: RtftoPicture(), c'est déjà ça Very Happy

PS Je me suis un peu mélangé les pinceaux, le format cité est beaucoup plus proche du html que du rtf (balises entre < et >), et plus facile à interpréter.
Et en plus on a un outil pour afficher ça en Panoramic; HVIEWER ...
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 16:45

Citation :
Évidemment, si on veut vulgariser, il faudra envisager un petit module de conversion, mais ça c'est à la portée de tout le monde (programmeur ...).
Il est facile d'utiliser la fonction hex$ pour produire un code hexa à partir d'un entier. Et si l'on veut le code hexa sur 8 chiffres, on fait:
Code:
H$ = right$("0000000"+hex$(couleur%),8)

Et pour produire un nombre entier de couleur, à partir de R%, G% et B%:
Code:
couleur%=(B%*266+G%)*256+R%
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 16:55

Eh bien, voilà, Jean Claude, il suffisait de demander à Klaus pour avoir la solution simplissime !

Au fait, merci Klaus.

Du coup on peut envisager la balise couleurs comme ceci:
soit <C=hRRGGBB> ... valeurs hexadécimales (préfixe h ou H)
soit <C=xxxxx..> ... valeur numérique = R*65536 + G*256 + B
Et la section prise en compte de couleur dans la sub devient:
Code:
             IF LEFT$(s$,2) = "C=": ' Couleur
                  IF UPPER$(MID$(s$,3,1)) = "H": ' couleur sous forme hexa RRGGBB
                    r%=HEX(MID$(s$,4,2)): g%=HEX(MID$(s$,6,2)): b%=HEX(MID$(s$,8,2))
                  ELSE: ' couleur sous forme numérique R*65536+G*256+B
                    j% = VAL(RIGHT_POS$(s$,3))
                    r%=INT(j%/65536): g%=BIN_AND(j%,65280)/256: b%=BIN_AND(j%,255)
                  END_IF
                  FONT_COLOR p%,r%,g%,b%
              END_IF
(j'ai modifié en conséquence là-haut)
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 18:19

Merci Klaus, la formule est "simple", "heu... courte" pour transformer une couleur RGB en Hexa.

Cela a fait travailler les neurones de JL35 Razz

@JL35,
j'ai voulu tester ton code rectifié (en haut), il y a un hic

Affichage d'un texte formaté dans un picture Image_17

J'ai aussi remarqué qu'il y a 4 variables globales qui ne servent à rien. (les 4 dernières)

A+

PS: fausse alerte ! j'ai recopier une nouvelle fois le code, ça marche ! cheers
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Affichage d'un texte formaté dans un picture Empty
MessageSujet: +++   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 18:49

Jolie réalisation !
Ca peut effectivement toujours servir,
en attendant le rich_text
que devait nous concocter Jack
tout en en haut de sa liste.
Mais comme il y a des complications...
Ca peut alors devenir utile.
Félicitation !
cheers alien cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 19:26

Jean Claude,
les variables globales en trop... conséquences des essais, le haut n'est qu'un exemple d'appel de la sub. (et il vaut mieux en avoir quatre en trop que une en moins Very Happy ).
En fait ces variables correspondaient au retour de la sub:
Code:
a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,",")
wt%=VAL(LEFT$(a$,k%-1)): ht%=VAL(RIGHT_POS$(a$,k%+1)): ' dimensions du texte créé
message "w="+str$(wt%)+" h="+str$(ht%)
(la sub renvoie dans le presse-papier les dimensions en pixels du texte créé, ce qui peut servir à dimensionner le picture en conséquence).

jjn4
Merci.
J'avais pensé à une sub d'édition, pour créer le texte (ou fichier texte) à afficher avec la sub ci-dessus.
Pour ça j'ai bien une sub d'édition assez complète, qui utilise les nombreuses fonctions RichEditxxx  de Kgf.dll de l'ami Klaus, qui sont très puissantes, malheureusement ça produit un texte (fichier) au format rtf, qui est trop différent de ce que j'ai fait là-haut.
Ça aurait été plus intéressant au format html, qui est beaucoup plus simple à analyser.
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 21:52

Citation :
Pour ça j'ai bien une sub d'édition assez complète, qui utilise les nombreuses fonctions RichEditxxx  de Kgf.dll de l'ami Klaus, qui sont très puissantes, malheureusement ça produit un texte (fichier) au format rtf, qui est trop différent de ce que j'ai fait là-haut.
A titre d'essai, j'ai déposé une version de KGF.dll sur le WebDav, avec une nouvelle fonction:
Code:
res% = dll_call2("RichEditHtmlFileSave",RE%,adr(html$))
avec html$ contenant le nom du fichier HTML en sortie.

Pourrais-tu essayer stp et me dire ce que tu en penses ?

EDIT

23h02: version corrigée et testée. Pour moi, ça marche.
Essaie avec cette démo:
Code:
' test_RichEditHtmlFileSave.bas

label close0
dim res%, RTF$, HTML$, RE%


on_close 0,close0
dll_on "KGF.dll"

RE% = dll_call1("RichEditCreate",handle(0))
res% = dll_call5("RichEditGeometry",RE%,10,40,400,300)

RTF$ = "MonDocument.rtf"
res% = dll_call2("RichEditFileLoad",RE%,adr(RTF$))

HTML$ = "MonDocument.html"
res% = dll_call2("RichEditHtmlFileSave",RE%,adr(HTML$))
 
end

close0:
  res% = dll_call1("RichEditDelete",RE%)
  return
Ca marche avec le choix des polices, de la couleur, attributs comme gras, italique et soiligné...
Je n'ai pas tout testé, mais ça semble pas mal - à toi de jouer !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 23:07

Super Klaus, je vais essayer ça avec grand plaisir !
Peut-être pas ce soir, mais sûr, ça m'intéresse beaucoup !
Merci à toi.
Revenir en haut Aller en bas
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyMer 20 Déc 2017 - 23:24

J'ai bien téléchargé une version KGF.zip (qui contient KGF.dll du 20/12 à 21h18, taille 1485k) mais j'ai une erreur ligne 17 de ta démo, manifestement fonction "RichEditHtmlFileSave" non reconnue... ça ne doit pas être la bonne version.
Sur le webdav (CloudMe) j'ai seulement KGF_wizard., pas de KGF.zip..

-> Not correct arithmetic expression : Error in function. Line : 17

et en attendant... bonne nuit !
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 0:10

La DLL en question est sur le WebDav, dossier DLLs\ et s'appelle KGF.dll. Je viens de la télécharger à partir de mon WebDav et essayé - ça marche. Bon, je vais la mettre également sur mes sites... - voilà qui est fait. Et j'utilise le fichier RTF suivant:
Spoiler:
ce qui donne le résultat HTML suivant:
Citation :
<FONT size=3>
<P dir=ltr>Ceci est un texte </FONT><FONT size=3 face="Arial Black"><FONT size=3 face="Arial Black">en format Arial Black</P></FONT></FONT><FONT size=3 face=Arial><FONT size=3 face=Arial>
<P dir=ltr>Arial en </FONT></FONT><FONT color=#0070c0 size=3 face=Arial><FONT color=#0070c0 size=3 face=Arial><FONT color=#0070c0 size=3 face=Arial>Bleu</FONT></FONT></FONT><FONT size=3 face=Arial><FONT size=3 face=Arial> et </FONT></FONT><FONT color=#ff0000 size=3 face=Arial><FONT color=#ff0000 size=3 face=Arial><FONT color=#ff0000 size=3 face=Arial>rouge.</P></FONT></FONT></FONT><FONT size=3 face=Arial><FONT size=3 face=Arial>
<P dir=ltr>Arial en <B>Gras</B> et <I><U>Italique Souligné</I></U>.</P>
<P dir=ltr> </P></FONT></FONT>
et à l'écran, dans ce programme de démo:
Affichage d'un texte formaté dans un picture Aa117
et, en double-cliquant sur ce fichier HTML, dans Firefox, j'ai:
Affichage d'un texte formaté dans un picture Aa211
Ca semble bon, non ? Je ne suis pas mécontent de cette petite avancée, je dois dire...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 11:25

Excuse-moi Klaus, je me suis débrouillé comme un manche, je cherchais KGF.zip sur le webdav alors qu'il fallait aller dans DLLs...
Bon, j'ai récupéré la bonne version, lancé rapidement ton exemple, et ça a l'air très satisfaisant !
Je regarderai de plus près cet après-midi, mais, a priori, un grand merci Klaus ! je sens que je vais bien m'amuser.
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 11:33

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 12:37

Ce qui est étonnant aussi, c'est la compacité du format html par rapport au format rtf
fichier html 1k, fichier rtf 33k
pour un résultat d'affichage identique ! et plus universel pour le html.
Et qui pour nous s'affiche parfaitement dans un Hviewer
Revenir en haut Aller en bas
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 13:47

Finalement, c'est plus simple, grâce à KGF.dll.

Il n'y a plus à interpréter les balises, c'est l'objet Hviewer qui s'en charge, et ça ouvre toutes les possibilités.
Le texte d'origine est créé dans WordPad avec tous ses enrichissements et sauvegardé au format .RTF.
C'est ce fichier rtf qui est donné en paramètre à la sub, ainsi qu'un numéro de Hviewer préalablement déclaré et aux dimensions adéquates pour contenir le texte.
Dans la sub, grâce aux fonctions RichEdit de KGF.dll, ce fichier est converti au format html, lequel est affiché dans le Hviewer.

Le seul problème (inconvénient ?) c'est qu'il faut préalablement dimensionner le Hviewer pour qu'il contienne le texte formaté (dont on ne peut connaître à l'avance les dimensions), il faudra le faire par tâtonnements successifs.
Code:
' Affichage dans un HVIEWER d'un texte formaté au format .RTF (Wordpad)
DIM f$,wh%,hh%
COLOR 0,180,255,255
f$ = "C:\TEMP\MonDocument.rtf": ' document créé dans WordPad
wh% = 340: hh% = 200: ' Dimensions du HVIEWER en fonction du texte à afficher
HVIEWER 10: TOP 10,20: LEFT 10,50: WIDTH 10,wh% : HEIGHT 10,hh%
RtfToScreen(f$,10)
END
' ==============================================================================
SUB RtfToScreen(f$,h%)
  ' Affichage d'un fichier f$ .rtf (origine wordpad) dans un Hviewer h%
  DIM_LOCAL RE%,res%,fhtm$,wh%,hh%
  wh% = WIDTH(h%): hh% = HEIGHT(h%)
  fhtm$ = "C:\TEMP\Mondoc.htm"
  DLL_ON "C:\PANORAMIC\KGF\KGF.dll": '  <================== À AJUSTER ==========
    RE% = dll_call1("RichEditCreate",handle(0))
    res% = dll_call5("RichEditGeometry",RE%,0,1200,wh%,hh%)
    res% = dll_call2("RichEditFileLoad",RE%,adr(f$))
    res% = dll_call2("RichEditHtmlFileSave",RE%,adr(fhtm$))
    res% = dll_call1("RichEditDelete",RE%)
  DLL_OFF
  FILE_LOAD h%,fhtm$: FILE_DELETE fhtm$
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 14:50

Oui du moins jusqu'à ce que Klaus ait une idée et nous offre une fonction qui nous donne directement les bonnes dimensions Wink Ne sous-estime pas la capacité d'adaptation phénoménale de notre Klaus Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 15:00

Ben... j'allais justement proposer de recharger KGF.dll, et d'essayer le code suivant:
Code:
dim Largeur%, Hauteur%
...
  Largeur% = dll_call3("RichEditFunction",RE%,14,adr(Hauteur%))
  message "Largeur="+str$(Largeur%)+"  Hauteur="+str$(Hauteur%)

Cela te donne la largeur globale et la hauteur globale de tout le texte en pixels dans le RichEdit, compte tenu des propriétés de police, taille, attibuts etc. Tu pourras utiliser cela pour dimensionner, au moins pour la largeur de ton HVIEWER. Pour la hauteur, ça dépendra du nombre de lignes et de la place disponible à l'écran...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 15:07

T'es gonflé Jicehel, je n'osais pas le demander Very Happy
Je regardais s'il n'y avait pas moyen de convertir le contenu du Hviewer en image pour pouvoir le réintégrer facilement dans un picture, et même le redimensionner, mais je n'ai rien trouvé.
On peut aussi intégrer un script au début du html pour définir les dimensions d'affichage, mais ça adapte en ajoutant des sauts de lignes, etc, ça ne change pas la dimension des caractères, donc guère intéressant.

Un truc que je trouve curieux, c'est que le fichier html produit par la fonction RichEditHtmlFileSave ne contient pas les balises d'encadrement classiques: <HTML> <BODY> ... </BODY> </HTML>, et pourtant ça marche, Hviewer l'affiche sans problème...
Revenir en haut Aller en bas
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 15:07

Mince alors, Klaus tu es encore allé plus vite que ton ombre !

C'est super, exactement ce que je cherchais, je regarde ça tout de suite !

RÉSULTAT: Avec l'exemple que tu as donné plus haut, ça me donne un résultat de 112 pixels x 65 pixels, manifestement en-dessous de la réalité (qui est d'environ 320 x 130 pixels)


Dernière édition par JL35 le Jeu 21 Déc 2017 - 15:17, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 15:10

Citation :
Un truc que je trouve curieux, c'est que le fichier html produit par la fonction RichEditHtmlFileSave ne contient pas les balises d'encadrement classiques: <HTML> <BODY> ... </BODY> </HTML>, et pourtant ça marche, Hviewer l'affiche sans problème...
Oui, et les browsers également. Suffit de double-cliquer sur le fichier...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 15:24

Je répète mon edit ci-dessus:
Résultat du RichEditFunction: Avec l'exemple que tu as donné plus haut, ça me donne un résultat de 112 pixels x 65 pixels, manifestement en-dessous de la réalité (qui est d'environ 320 x 150 pixels)
Revenir en haut Aller en bas
Klaus

Klaus


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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 18:53

Bon, ça a été un peu plus long. Selon l'aveu même de MicroSoft, la doc concernant le RichEdit contient quelques erreurs... Mais je pense avoir trouvé. Recharge la DLL et réessaie, stp.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture EmptyJeu 21 Déc 2017 - 19:19

J'ai rechargé la dll sur ton webdav... ça me donne toujours 112 x 78 pixels...

Pour voir, dans le fichier rtf j'ai allongé la 1ère ligne et ajouté une ligne à la fin.
J'ai toujours 112 pixels en largeur (inchangée), mais 104 en hauteur, qui elle a bien varié proportionnellement au nombre de lignes.

Ma sub, à tout hasard:
Code:
SUB RtfToScreen(frtf$,h%)
  ' Affichage dans le Hviewer h% d'un fichier texte formaté f$ (.rtf)
  ' (créé dans Wordpad)
  DIM_LOCAL RE%,res%,fhtm$,wt%,ht%
  fhtm$ = "C:\TEMP\Mondoc.htm": ' fichier provisoire résultat format htm
  DLL_ON "C:\PANORAMIC\KGF\KGF.dll": '  <================== À AJUSTER ==========
    RE% = DLL_CALL1("RichEditCreate",handle(0))
    res% = DLL_CALL5("RichEditGeometry",RE%,0,1200,600,600): ' créé hors écran
    res% = DLL_CALL2("RichEditFileLoad",RE%,adr(frtf$))
    res% = DLL_CALL2("RichEditHtmlFileSave",RE%,adr(fhtm$)): ' conversion rtf -> htm
    wt% = DLL_CALL3("RichEditFunction",RE%,14,ADR(ht%)): ' dimensions du résultat
    res% = DLL_CALL1("RichEditDelete",RE%)
  DLL_OFF
  message str$(wt%)+" x "+str$(ht%)
  WIDTH h%,wt%: HEIGHT h%,ht%
  FILE_LOAD h%,fhtm$: FILE_DELETE fhtm$
END_SUB


Dernière édition par JL35 le Jeu 21 Déc 2017 - 19:34, édité 2 fois
Revenir en haut Aller en bas
Contenu sponsorisé





Affichage d'un texte formaté dans un picture Empty
MessageSujet: Re: Affichage d'un texte formaté dans un picture   Affichage d'un texte formaté dans un picture Empty

Revenir en haut Aller en bas
 
Affichage d'un texte formaté dans un picture
Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Problème d'affichage d'image dans un Picture.
» Boîte de saisie de texte formaté
» Position d'affichage du texte
» Recherches dans un fichier texte
» probleme d'affichage avec l'objet picture

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