Impression VB + titre

cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008 - 24 oct. 2005 à 17:58
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 27 oct. 2005 à 08:03
Salut à tous,

Bon alors j'ai regardé à peu près partout (notamment sur le forum de vbfrance !)et je n'ai pas trouvé de réponse à ma question. Ptêt que certains d'entre vous pourront m'aider (en me donnant le code ou en me disant que j'ai bien cherché ! lol)
Je voudrais pouvoir imprimer une form au centre d'une page et ajouter un titre qui n'est pas dans cette form ( un titre placé au dessus de cette form).
Si qqn a une idée et en plus rapidement alors là ceserait le bonheur pour moi !!
Merci d'avance.



==============================================================

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 oct. 2005 à 20:25
Salut

Tu n'a pas du chercher assez car

voici un code qui fonctionne
A toi de l'adapter pour mettre ton titre

Il faut etre rigoureux sur le nommage des controles

Public Sub print_form()
For Each ctrl In Me.Controls
Call print_control(printer, ctrl)
Next
printer.EndDoc
End Sub

Private Sub print_control(printer As printer, ByVal control As Object)
If (Left(control.Name, 4) = "Line") Then
printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
ElseIf (Left(control.Name, 5) = "Image") Then
'printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
Dim stdPict As New StdPicture
Set stdPict = LoadPicture(App.Path & "\veau2.jpg")
printer.PaintPicture stdPict, control.Left, control.Top, control.Width, control.Height
Else

Select Case control.Alignment
Case vbCenter

printer.CurrentX = control.Left + control.Width / 2 - printer.TextWidth(control.Caption) \ 2
Case vbLeftJustify
printer.CurrentX = control.Left
Case vbRightJustify
printer.CurrentX = control.Left + control.Width - printer.TextWidth(control.Caption)
End Select

printer.CurrentY = control.Top

printer.FontBold = control.Font.Bold
printer.Font.Name = control.Font.Name
printer.Font.Size = control.Font.Size
If (LCase(Left(control.Name, 2) "lb")) Or (Left(control.Name, 5) "Label") Then
printer.Print control.Caption
Else
MsgBox control.Name
End If
End If
End Sub
0
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
26 oct. 2005 à 12:27
Alors d'abord merci d'avoir répondu.
Ensuite, c'est pas exactment bon (à moins que je n'aie pas très bien compris !).
En fait avec ce code, je ne peux pas imprimer une form mais seulement une picture.
Depuis l'envoi de mon message, j'ai réussi à mettre un titre et à imprimer une form mais toujours pas à la centrer. Donc ma question est toujours ouverte.
En plus avec un Visual Basic en allemand, c'est encore moins facile de trouver des solutions !!
Merci encore pour ta réponse.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 oct. 2005 à 08:03
Salut

Le code perlet d'imprimer différents control, mais le triatement est different pour les ligne et les images.

Il n'imprime pas les zones de texte c'est des labels a la place.

Tous les controles sont posse sur une forme.
Les labels sont prefixe par lbl
Comme ca le design est fait a la souris.
Et il n'est pas trop complexe de centrer le tout
en mettant un marge en X et en Y

exemple
printer.CurrentX = control.Left + MargeX

voila
0
Rejoignez-nous