Seite 1 von 1
Listbox für Anfänger
Verfasst: Fr, 03.04.2009 18:56
von CaptainCannabis
Code: Alles auswählen
Sub Main
DialogLibraries.LoadLibrary("CSVImport")
dim ListboxDialog As Object
ListboxDialog = CreateUnoDialog(DialogLibraries.CSVImport.CSVFormat)
'ListboxDialog.Title = "CSV Herkunft wählen"
dim liste As Object
liste = CSVFormat.getControl("CSVName")
'liste.
ListboxDialog.Execute()
End Sub
Was mache ich hier falsch? Dialog "CSVFormat" ist unter "Meine Makros" - "CSVImport" angelegt und die Listbox hat den Namen "CSVName". Dennoch bekomme ich in der Zeile "liste = CSVFormat.getControl("CSVName")" eine Fehler von wegen unbekannter Objektvariable?
Re: Listbox für Anfänger
Verfasst: Fr, 03.04.2009 19:48
von komma4
... weil CSVFormat nicht gesetzt wurde!
Hilft das?
Re: Listbox für Anfänger
Verfasst: Fr, 03.04.2009 21:19
von CaptainCannabis
Ne war quasi doppelt gemoppelt. Habs hingekriegt. Ist jetzt erstmal ein einfachs Dialog Fenster mit einem Drop Down Feld. Jetzt mach ich mich mal an die Eigenschaften.
Code: Alles auswählen
Sub Main
dim CSVWahlDialog As Object
DialogLibraries.LoadLibrary("CSVImport")
CSVWahlDialog = CreateUnoDialog(DialogLibraries.CSVImport.CSVFormat)
CSVWahlDialog.Title = "CSV Herkunft wählen"
dim liste As Object
liste = CSVWahlDialog.getControl("CSVName")
'inhalt = oDialog1.GetControl("ListBox1")
'liste.
CSVWahlDialog.Execute()
End Sub
Re: Listbox für Anfänger
Verfasst: Fr, 03.04.2009 23:34
von CaptainCannabis
Code: Alles auswählen
Sub Main
DialogLibraries.LoadLibrary("CSVImport") 'Dialog Datenbank laden
dim CSVWahlDialog As Object 'Dialog-Objekt erstellen
CSVWahlDialog = CreateUnoDialog(DialogLibraries.CSVImport.CSVFormat) 'Pfad zum CSVWahlDialog
CSVWahlDialog.Title = "CSV Herkunft wählen" 'Titelleiste des Dialogs
dim liste As Object 'Listenfeld-Objekt erstellen
liste = CSVWahlDialog.getControl("CSVNamen") 'Zugriff auf Eigenschaften des Listenfelds
dim Alternativen(1) 'Array mit Listenfeldinhalt erstellen
Alternativen(0)="Volksbank" 'Feld 1
Alternativen(1)="Sparkasse" 'Feld 2
liste.addItems(Alternativen(),1) 'Array dem Listenfeld zufügen
CSVWahlDialog.Execute() 'Dialog ausführen
'If liste.SelectedItemPos > -1 then stellt fest, ob tatsächlich ein Eintrag ausgewählt wurde.
End SubSub Main
DialogLibraries.LoadLibrary("CSVImport") 'Dialog Datenbank laden
dim CSVWahlDialog As Object 'Dialog-Objekt erstellen
CSVWahlDialog = CreateUnoDialog(DialogLibraries.CSVImport.CSVFormat) 'Pfad zum CSVWahlDialog
CSVWahlDialog.Title = "CSV Herkunft wählen" 'Titelleiste des Dialogs
dim liste As Object 'Listenfeld-Objekt erstellen
liste = CSVWahlDialog.getControl("CSVNamen") 'Zugriff auf Eigenschaften des Listenfelds
dim Alternativen(1) 'Array mit Listenfeldinhalt erstellen
Alternativen(0)="Volksbank" 'Feld 1
Alternativen(1)="Sparkasse" 'Feld 2
liste.addItems(Alternativen(),1) 'Array dem Listenfeld zufügen
CSVWahlDialog.Execute() 'Dialog ausführen
'If liste.SelectedItemPos > -1 then stellt fest, ob tatsächlich ein Eintrag ausgewählt wurde.
End Sub
Hier der aktuelle Stand. Wieder viel gelernt

Soweit funkioniert es jedoch krieg ich das Listenfeld nur inaktiv. Also ausgegraut?!?
EDIT:
Tadaaa - Nur lesen auf nein gestellt - klappt.
Hab dan Code auch mal kommentiert ud ordentlich strukturiert - vielleicht hifts ja jemand weiter.
Re: Listbox für Anfänger
Verfasst: Sa, 04.04.2009 03:06
von CaptainCannabis
Code: Alles auswählen
public Wahl as String
Sub Main
CSVAuswahl()
msgBox Wahl
End Sub
Function CSVAuswahl
DialogLibraries.LoadLibrary("CSVImport") 'Dialog Datenbank laden
dim CSVWahlDialog As Object 'Dialog-Objekt erstellen
CSVWahlDialog = CreateUnoDialog(DialogLibraries.CSVImport.CSVFormat)'Pfad zum CSVWahlDialog
CSVWahlDialog.Title = "CSV Herkunft wählen" 'Titelleiste des Dialogs
dim liste As Object 'Listenfeld-Objekt erstellen
liste = CSVWahlDialog.getControl("CSVNamen") 'Zugriff auf Eigenschaften des Listenfelds
dim Alternativen(1) 'Array mit Listenfeldinhalt erstellen
Alternativen(0)="Volksbank" 'Feld 1
Alternativen(1)="Sparkasse" 'Feld 2
liste.addItems(Alternativen(),1) 'Array dem Listenfeld zufügen
dim buttonzugriff As Object 'Listenfeld-Objekt erstellen
buttonzugriff = CSVWahlDialog.getControl("ButtonWahl")
'buttonzugriff.model.State(0)
While liste.SelectedItemPos > -1 'stellt fest, ob tatsächlich ein Eintrag ausgewählt wurde.
buttonzugriff.State(false)
wend
Wahl = liste.SelectedItem()
CSVWahlDialog.Execute() 'Dialog ausführen
End Function
So ein wenig weitergefummelt aber ich steh erneut vor Problemen.
Frage 1: Wieso zeigt mir die MsgBox nichts an? Irgendwie übergebe ich da wohl nichts mit meinem
Frage 2:
Code: Alles auswählen
While liste.SelectedItemPos > -1
buttonzugriff.State(false) wend
Soll eine Schleife werden die den Button der den Dialog beendet sperrt oder ausblendet bis ein Wert aus dem Listenfeld ausgesucht wurde. Wie macht man das am elegantesten? das "‣State(false) scheint nicht zu funzen

Re: Listbox für Anfänger
Verfasst: Di, 21.07.2009 13:52
von Nina
hast du mitlerweile herausgefunden, wie das mit dem SelectedItem geht???
funktioniert bei mir nicht. Oder liegt bei mir das Problem wo anders???
Re: Listbox für Anfänger
Verfasst: Di, 21.07.2009 15:01
von komma4
Keine Ahnung...
Folgender Code funktioniert (dokumenten-spezifischer Dialog, eine Listbox mit drei Einträgen):
Code: Alles auswählen
GlobalScope.BasicLibraries.loadLibrary( "Tools" )
oDialog = loadDialog( "Standard" , "Dialog1" , ThisComponent.DialogLibraries )
oListbox = oDialog.getControl( "ListBox1" )
oListbox.selectItemPos( 2 , TRUE )
oDialog.execute()
print oListbox.selectedItem()
Bei der Anzeige ist der 3. Eintrag (Index: 2) markiert, nach der Anzeige wird der Text des gewählten Eintrags ausgegeben.
Re: Listbox für Anfänger
Verfasst: Di, 21.07.2009 15:02
von keksi1970
hi,
ungetestet würde ich sagen, die reihenfolge der commands sind falsch.
Logische Überlegung :
was macht das Makro ?
Code: Alles auswählen
While liste.SelectedItemPos > -1 'stellt fest, ob tatsächlich ein Eintrag ausgewählt wurde.
buttonzugriff.State(false)
wend
Durchlaufe die Schleife, bis ein Listeneintrag ausgewählt wurde !
danach speichere die Auswahl in der variablen "WAHL"
danach führe den Dialog aus
ohne Dialog keine Auswahl ?
Versuche es andersrum :
Fülle die Listbox
Führe den Dialog aus
Ordne deiner ListBox bei geänderten WErten ein Makro zu, welches dir in einer MSGBOX den ausgewählten Wert anzeigt.
also
Code: Alles auswählen
myListbox = myDlg.getControl("Listbox1")
myDlg.execute()
End Sub
Sub Anzeigen
If myListbox.selectedItem = "" then
exit sub
else
msgbox myListbox.selectedItem
End If
End Sub
LG
Andreas
Re: Listbox für Anfänger
Verfasst: Di, 21.07.2009 15:34
von keksi1970
gast1 hat geschrieben:SelectedItems(0)
nur bei mehrfachauswahl :
Übergibt, bei aktiver Mehrfachselektion, die ausgewählten Werte als ein Array von Strings. Ausgelesen werden können die Strings mit der Ubound-Funktion.
Dim Ergebnis()
Ergebnis = myCtrl.selecteditems
for i=0 to ubound(Ergebnis())
msgbox Ergebnis(i)
next i
LG
Andreas
edit sagt :
1. der Autor der vorgenannten Zeilen ist ykcim
2. Besuche für mehrwissen doch meine Lieblingsseite zum nachschlagen :
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig110