Toon posts:

[VB6] Tekst in lijn krijgen tijdens het printen *

Pagina: 1
Acties:
  • 563 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste tweakers,

Als eindwerk heb ik de opdracht een boutenprogramma te maken voor een serrebouwer Deforche. Het programma is bijna af, maar deze moet nog een afgewerkt en gestructureerd worden
Het printen lukt ook al, maar ik heb toch nog een vraag:
Hoe kun je uw tekst centreren, op één lijn krijgen. Net zoals je in microsoft word via tabs verschillende regels op dezelfde lijn kunt krijgen. In mijn programma zou er links de naam van de plaats waar de bouten zitten staan. Dan er naast de grote van de bouten, en nog eens er naast het aantal bouten. Zodat alle regels op één lijn zijn. Hier de code dat ik nu gebruik:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub mnuFilePrint_Click()
    On Error Resume Next
    If Fe_Btn Is Nothing Then Exit Sub
Printer.Scale (0, 0)-(8.5, 11#)
Printer.FontName = "Arial"
Printer.FontSize = 12
Printer.CurrentX = 1: Printer.CurrentY = 1
Printer.FontSize = 10
Printer.Print "Gordingen" + "M8  x 20     " + Fe_Btn.Btn_Gord_M8_20.Text
Printer.CurrentX = 1
Printer.Print "Gordingen in dak" + "M8  x 25     " + Fe_Btn.Btn_Gord_M8_25.Text
Printer.CurrentX = 1
Printer.Print "Kruisen" + "M8  x 20     " + Fe_Btn.Btn_Kr_M8_20.Text
Printer.CurrentX = 1
Printer.Print "Kruisen in dak" + "M8  x 25     " + Fe_Btn.Btn_Kr_M8_25.Text
Printer.CurrentX = 1
Printer.Print "Koppeling van beide liggerhelften" + "M10 x 40" + Fe_Btn.Kpl_Lgrhelften.Text
Printer.EndDoc
End Sub


Met deze code print hij wel mooi af, maar niets staat in lijn ==> zou meer in tabelvorm moeten. Kan iemand mij helpen?? Ik werk in Visual Basic 6

In een programmatje van het internet afgehaald vond ik volgend code bij het printen. Wat is de functie van die Tab(26)

code:
1
2
3
4
  Printer.Print Tab(26); "  High  = " + lblHigh.Caption
  Printer.Print Tab(26); "  Ave   = " + lblAve.Caption
  Printer.Print Tab(26); "  Low   = " + lblLow.Caption
  Printer.Print Tab(26); "  Trend = " + lblTrend.Caption

[ Voor 42% gewijzigd door Verwijderd op 09-05-2004 14:44 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Ik ben geen VB genie, maar is het niet mogelijk een tab karakter af te drukken op de plaats waar je normaal op tab duwt in bijv. Word? Ik vermoed dat die Tab(26) daar iets mee te maken heeft...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
NMe84 schreef op 09 mei 2004 @ 15:12:
Ik ben geen VB genie, maar is het niet mogelijk een tab karakter af te drukken op de plaats waar je normaal op tab duwt in bijv. Word? Ik vermoed dat die Tab(26) daar iets mee te maken heeft...
Jap, klopt. Na effen te testen met die Tab(26) is het gelukt om alles in lijn te krijgen, hier een deel van de nieuw code

code:
1
2
3
4
5
6
7
8
9
10
11
    On Error Resume Next
    If Fe_Btn Is Nothing Then Exit Sub
Printer.Scale (0, 0)-(8.5, 11#)
Printer.FontName = "Arial"
Printer.FontSize = 12
Printer.CurrentX = 1: Printer.CurrentY = 1
Printer.FontSize = 10
Printer.Print "Gordingen"; Tab(40); "M8  x 20"; Tab(70); Fe_Btn.Btn_Gord_M8_20.Text
Printer.CurrentX = 1
Printer.Print "Gordingen in dak"; Tab(40); "M8  x 25"; Tab(70); Fe_Btn.Btn_Gord_M8_25.Text
Printer.EndDoc

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 15:09

Maasluip

Kabbelend watertje

Anders moet je je Printer.CurrentX gebruiken, daarmee kun je ook halverwege de pagina printen. Let er dan wel op dat je de voorgaande regel met een ; afsluit, dus:
code:
1
2
3
4
Printer.CurrentX = 1: Printer.CurrentY = 1
Printer.Print "Gordingen" + "M8  x 20";
Printer.CurrentX = 5
Printer.Print Fe_Btn.Btn_Gord_M8_20.Text


Je moet wel weten hoe breed die eerste tekst is. Kun je met de TekstWidth functie (als ik me niet vergis) doen.

Signatures zijn voor boomers.