Imprimer une form

protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007 - 9 févr. 2006 à 10:56
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 9 févr. 2006 à 15:08
Bonjour à tous,
Je suis novice en developpement et je souhaiterais une explication simple ou un exemple simple pour imprimer un formulaire avec l'objet printer.mon formulaire est composé de nombreuses frames, label et textbox, imagebox...
pourriez-vous m'expliquer le cheminement à suivre afin de programmer l'impression de mon formulaire avc l'objet printer.C'est un projet ke je dois présenter! merci de bien vouloir m'aider

[mailto:protozorus@msn.com protozorus@msn.com]

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
9 févr. 2006 à 11:06
En quel langage programme tu ? VBA, VB6 ou VB.NET ?

En VB6, c'est toujours la galère d'imprimer le contenu de contrôles sur un formulaire !

Il faut parcourir chaque contrôle, puis récupèrer leur position et leur taille, et enfin, imprimer ce que tu veux (texte, image, checkbox, etc.)

En gros, ca donne :

Dim oControl as control
For Each oControl In Me.Controls

if typeof ocontrol is textbox then

let Printer.CurrentX = ocontrol.left
let Printer.CurrentY = ocontrol.top
Printer.Print ocontrol.Text

end if

Next oFor1

_
Avant de poster dans le forum,
Prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
0
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
9 févr. 2006 à 11:23
re ,

merci de m'avoir repondu, j'avance tout doucement mais j'avance!

En effet le developpe en vb6.
Ma form contient de nombreuses frames image list.
Si je comprends bien pour chacun des controles de ma feuille, je dois definir leur place;
Mes frames sont composées de plusieurs listbox, pour que l'impression soit correcte, je dois definir l'emplacement de la frame puis ensuite l'emplacement des listes dans cette frames?

Une fois la position des controles effectuer l'instructuion "print.enddoc" suffit-elle a imprimer mon formulaire?

j'essai juste de comprendre la demarche a suivre pour pouvoir imprimer mon formulaire.
merci de m'aider!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2006 à 11:46
fonction PrintForm...

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
9 févr. 2006 à 11:56
Merci pour printform mais ceci n'imprime que la parite du formulaire visible à l'ecran, non?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
9 févr. 2006 à 14:11
salut,

encore une kestion:
est-il necessaire de copier les controles frame qui contiennent des list ou copier directement les list ?

une parti de code correspond a cela:

For Each controle In frmapercu.Controls


If TypeOf controle Is Frame Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.Frame
End If
If TypeOf controle Is ListBox Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.List
End If
If TypeOf controle Is Label Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.Caption
End If
If TypeOf controle Is Image Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.Picture
End If

Cela vous semble t-il correct?

merci de votre attention
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
9 févr. 2006 à 14:16
Oula, tu mélange un peu tout là :
Tout les éléments ne peuvent pas être directement imprimés, par exemple, les listes, ou les images, ca donnerai plutôt :

For Each controle In frmapercu.Controls If TypeOf controle Is Frame Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.Frame
End If
If TypeOf controle Is ListBox Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
for i = 0 to control.listcount - 1
printer.currentx = controle.left
printer.print(control.list(i)
next i
End If
If TypeOf controle Is Label Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.Print controle.Caption
End If
If TypeOf controle Is Image Then
Let Printer.CurrentX = controle.Left
Let Printer.CurrentY = controle.Top
Printer.PaintPicture controle.left, controle.top
End If
next

_
Avant de poster dans le forum,
Prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
0
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
9 févr. 2006 à 14:22
lol,

oula je commence a comprendre, la manipulation est loin d'etre evidente je vais tester de mon coté trankilement!
Je refrai sans doute apel a ton savoir!
Merci bien
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
9 févr. 2006 à 14:40
Oui, comme je l'ai dit : l'impression n'a jamais été simple en VB6 !



Malheureusement, il n'existe pas de fonction "standard" pour imprimer
un contrôle, il faut faire le code soit-même. Du coup, pour chaque
contrôle, ca change : tu n'imprime pas un listbox comme un listview à
plusieurs colonne par exemple...

_
Avant de poster dans le forum,
Prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
0
protozorus Messages postés 38 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 novembre 2007
9 févr. 2006 à 14:48
re,
une fois la mise en forme effectuer pour afficher le resultat est-ce:

For Each controle In frmapercu
printer.paintpicture controle.picture, printer.currentX, printer.currentY
next controle

ou

print.enddoc
j'espere avoir été clair
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
9 févr. 2006 à 15:08
Pour imprimer ce que tu veux ensuite : Printer.EndDoc

_
Avant de poster dans le forum,
Prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
0
Rejoignez-nous