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)


Antwort per Email an