FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 13:26

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 17 Nov 2017 - 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 1.91 du 24 Février 2013: extension de PrinterFunction

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 17:14

Nouvelle version de KGF.dll:
Version V1.91 du 24 Février 2013

Nouveautés:
La fonction PrinterFunction a été élargie:

Le code 9 (retourner des valeurs utiles) à deux nouvelles options:
7: largeur du texte spécifié à l'impression
8: hauteur du texte spécifié à l'impression
Dans ces deux cas, il faut passer adr(txt$) en paramètre opt2% pour mesurer le texte contenu dans txt$

Nouveau code 10:
10 = imprimer le texte txt$ dans un rectangle à partir de la position actuelle
opt1% = adr(txt$)
opt2% = len(txt$)
opt3% = (largeur*32768 + hauteur)*2 + option de fond
option de fond
0 = fond opaque
1 = fond transparent
Ce code permet de maîtriser l'espace que prend un texte, aussi bien verticalement que horizontalement. Tout texte qui dépasse les dimensions du rectangle ne sera tout simplement pas imprimé.

La combinaison de ces deux nouveautés permet de mieux gérer la mise en page en cas de juxtaposition de zones de texte ou d'images.

Il y a une nouvelle fonction dans KGF_SUB.bas pour gérer plus facilement le nouveau code 10 de PrinterFunction:
PrinterFunctionTextInRectangle(txt$,largeur%,hauteur%,opt%) : ' PrinterFunction f%=10
avec:
txt$ = texte à imprimer à partir de la position actuelle
largeur%, hauteur% = dimensions du rectangle délimitant
opt% = indicateur pour le fond: 1 = fond transparent 0 = fond opaque

Modules modifiés:
KGF.dll, KGF_SUB.bas, KGF.chm, KGF.doc, KGF.pdf
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 17:56

Voici un petit exemple d'application de ces deux nouveautés:
Code:
' demo_PrintTextInRectangle.bas

dlist 1

KGF_initialize("KGF.dll")

SelectWindowsPrinter()
PrinterManagerStartDoc()

creer("a")
imprimer(10,10)

creer("b")
imprimer(1610,10)

creer("c")
imprimer(820,10)

creer("d")
imprimer(450,500)

PrinterManagerEndDoc()

end

sub creer(x$)
  dim_local i%, s$
  s$ = ""
  clear 1
  for i%=1 to 20
    s$ = s$ + string$(5,x$)
    item_add 1,s$
  next i%
end_sub

sub imprimer(x%,y%)
  dim_local i%, n%, h%, txt$
  n% = count(1)
  txt$ = item_read$(1,1)
  PrinterFunctionGetValues(8,txt$)
  h% = PrinterFunctionGetValues%
  for i%=1 to n%
    PrinterFunctionAbsolutePosition(x%,y%+(i%-1)*h%)
    txt$ = item_read$(1,i%)
    PrinterFunctionTextInRectangle(txt$,750,400,1)
  next i%
end_sub

#INCLUDE "KGF_SUB.bas"

On peut ainsi facilement placer des rectangles de texte où on peut, entourer une image de textes, superposer du texte à une image (avec l'option 1 pour fond transparent), etc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 18:26

J'étais justement en train de me demander comment imprimer des lignes successives, ne connaissant pas la hauteur du texte, et bien voilà, c'est fait. (Je ne vois pas d'autre moyen, le retour chariot/interligne n'étant pas pris en compte ?)

Quelques petites remarques concernant la doc de KGF.dll (KGF.hlp):
- dans les fonctions PrinterPrintText et PrinterFunction, les couleurs sont bien au format BGR (comme dans les images bmp) et non pas RGB comme indiqué (d'ailleurs les exemples le montrent): couleur = B*256*256 + G*256 + R.
- Dans les paramètres de PrinterPrintText il faut évidemment lire x%... y% et non x%... x%, c'est un détail.
- Le petit code exemple de PrinterFunction n'a pas été rectifié (ADR(phnd%)... au lieu de phnd%).
- Le mot ellipse ne prend pas d'accent sur le 1er e ( Wink )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 19:16

àJL35:
Pour la doc:
Tu devrais télé-charger KGF.chm à partir de MyDrive dossier DLLs\Documentation CHM\ . C'est ce fichier qui est à jour. La version HLP n'est plus maintenue, et elle n'est plus disponible que suite à la demande expresse d'un des Panoramciens. Tout ce que tu as relevé, est corrigé dans la version CHM.

En ce qui concerne l'impression multi-ligne: effectivement, les caractères chr$(13) et chr$(10) ne sont pas interprétés à l'impression, contrairement à l'affichage. Je posterai très bientôt une solution à ce problème.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 19:26

Merci Klaus, effectivement c'est un peu trompeur ces fichiers obsolètes qui font partie de la distribution, mais bon, il suffit de le savoir.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 24 Fév 2013 - 19:39

Bon, ben...je vais aller me mettre à jours... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 19:53

J'ai modifié KGF_SUB.bas pour lui ajouter deux procédures qui impriment un texte multi-lignes à l'intérieur d'un rectangle:

PrintTextInRectangleFromDList(d%,x%,y%,w%,h%)
d% = numéro de DLIST (ou LIST ou MEMO) contenant le texte à imprimer
x%,y% = coin en haut à gauche du rectangle récepteur
w%,h% = largeur et hauteur du rectangle

PrintTextInRectangleFromString(t$,x%,y%,w%,h%)

t$ = chaîne de caractères contenant le texte à imprimer (lignes séparées par chr$(13)+chr$(10) )
x%,y% = coin en haut à gauche du rectangle récepteur
w%,h% = largeur et hauteur du rectangle

Le résultat des deux procédures est identique. Je pense que cela résoud une grande partie des problèmes de mise en page.

Et voici le petit programme de démo adapté à cela:
Code:
' demo_PrintTextInRectangle.bas

dim txt$, mode%
dlist 1

mode% = message_confirmation_yes_no("Le texte à imprimer est dans un DLIST ?")

KGF_initialize("KGF.dll")

SelectWindowsPrinter()
PrinterManagerStartDoc()

if mode%=1
  creer("a")
  PrintTextInRectangleFromDList(1,10,10,750,640)
  creer("b")
  PrintTextInRectangleFromDList(1,1650,250,750,800)
  creer("c")
  PrintTextInRectangleFromDList(1,820,380,750,900)
  creer("d")
  PrintTextInRectangleFromDList(1,450,410,750,405)
else
  creer("a")
  PrintTextInRectangleFromString(txt$,10,10,750,640)
  creer("b")
  PrintTextInRectangleFromString(txt$,1650,250,750,800)
  creer("c")
  PrintTextInRectangleFromString(txt$,820,380,750,900)
  creer("d")
  PrintTextInRectangleFromString(txt$,450,410,750,405)
end_if

PrinterManagerEndDoc()

message "Terminé."
terminate

end

sub creer(x$)
  dim_local i%, s$
  s$ = ""
  txt$ = ""
  clear 1
  for i%=1 to 20
    s$ = s$ + string$(5,x$)
    item_add 1,s$
    txt$ = txt$ + s$ + chr$(13) + chr$(10)
  next i%
end_sub

#INCLUDE "KGF_SUB.bas"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 19:59

Pire que Lucky Luke, tu tires plus vite que ton ombre... !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 24 Fév 2013 - 20:21

Tirer, tirer,...en tout cas programmer c'est sûr !

lol! lol! lol! lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Dim 24 Fév 2013 - 20:25

Bien pratique la fonction 9 de PrinterFunction, avec la hauteur de texte, facile d'imprimer des lignes successives, merci Klaus !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Lun 25 Fév 2013 - 16:56

Encore une remarque sur la doc (je parle bien cette fois de KGM.chm):
PrinterFunction, code fonction 2, les opt2% et opt3% semblent bien être les dimensions (largeur et hauteur) de la figure, et non pas les coordonnées de son coin inférieur droit.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Lun 25 Fév 2013 - 17:14

Merci d'éplucher la doc, JL35 !

Il y a bien une erreur dans la doc à ce niveau, mais ce n'est pas tout à fait ce que tu penses.

Les formes sont dessinées à partir de la position courante, et opt2% et opt3% donnent la largeur et la hauteur du rectangle englobant la forme. Ceci est corrigé dans la doc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   Lun 25 Fév 2013 - 17:43

Eh, ce n'est pas tout à fait désintéressé, j'épluche la doc parce que j'utilise les fonctions !
Oui pour la largeur et la hauteur c'est bien ce que j'avais compris (en fait je parlais du rectangle, là il n'y a pas d'ambigüité).

Pour les couleurs, est-ce bien partout au format BGR (B*256*256+G*256+R) et non pas RGB ?

Bon, apparemment nouvelle version (déjà), je regarde.

Tiens, avec la nouvelle version, je ne peux plus lire KGF.chm, j'ai bien les titres mais je n'ai plus accès aux contenus... bizarre...

autant pour moi, ça marche, j'avais un blocage de sécurité à lever (Avast).

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   

Revenir en haut Aller en bas
 
1.91 du 24 Février 2013: extension de PrinterFunction
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Février 2013] Quelques nouveautés et informations !
» [festival] - Le Troll et légende - le 29, 30, 31 mars 2013
» [Résolu] Comment Transférer d'un carte SD à Mapsource CN Europe 2013
» pas de carte 2013 après téléchargement
» Quelques captures de Comodo Internet Security 2013

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: