Listbox für Anfänger

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Listbox für Anfänger

Re: Listbox für Anfänger

von keksi1970 » Di, 21.07.2009 15:34

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

Re: Listbox für Anfänger

von keksi1970 » Di, 21.07.2009 15:02

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

von komma4 » Di, 21.07.2009 15:01

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

von Nina » Di, 21.07.2009 13:52

hast du mitlerweile herausgefunden, wie das mit dem SelectedItem geht???

Code: Alles auswählen

liste.SelectedItem()
funktioniert bei mir nicht. Oder liegt bei mir das Problem wo anders???

Re: Listbox für Anfänger

von CaptainCannabis » Sa, 04.04.2009 03:06

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

Code: Alles auswählen

Wahl = liste.SelectedItem()
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

von CaptainCannabis » Fr, 03.04.2009 23:34

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. :lol:

Hab dan Code auch mal kommentiert ud ordentlich strukturiert - vielleicht hifts ja jemand weiter.

Re: Listbox für Anfänger

von CaptainCannabis » Fr, 03.04.2009 21:19

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

von komma4 » Fr, 03.04.2009 19:48

... weil CSVFormat nicht gesetzt wurde!

Code: Alles auswählen

CVSFormat = ListoxDialog.getByName( "CSVName" ) 

Hilft das?

Listbox für Anfänger

von CaptainCannabis » Fr, 03.04.2009 18:56

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?

Nach oben