hi,
scheint als ob ich da was missverstanden habe. Mein Code zeigt wie man ein Formular verwendet. Dein Code zeigt, dass Du ein Dialog meinst, wie Du das auch im ersten Post geschrieben hast. Sorry...
Ich versuch die Scharte auszuwetzen. Es folgt ein Beispiel, welches einen Dialog erzeugt, Einträge in einer vorerst leeren Listbox des Dialoges hinzufügt und schliesslich anzeigt.
Eine zweite Subprozedur liest dan den selektierten Eintrag der Listbox aus und zeigt ihn mit einer MessageBox an.
Insgesamt kommt es aber auf dasselbe hinaus, wie das was Du scheinbar schon ausbrobiert hast, nur dass ich nicht 0, sondern den Text des Eintrages als Rückgabewert von getSelectedItem() bekomme.

Dennoch:
Code: Alles auswählen
Sub openCustomerDialog
' init brauchts um die DB-connection zu holen etc.
' out-of-scope hier
init()
' erzeuge den Dialog
DialogLibraries.LoadLibrary( "Standard" )
oCustomerDialog = CreateUnoDialog( DialogLibraries.Standard.CustomerDialog )
' listbox-control des Dialogs deklarieren
' istbox hat den Namen 'customerList'
Dim oList as Object
oList = oCustomerDialog.getControl( "customerList" )
' datenbank connection öffnen
oDBStatement = oDBConnection.createStatement()
' SELECT statement absetzten
oDBResult = oDBStatement.executeQuery( "SELECT [...] FROM [...] WHERE [...]" )
' für jeden Kunden-Eintrag in der DB gibts einen Eintrag
' in der Listbox
While oDBResult.next()
oList.addItem( oDBResult.getString(2) & " - " & oDBResult.getString(3) )
Wend
' schliess das resultset und das statement
oDBResult.close()
oDBStatement.close()
' zeige initialisierten Dialog an
oCustomerDialog.Execute()
End Sub
Der Dialog ist jetzt erschienen. Neben der Listbox gibt es einen Button, der durch drücken folgende Subprozedur aufruft:
Code: Alles auswählen
Sub showSelectedCustomer
' hole die List aus dem Dialog, der als globale
' variable deklariert ist
Dim oList as Object
oList = oCustomerDialog.getControl( "Kunden" )
' zeige den Wert des selektierten Eintrags an
MsgBox oList.getSelectedItem()
End Sub
Wie erwähnt verwendet die zweite Prozedur eine globale Variable oCustomerDialog. Ganz einfach am Anfang die VAriable ausserhalb jeglicher Subprozedur gloabl deklarieren:
Das ganze hab ich mit Linux unter 1.1rc nochmals getestet und lief auch auf 1.0.3