Hallo Leser,
ich habe mal wieder ich denke ein blödes Problem:
hinter einem Bevelbutton.action liegt folgender Code:
die dazu gehörige Listbox1 ist 3-spaltig und hat Header (sowas wie
"Name", "Vorname", "Telefon")
Ich möchte ganz simpel diese Listbox einlesen und auf dem Drucker
ausgeben!
Sub Action()
dim TabellenZeile(100,10),Header(10) as editfield
dim druck_zeile(100,10) as styledTextPrinter
dim s,z,ph,l,rand as integer
dim texthöhe,start as integer
dim text_in_listbox(100) as string
dim settings as string
dim pagesetup as printerSetup
dim g as graphics
dim blattbreite as integer
'
start= start+listBox1.width/listBox1.columncount
for z=0 to listBox1.listcount-1
for s=0 to listBox1.columncount -1
tabellenZeile(z,s)=new editfield
header(s)=new editField
tabellenZeile(z,s).text=listBox1.Cell(z,s)
header(s).bold=true
header(s).text=listBox1.heading(s)
next
next
hinweis.editField1.text="die Tabelle wurde erfolgreich gelesen."
hinweis.showmodal
'
''' ab hier Druckaufruf
PageSetup=New PrinterSetup
If PageSetup.PageSetupDialog Then
settings=PageSetup.SetupString
blattbreite=pagesetup.PageWidth
End If
msgBox str(blattbreite)
g=openprinterdialog()
texthöhe=listBox1.textSize
if g<>nil then
blattbreite=pagesetup.PageWidth
ph=10*72
rand=24
'
'' Heading drucken
'
start=(cdbl(listBox1.columnwidths)*listBox1.columncount)+1
+texthöhe+rand
for s=0 to listBox1.columncount-1
druck_Zeile(z,s)= header(s).styledtextprinter(g,blattbreite)
druck_zeile(z,s).drawblock start,texthöhe,ph'' <--- HIER
KNALLT ES MIT NILOBJECT
start= start+listBox1.width/listBox1.columncount
next
''Listeninhalte drucken
'
start=0
for z=0 to listBox1.listcount-1
start=(cdbl(listBox1.columnwidths)*listBox1.columncount)+1
+texthöhe+rand
for s=0 to listBox1.columncount-1
druck_Zeile(z,s)= tabellenZeile(z,s).styledtextprinter
(g,blattbreite)
druck_zeile(z,s).drawblock start,z*texthöhe+rand,ph ''<---
HIER KNALLT ES MIT NILOBJECT
start= start+listBox1.width/listBox1.columncount
next
next
else
MsgBox "Drucken wurde abgebrochen"
end if
Exception err as NilObjectException ''<--- SOWEIT KOMMT ES ERST GAR
NICHT
MsgBox "kein Objekt definiert"
End Sub
********************************************************
Beim Anlegen der Listbox1 mache ich folgendes:
Im Grunde will ich hier zunächst nur Zahlen reinschreiben
(listbox1.OPEN)
dim k,count as Integer
Listbox1.Heading(0)="Name"
listbox1.Heading(1)="Vorname"
listbox1.heading(2)="Telefon-Nr"
for count=0 to ListBox1.Columncount-1
for k=0 to 20
listbox1.addrow ""
listbox1.Cell(k,count)=str(k)
next
next
******************************************************
was ich komisch fand:
wenn ich einer Listbox einen initialvalue mit mehreren Zeilen (bei
den Eigenschaften) mitgebe, tritt dieser Fehler nicht auf.
In diesem Beispiel fülle ich die Zellen ja über einen kleinen Code.
Was läuft hier falsch???
Viele Grüße
Roland aus Hamminkeln
--------------------------------------------------------------------
Kluge Leute können sich dumm stellen. Das Gegenteil ist schwieriger.
(Kurt Tucholsky)