anoniem Geplaatst: 17 mei 2007 Delen Geplaatst: 17 mei 2007 Hallo, Voor een programma moet ik een tabel met bedragen afdrukken, waarbij het natuurlijk netter staat als de bedragen netjes met de komma boven elkaar staan. Wie weet hoe ik dat voor elkaar kan krijgen in VB6? Met het berekenen van de plaats en vervolgens afdrukken met behulp van printer.CurrentX en printer.CurrentY krijg ik dit niet voor elkaar omdat de cijfers in breedte verschillen. Ik wil, als het even kan, niet teruggaan naar een lettertype met vaste breedtes voor de cijfers. Alvast bedankt voor de moeite. René Quote Link naar reactie
anoniem Geplaatst: 20 mei 2007 Auteur Delen Geplaatst: 20 mei 2007 [quote:fdd48b544c="DutchNoName"] Voor een programma moet ik een tabel met bedragen afdrukken, waarbij het natuurlijk netter staat als de bedragen netjes met de komma boven elkaar staan. Wie weet hoe ik dat voor elkaar kan krijgen in VB6? Met het berekenen van de plaats en vervolgens afdrukken met behulp van printer.CurrentX en printer.CurrentY krijg ik dit niet voor elkaar omdat de cijfers in breedte verschillen. Ik wil, als het even kan, niet teruggaan naar een lettertype met vaste breedtes voor de cijfers. [/quote:fdd48b544c]Ik denk dat de uitvoer "lelijker" is als je het zo doet, omdat dan de cijfers achter de komma niet allemaal onder elkaar staan... Wat je zou kunnen doen is het getallen in drie delen opsplitsen. - Getal voor de komma - Komma - Getal achter de komma En dan... - Het getal voor de komma rechts gecentreerd plaatsen op de juiste positie. - Vervolgens de komma op een vaste plaats plaatsen. - Het getal achter de komma links gecentreerd plaatsen op de juiste positie. Quote Link naar reactie
anoniem Geplaatst: 21 mei 2007 Auteur Delen Geplaatst: 21 mei 2007 Inmiddels zelf nog verder aan het sleutelen geslagen. Ik ben uitgegaan van een gemiddelde breedte van een letter/cijfer. Door nu de cijfers 1 voor 1 te printen op een onderlinge vaste afstand, met uitzondering van een punt of komma, komen de cijfers wel goed onder elkaar. Oké, het is niet de meest fantastische oplossing, het werkt wel. Ik ga jouw oplossing ook proberen en kijken wat het mooiste resultaat geeft. In ieder geval bedankt. [code:1:6917baa3dc]With Printer j = .CurrentX For i = Len(sTekst) To 1 Step -1 .CurrentY = y If i < Len(sTekst) And i > 1 Then sLetter = Mid$(sTekst, i - 1, 1) Else sLetter = Mid$(sTekst, i, 1) End If Printer.Print Mid$(sTekst, i, 1) If sLetter = "," Or sLetter = "." Then j = j - 70 Else j = j - 120 End If .CurrentX = j Next i End With [/code:1:6917baa3dc] Quote Link naar reactie
anoniem Geplaatst: 21 mei 2007 Auteur Delen Geplaatst: 21 mei 2007 ik zou sowieso zo'n font gebruiken waarbij elke karater even breed is (ben de term even vergeten), zoals Courier New. Dan heb je, zolang je het goede aantal spaties steeds berekend, altijd je komma's en punten onder elkaar staan. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen