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.
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
1.91 du 24 Février 2013: extension de PrinterFunction Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
1.91 du 24 Février 2013: extension de PrinterFunction 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
Le Deal du moment : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

 

 1.91 du 24 Février 2013: extension de PrinterFunction

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 15: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
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 15: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
http://klauspanoramic.comxa.com/index.html
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 16: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
Klaus

Klaus


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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 17: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
http://klauspanoramic.comxa.com/index.html
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 17: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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: re   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 17:39

Bon, ben...je vais aller me mettre à jours... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 17: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
http://klauspanoramic.comxa.com/index.html
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 17:59

Pire que Lucky Luke, tu tires plus vite que ton ombre... !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: re   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 18: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
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyDim 24 Fév 2013 - 18: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
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyLun 25 Fév 2013 - 14: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
Klaus

Klaus


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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyLun 25 Fév 2013 - 15: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
http://klauspanoramic.comxa.com/index.html
JL35




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

1.91 du 24 Février 2013: extension de PrinterFunction Empty
MessageSujet: Re: 1.91 du 24 Février 2013: extension de PrinterFunction   1.91 du 24 Février 2013: extension de PrinterFunction EmptyLun 25 Fév 2013 - 15: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
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
1.91 du 24 Février 2013: extension de PrinterFunction
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 1.92.du 25 Février 2013 - extension de PrinterFunction
» 2.07 du 16 Mars 2013: extension des possibilités pour Excel
» 1.94 du 26 Février 2013: ajout ReplaceStringInBinaryFile
» 1.95 du 27 Février 2013: fonction ReadBlockFromBinaryFile...
» 1.96 du 27 Février 2013: ajout ReadBlockFromBinaryFile

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: