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
» Gestion d'un système client-serveur.
qui peut résoudre mon prb Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
qui peut résoudre mon prb Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
qui peut résoudre mon prb Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
qui peut résoudre mon prb Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
qui peut résoudre mon prb Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
qui peut résoudre mon prb Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
qui peut résoudre mon prb Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
qui peut résoudre mon prb Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
qui peut résoudre mon prb Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
qui peut résoudre mon prb Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
qui peut résoudre mon prb Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
qui peut résoudre mon prb Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
qui peut résoudre mon prb Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
qui peut résoudre mon prb Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
qui peut résoudre mon prb Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -45%
PC Portable LG Gram 17″ Intel Evo Core i7 32 Go ...
Voir le deal
1099.99 €

 

 qui peut résoudre mon prb

Aller en bas 
3 participants
AuteurMessage
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

qui peut résoudre mon prb Empty
MessageSujet: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 9:23

bjr
qui pourrais me résoudre mon probleme
le source fonctionne bien au 1er click mais au click suivant
les fenêtre sont vides pourquoi?
ensuite comment je peut faire pour imprimer cette image?
proposé moi un source pour ouvrir la boite de dialogue de print
et de l'imprimer par la suite sans utilisé cmd.exe si possible
merci pour vos réponse et soutien

Code:
Label imprim
button 1
on_click 1,imprim
end
imprim:
If Object_Exists(3)=0
   form 3
End_If
show 3
   Image 2
   2d_image_copy 2,10,0,100,100
   2d_Target_is 3
   2d_image_paste 2,0,0
   delete 2
return

bonne journée!
Revenir en haut Aller en bas
Klaus

Klaus


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

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 9:36

Premier élément de réponse:
Lors du premier clic, l'image est chargée oar une copie de l'image de la form 0.
Lors des clics suivants, la form 3 existe déjà, et même si tu la "supprimes" par la croix rouge, elle continue d'exister. La preuve: fais un SHOW 3 après l'avoir fermé par la croix rouge, et elle reviendra...
Voici la solution: supprimer la form 3 chaque fois, comme ceci:
Code:
Label imprim
button 1
on_click 1,imprim
end
imprim:
  2d_target_is 0
  if object_exists(3)=1 then delete 3
  form 3
show 3
  Image 2
  2d_target_is 0
  2d_image_copy 2,10,0,100,100
  2d_Target_is 3
  2d_image_paste 2,0,0
  delete 2
return

Second élément de réponse:
Panoramic, à ce jour, n'a pas de commandes ou fonctions gérant l'impression. En attendant l'arrivée de ces fonctionnalités, tu peux utiliser KGF.dll. Regarde la doc dans la section "Gestion des impressions". Il y a une doc en ligne, et la section adéquate est ici:
http://klauspanoramic.esy.es/GestiondesimpressionsPrintermana.html#Print_FR
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 11:48

bonjour klaus
merci pour avoir résolu mon prb
par contre je suis coincé a l'imprante

Code:
  Dll_On "Kgf.Dll"
   res% = DLL_call2("SelectWindowsPrinter",adr(PrintName$),len(PrintName$))
   res% = DLL_call6("PrinterFunction",7,adr(PrintHdl%),adr(CanHdl%),1,Width_Client(3),Height_Client(3))
   res% = DLL_call4("PrinterManager",5,adr(PrintHdl%),adr(CanHdl%),1)
   Dll_Off

une précision je n'ai pas d'imprimante il me donne comme nom "microsoft print to pdf"
et au cas j'en aurais une comment doit-je faire?
le programe se plant
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 12:28

Bjr Marc37

Quand tu "pastes" une image sur le form 3, celle-ci s'efface si tu déplaces un autre form par dessus le form 3. Il faut ajouter un "picture":
Code:
Label imprim
button 1
on_click 1,imprim
end
imprim:
If Object_Exists(3)=0
  form 3 : left 3,100
End_If
show 3
  Image 2
  2d_image_copy 2,10,0,100,100
  if object_exists(4)=0 then picture 4 : parent 4,3 : full_space 4
  color 4,236,233,216 :' efface
  2d_Target_is 4
      2d_image_paste 2,0,0
      delete 2
  2d_Target_is 0
return
Revenir en haut Aller en bas
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 13:19

merci silverman

ma 1ere question est résolu

"Bjr Marc37" je n'suis pas Marc 37 lol
manque pour l'imprimer!
Revenir en haut Aller en bas
Klaus

Klaus


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

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 13:29

@Pascal10000:
Le code que tu donnes, est vraiment trop limité et incomplet. On ne voit pas ce qui est chargé dans les variables, et de toutes façons, tu décharges la DLL avant de lancer la fonction de "fin d'impression", donc rien n'est imprimé, l'imprimante (si elle a été ouverte !) reste ouverte et le programme se plante.

Poste stp un code complet, exploitable, pour qu'on puisse reproduire le problème et apporter une solution.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 13:46

je sais que c'est incomplet

c pour compléter la suite du source si dessus et
je m'y perd pour finalisé le code
merci d'avance
Revenir en haut Aller en bas
Klaus

Klaus


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

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 14:35

Je ne vais pas faire le programme pour toi - ce ne serait pas très productif. Mais je te donne deux éléments de réflexion:

1. la liste des fonctions et opérations, avec l'ordre dans lequel il faut les utiliser (cherche la docimentation de chaque fonction dans KGF.chm ou dans la doc en ligne indiquée plus haut):
Code:
' fonctions de gestion d'imprimante,
' classées par ordre d'utilisation:

' PrinterManagerOrientation (0)
' PrinterManagerCopies (0)
' PrinterManagerTitle (0)

' GetPrinterCount (x)
' SelectWindowsPrinter (x)

' PrinterManagerStartDoc (1)

' PrinterManagerNewPage (2)
' PrinterManagerReset (2)
' PrinterPrintText (2)
' PrinterDrawArc (2)
' PrinterFunctionText (2)
' PrinterFunctionForm (2)
' PrinterFunctionFlood (2)
' PrinterFunctionRelativePosition (2)
' PrinterFunctionAbsolutePosition (2)
' PrinterFunctionStyle (2)
' PrinterFunctionColor (2)
' PrinterFunctionImage (2)
' PrinterFunctionGetMetrics (2)
' PrinterFunctionGetValues (2)
 
' PrinterManagerEndDoc (3)

Et voici un programme de démo opérationnel:
Code:
' tutoriel_fonctions_impression.bas

' === programme principal, création de l'environnement Panoramic
labels()
constantes()
variables()
donnees()
form0()
menu()
GUI()
initialisations()
end

' === procédures pour le programme principal
sub labels()
  label imprimer3, sortir, debut_4, change_couleur, appliquer, ejecter
  label charger_image, imprimer4
end_sub

sub constantes()
end_sub

sub variables()
  dim no% : ' variable interne pour la création de nouveaux objets
  dim no1%, no2% : ' variables internes pour la création du menu
  dim printer_x%, printer_y% : ' mémorisation de la position d'impression
  dim no_page_1%, no_page_2% : ' numéros d'objet des containers des pages 1 et 2
  dim no_debut_4% : ' numéro d'objet du bouton "Début Etape 4"
  dim no_text% : ' numéro d'objet du texte à imprimer en page 1
  dim no_x%, no_y% : ' numéros d'objet pour la position du texte en page 1
  dim no_police% : ' numéro d'objet du nom de police du texte en page 1
  dim no_gras%, no_italique%, no_souligne%, no_barre% : ' options du texte
  dim no_rouge%, no_bleu%, no_vert% : ' couleurs du texte
  dim no_couleur% : ' picture de visualisation de la couleur du texte
  dim no_taille% : ' taille de la police du texte
  dim attrib$ : ' pour construire les attributs pour PrinterPrintText en page 1
  dim R%, G%, B%, X%, Y%, T% : ' pour paramètres pour PrinterPrintText en page 1
  dim no_open% : ' numéro d'objet du open_dialog pour trouver une image
  dim s$ : ' variable de travail
end_sub

sub donnees()
end_sub

sub form0()
  full_space 0
  caption 0,"Tutoriel pour l'utilisation des fonctions de gestion d'impression"
end_sub

sub menu()
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Fichiers"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Imprimer Etape 3"
    on_click no%,imprimer3
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"sortir"
    on_click no%,sortir

end_sub

sub GUI()
  no% = no% + 1 : button no% : no_debut_4% = no%
    top no%,40 : left no%,10 : width no%,130
    caption no%,"Début Etape 4" : on_click no%,debut_4
  no% = no% + 1 : container no% : no_page_1% = no% : inactive no%
    top no%,10 : left no%,150 : width no%,800 : height no%,300
    caption no%,"Page 1"
  no% = no% + 1 : edit no% : parent no%,no_page_1% : no_text% = no%
    top no%,20 : left no%,20 : width no%,380
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    s$ = "A l'aide de ce formulaire, préparez une ligne de texte."+chr$(13)+chr$(10)
    s$ = s$ + "Puis, utilisez le bouton Appliquer pour l' placer."+chr$(13)+chr$(10)
    s$ = s$ + "Répétez cela à volonté,"+chr$(13)+chr$(10)
    s$ = s$ + "puis utilisez Ejecter pour passer à la page suivante."
    top no%,60 : left no%,20 : caption no%,s$
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,20 : left no%,440 : caption no%,"X:"
  no% = no% + 1 : edit no% : parent no%,no_page_1% : no_x% = no%
    top no%,20 : left no%,460 : width no%,60
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,20 : left no%,560 : caption no%,"Y:"
  no% = no% + 1 : edit no% : parent no%,no_page_1% : no_y% = no%
    top no%,20 : left no%,580 : width no%,60
  no% = no% + 1 : combo no% : parent no%,no_page_1% : no_police% = no%
    top no%,50 : left no%,440 : width no%,200 : font_names_load no%
  no% = no% + 1 : check no% : parent no%,no_page_1% : no_gras% = no%
    top no%,80 : left no%,440 : caption no%,"Gras"
  no% = no% + 1 : check no% : parent no%,no_page_1% : no_italique% = no%
    top no%,100 : left no%,440 : caption no%,"Italique"
  no% = no% + 1 : check no% : parent no%,no_page_1% : no_souligne% = no%
    top no%,120 : left no%,440 : caption no%,"Souligné"
  no% = no% + 1 : check no% : parent no%,no_page_1% : no_barre% = no%
    top no%,140 : left no%,440 : caption no%,"Barré"
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,80 : left no%,540 : caption no%,"R:"
  no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_rouge% = no%
    top no%,80 : left no%,560 : min no%,0 : max no%,255 : position no%,0
    width no%,200 : on_change no%,change_couleur
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,110 : left no%,540 : caption no%,"G:"
  no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_vert% = no%
    top no%,110 : left no%,560 : min no%,0 : max no%,255 : position no%,0
    width no%,200 : on_change no%,change_couleur
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,140 : left no%,540 : caption no%,"B:"
  no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_bleu% = no%
    top no%,140 : left no%,560 : min no%,0 : max no%,255 : position no%,0
    width no%,200 : on_change no%,change_couleur
  no% = no% + 1 : picture no% : parent no%,no_page_1% : no_couleur% = no%
    top no%,20 : left no%,670 : height no%,50 : width no%,90 : color no%,0,0,0
  no% = no% + 1 : alpha no% : parent no%,no_page_1%
    top no%,190 : left no%,440 : caption no%,"Taille:"
  no% = no% + 1 : edit no% : parent no%,no_page_1% : no_taille% = no%
    top no%,190 : left no%,500 : width no%,500 : text no%,12
  no% = no% + 1 : button no% : parent no%,no_page_1%
    top no%,220 : left no%,440
    caption no%,"Appliquer" : on_click no%,appliquer
  no% = no% + 1 : button no% : parent no%,no_page_1%
    top no%,250 : left no%,440
    caption no%,"Ejecter" : on_click no%,ejecter

  no% = no% + 1 : container no% : no_page_2% = no% : inactive no%
    top no%,320 : left no%,150 : width no%,800 : height no%,300
    caption no%,"Page 2"
  no% = no% + 1 : open_dialog no% : no_open% = no%
  no% = no% + 1 : alpha no% : parent no%,no_page_2%
    s$ = "A l'aide du bouton Image, chargez une image."+chr$(13)+chr$(10)
    s$ = s$ + "Puis, utilisez le bouton Imprimer pour lancer l'impresssion."
    top no%,60 : left no%,20 : caption no%,s$
  no% = no% + 1 : button no% : parent no%,no_page_2%
    top no%,20 : left no%,440
    caption no%,"Image" : on_click no%,charger_image
  no% = no% + 1 : button no% : parent no%,no_page_2%
    top no%,50 : left no%,440
    caption no%,"Imprimer" : on_click no%,imprimer4

end_sub

sub initialisations()
  KGF_initialize("KGF.dll")
end_sub

' === routines évènement

' ici, on crée l'impression de l'étape 3
imprimer3:
  PrinterManagerStartDoc()
  ' imprimer le texte en police Arial taille 12, couleur bleue,
  ' en position (300,400), en gras et italique
  printer_x% = 300
  printer_y% = 400
  PrinterPrintText("Ceci est mon texte","Arial","GIAXAY",0,0,255,12,printer_x%,printer_y%)
  PrinterManagerEndDoc()
  return
 
  ' ici, on sort du programme
sortir:
 terminate
 
' ici, on débute l'étape 4 (page 1)
debut_4:
  inactive no_debut_4%
  active no_page_1%
  PrinterManagerStartDoc()
  return
 
' ici, on change la couleur du texte en étape 4 (page 1)
change_couleur:
  color no_couleur%,position(no_rouge%),position(no_vert%),position(no_bleu%)
  return
 
' ici, on applique le texte avec ses attributs à la page
appliquer:
  if numeric(text$(no_x%))=0
    message "Coordonnée X invalide"
    return
  end_if
  if numeric(text$(no_y%))=0
    message "Coordonnée Y invalide"
    return
  end_if
  if numeric(text$(no_taille%))=0
    message "Coordonnée Y invalide"
    return
  end_if
  X% = val(text$(no_x%))
  Y% = val(text$(no_y%))
  T% = val(text$(no_taille%))
  attrib$ = "AXAY" : ' pour le positionnement en absolu
  if checked(no_gras%)=1 then attrib$ = attrib$ + "G" : ' gras ?
  if checked(no_italique%)=1 then attrib$ = attrib$ + "I" : ' italique ?
  if checked(no_souligne%)=1 then attrib$ = attrib$ + "U" : ' souligné ?
  if checked(no_barre%)=1 then attrib$ = attrib$ + "S" : ' barré ?
  R% = position(no_rouge%)
  G% = position(no_vert%)
  B% = position(no_bleu%)
  PrinterPrintText(text$(no_text%),text$(no_police%),attrib$,R%,G%,B%,T%,X%,Y%)
  return

' ici, on éjecte la page 1 et on passe à la page 2 en étape 4
ejecter:
  PrinterManagerNewPage()
  inactive no_page_1%
  active no_page_2%
  return
 
' ici, on charge une image du disque
charger_image:
  s$ = file_name$(no_open%)
  return

' ici, on lance l'impression en étape 4
imprimer4:
  ' on construit d'abord la page 2
 
  ' positionner en absolu = (200,150)
  PrinterFunctionAbsolutePosition(400,150)
  ' dessiner un rectangle de 800x200 pixels au coins arrondis sur 25 pixels
  PrinterFunctionForm(1,800,200,25)
  ' remplir le rectangle de bleu (couleur RGB)
  PrinterFunctionFlood(0,200,200,255)
  ' positionner en absolu = (430,250)
  PrinterFunctionAbsolutePosition(410,240)
  ' imprimer un texte dans ce rectangle
  PrinterFunctionText("Texte dans rectangle",1)
 
  ' positionner en absolu = (300,550)
  PrinterFunctionAbsolutePosition(300,550)
  ' dessiner un rectangle de 800x600 pixels au coins arrondis sur 10 pixels
  PrinterFunctionForm(1,800,600,10)
  ' remplir le rectangle de bleu (couleur RGB)
  PrinterFunctionFlood(0,200,200,255)
  ' positionner en absolu = (430,250)
  PrinterFunctionAbsolutePosition(320,570)
  ' insérer l'image sélectionnée
  PrinterFunctionImage(s$,760,560)
 
  ' puis on ferme l'édition ce qui imprime tout
  PrinterManagerEndDoc()
  inactive no_page_2%
  active no_debut_4%
  return
 
' === lien lers KGF_SUB.bas
#INCLUDE "KGF_SUB.bas"

Avec ça, tu devrais avoir ce qu'il faut pour concevoir ton propre code. Si tu as encore des difficultés, alors poste le code complet, exécutable directement dans Panoramic_Editor, afin de pouvoir reproduire le problème.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb EmptyJeu 16 Nov 2017 - 15:30

merci klaus
avec ton code je devrais m'en sortir à préqent
et tester son fonctionnement bounce
Revenir en haut Aller en bas
Contenu sponsorisé





qui peut résoudre mon prb Empty
MessageSujet: Re: qui peut résoudre mon prb   qui peut résoudre mon prb Empty

Revenir en haut Aller en bas
 
qui peut résoudre mon prb
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un mystère à résoudre.
» un p'tit sudoku a resoudre
» Qui peut me dire?
» Résoudre une grille de SUDOKU
» Problème de maths à résoudre.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: