Listbox manipulieren
Moderator: Moderatoren
Listbox manipulieren
Hallo zusammen,
ich hab mir einen Dialog mit einer Listbox zusammen gebaut. In die Listbox werden die Namen einiger Objekte(Grafiken, Textboxen) der Drawpage eingelesen und not Visible geschaltet. Der Benutzer klickt durch Auswahl in der Listbox diese Objekte sichtbar.
Ich möchte nun die abgearbeiten Objekte in der Listbox irgenwie kenntlich machen. Mein Plan war dem Nameneintrag zu verändern - ein Zeichen voran zu stellen. Das führt zu Fehlermeldungen.
Hat jemand einen Tipp für mich, wie das Kenntlichmachen von Listeneinträgen gebacken bekomme?
HW
ich hab mir einen Dialog mit einer Listbox zusammen gebaut. In die Listbox werden die Namen einiger Objekte(Grafiken, Textboxen) der Drawpage eingelesen und not Visible geschaltet. Der Benutzer klickt durch Auswahl in der Listbox diese Objekte sichtbar.
Ich möchte nun die abgearbeiten Objekte in der Listbox irgenwie kenntlich machen. Mein Plan war dem Nameneintrag zu verändern - ein Zeichen voran zu stellen. Das führt zu Fehlermeldungen.
Hat jemand einen Tipp für mich, wie das Kenntlichmachen von Listeneinträgen gebacken bekomme?
HW
Zuletzt geändert von hawe am Di, 11.12.2012 21:43, insgesamt 1-mal geändert.
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Listbox manipulieren
Ich fürchte darauf kann man schwerlich anworten ohne das Du die 'Begleitumstände' genauer erklärst weil:
1.
augenscheinlich weist Du wie man prinzipiell eine Listbox mit Einträgen bestückt (ich denke auch per Code denn Du sprichst von "eingelesen")
2.
obwohl Du 1. weißt tritt ein Problem bei der Andersbestückung auf (mehr ist ja ein Vorherstellen bestimmter 'Markierungen' nicht), nur Welches soll das sein?
Gruß
Stephan
1.
augenscheinlich weist Du wie man prinzipiell eine Listbox mit Einträgen bestückt (ich denke auch per Code denn Du sprichst von "eingelesen")
2.
obwohl Du 1. weißt tritt ein Problem bei der Andersbestückung auf (mehr ist ja ein Vorherstellen bestimmter 'Markierungen' nicht), nur Welches soll das sein?
Gruß
Stephan
Re: Listbox manipulieren
Hm,
reicht es, wen ich sage, ich möchte die Listeneinträge, die geklickt oder ausgewählt wurden irgendwie Kennzeichnen.
Es soll erkennbar sein, welche Listeneinträge schon abgearbeitet wurden = Haken dran oder Farbe setzen oder...
reicht es, wen ich sage, ich möchte die Listeneinträge, die geklickt oder ausgewählt wurden irgendwie Kennzeichnen.
Es soll erkennbar sein, welche Listeneinträge schon abgearbeitet wurden = Haken dran oder Farbe setzen oder...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Listbox manipulieren
mir zumindest nicht, denn ich verstehe das grundsätzliche Problem nicht, denn nach Deiner eigenen Aussage ist doch klar das Du weißt wie mal Listeneinträge zuweist und es trotzdem eion Problem gibt, nur Welches?reicht es, wen ich sage [...]
z.B.:
Du hast die Listeneinträge
aaa
bbb
ccc
zugewiesen, nun ist offensichtlich überhaupt kein anderes Vorgehen nötig um z.B. die Listeneinträge
x_aaa
bbb
ccc
zuzuweisen, wobei "x_aaa" damit der markierte Eintrag wäre.
Also wo ist das Problem? Ohne das zu verstehen kann ich nichts Richtiges antworten.
Es sei denn Du willst wörtlich einen Haken setzen oder die Farbe der Einträge ändern, denn derartige 'Markierungen' gehen meines Wissens hier nicht (In z.B. VB ginge Haken setzen, das ist mir bekannt)
Allerdings schriebst Du ja bereits selbst:
und das entspricht ja meinem Vorschlag ein "x_" voranzustellen, nur verstehe ich dann eben nicht welchen Fehler das auslösen sollte.Mein Plan war dem Nameneintrag zu verändern - ein Zeichen voran zu stellen. Das für zu Fehlermeldungen.
Gruß
Stephan
Re: Listbox manipulieren
Alles auf Null...
Ich habe eine Listbox mit Einträgen, ok?
Jetzt klickt der Anwender auf eine Eintrag der Listbox, ok?
Dieser Eintrag soll nun so verändert werden - dauerhaft, dass der Anwender sieht, dass er den Eintrag angeklickt hat, ok?
Änderungen an den Items der Listbox werden schlicht ignoriert...
Ich bin jetzt dazu übergegangen einen Listeintrag raus zu nehmen und neu einzufügen. Allerdings gefällt mir der Code nicht, da eine Änderung der Liste einen neuen StatusEvent auslöst, denn ich nicht brauchen kann und mittels BreakEvent abbreche:
Ich habe eine Listbox mit Einträgen, ok?
Jetzt klickt der Anwender auf eine Eintrag der Listbox, ok?
Dieser Eintrag soll nun so verändert werden - dauerhaft, dass der Anwender sieht, dass er den Eintrag angeklickt hat, ok?
Code: Alles auswählen
oListboxModel.StringItemList(xx) = "oder was immer ich versucht habe ist scheibgeschützt"
Ich bin jetzt dazu übergegangen einen Listeintrag raus zu nehmen und neu einzufügen. Allerdings gefällt mir der Code nicht, da eine Änderung der Liste einen neuen StatusEvent auslöst, denn ich nicht brauchen kann und mittels BreakEvent abbreche:
Code: Alles auswählen
Dim oDoc AS Object
Dim oForms AS Object
Dim oShape AS Object
Dim oDlg AS Object
Dim oCtrl AS Object
Dim oSheet AS Object
Sub Click_Listfeld( MouseEvt )
Dim j as Integer
If EventBreak then Exit Sub
' ps= myctrl.selectItemPos(0,true)
' oCtrl.selectedItemPos & " : " & oCtrl.selectedItem
oForms = oSheet.drawpage
for j = 0 to oForms.Count - 1
oShape = oForms.getByIndex(j)
if oShape.Name = box( oCtrl.selectedItemPos) then j=oForms.Count+1
next
'msgbox oCtrl.dbg_methods
oCtrl.Model.removeItem(MouseEvt.Selected,0)
oShape.visible = not oShape.visible
j = MouseEvt.Selected
if oShape.visible then
oCtrl.addItem(MARK & Box(j),j)
else
oCtrl.addItem(Box(j),j)
End If
EventBreak = true
oCtrl.selectItemPos(j, true)
EventBreak = false
End Sub
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Listbox manipulieren
ja, so verstand ich das.Ich habe eine Listbox mit Einträgen, ok?
Jetzt klickt der Anwender auf eine Eintrag der Listbox, ok?
Dieser Eintrag soll nun so verändert werden - dauerhaft, dass der Anwender sieht, dass er den Eintrag angeklickt hat, ok?
weiß ich nicht, aber merkst Du das das eine völlig andere Aussage ist als bisher (oder nicht und es gibt doch eine Fehlermeldung?), da wahr nämlich die Rede von:Änderungen an den Items der Listbox werden schlicht ignoriert...
und darauf habe ich mich gestützt, denn ich habe das Ganze natürlich konkret durchprobiert ehe ich geantwortet habe:Das für zu Fehlermeldungen.
Code: Alles auswählen
Dim MAK_bib As Object
Dim dialog As Object
Dim akt
Sub Start_Dia()
BasicLibraries.LoadLibrary("Standard")
DialogLibraries.LoadLibrary("Standard")
MAK_bib = DialogLibraries.Standard.Dialog1
dialog = CreateUnoDialog(MAK_bib)
eintraege = Array("aaa","bbb","ccc")
dialog.Model.getByName("ListBox1").StringItemList = eintraege()
dialog.execute()
End Sub
Sub selektieren()
if akt = 1 Then
akt = 0
Exit Sub
End if
x = dialog.Model.getByName("ListBox1").StringItemList
For i = 0 To Ubound(x())
If x(i) = dialog.getControl("ListBox1").selectedItem AND Left(dialog.getControl("ListBox1").selectedItem, 2) <> "x_" Then
x(i) = "x_" & x(i)
x1 = x(i)
akt = 1
End If
Next i
dialog.Model.getByName("ListBox1").StringItemList = x()
dialog.getControl("ListBox1").selectItem(x1, True)
End Sub
ja, so dachte ich. (bzw. ich dachte, und nutze in meinem Code, die ganze Liste, das ist aber nur ein Detail, zumal Dein Weg der naheliegendere ist)Ich bin jetzt dazu übergegangen einen Listeintrag raus zu nehmen und neu einzufügen.
Dann kann ich Dir nicht weiterhelfen.Allerdings gefällt mir der Code nicht, da eine Änderung der Liste einen neuen StatusEvent auslöst, denn ich nicht brauchen kann und mittels BreakEvent abbreche:
Gruß
Stephan
Re: Listbox manipulieren
Hm,
in meinem ersten Versuchen ListItems zu ändern gab es Fehler. Welchen Pfad ich da gebaut habe bring ich nicht mehr zusammen. Kann auch sein, dass ich von OO zu LO gewechselt hab. OO macht wieder neue Fehler an dem Code, wie er in LO gelaufen ist.
Dann lass ich das mal so...
BTW:
oForms = oSheet.drawpage
oShape = oForms.getByIndex(j)
würde ich noch einen Weg suchen die drawpage Items per name abzuholen.
Hast Du einen Vorschlag dazu?
in meinem ersten Versuchen ListItems zu ändern gab es Fehler. Welchen Pfad ich da gebaut habe bring ich nicht mehr zusammen. Kann auch sein, dass ich von OO zu LO gewechselt hab. OO macht wieder neue Fehler an dem Code, wie er in LO gelaufen ist.
Dann lass ich das mal so...
BTW:
oForms = oSheet.drawpage
oShape = oForms.getByIndex(j)
würde ich noch einen Weg suchen die drawpage Items per name abzuholen.
Hast Du einen Vorschlag dazu?
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Listbox manipulieren
Wie wäre es damit:hawe hat geschrieben:würde ich noch einen Weg suchen die drawpage Items per name abzuholen.
Hast Du einen Vorschlag dazu?
Code: Alles auswählen
oShape = oForms.getByName("Tabelle3")
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Listbox manipulieren
Tja,
das wäre logisch, wenn es so wäre...
ist aber nicht so und ich hätte mir diese Frage gespart
BTW: Das ein DrawPage-ItemTabelle3 heißt wäre auch sehr ungewöhnlich...
das wäre logisch, wenn es so wäre...
ist aber nicht so und ich hätte mir diese Frage gespart
BTW: Das ein DrawPage-ItemTabelle3 heißt wäre auch sehr ungewöhnlich...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3