Zellbereich-Auswählen-Dialog

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tobiwan
Beiträge: 3
Registriert: Di, 06.02.2007 18:26
Wohnort: Berlin

Zellbereich-Auswählen-Dialog

Beitrag von tobiwan »

Hi,
ich hab erst angefangen mich mit Basic zu befassen, und wollte fragen, ob es eine Möglichkeit gibt einem Dialog ein Feld hinzuzufügen, über das man einen Zellbereich per Maus aus der Tabelle direkt auswählen kann (z.B. wie im Dialog für die Änderung des Datenbereichs eines Diagramms in Calc)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zellbereich-Auswählen-Dialog

Beitrag von komma4 »

Willkommen im Forum.

Nein, so ein Steuerelement steht nicht zur Verfügung.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zellbereich-Auswählen-Dialog

Beitrag von turtle47 »

komma4 hat geschrieben:Nein, so ein Steuerelement steht nicht zur Verfügung.
Sorry Winfried wenn ich Dich berichtige, aber in einem per Code erstellten Dialog kann man ein solches Steuerelement erzeugen.

Ein Beispiel dafür ist die Extension Mottco.

Für einen Einsteiger natürlich nicht gerade der richtige Einstieg. :(

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellbereich-Auswählen-Dialog

Beitrag von Stephan »

Ein Beispiel dafür ist die Extension Mottco.
Stimmt - jedoch Anmerkung:

das Ganze funktioniert meines Wissens derzeitig in OOo 3.0 nicht (in z.B. 2.4.0 hingegen schon), das liegt aber an OOo und nicht an mottco.


Gruß
Stephan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zellbereich-Auswählen-Dialog

Beitrag von komma4 »

turtle47 hat geschrieben:
komma4 hat geschrieben:Nein, so ein Steuerelement steht nicht zur Verfügung.
Sorry Winfried wenn ich Dich berichtige, aber in einem per Code erstellten Dialog kann man ein solches Steuerelement erzeugen.
Korrekt, Jürgen, das habe ich übersehen: man kann es erzeugen (besser: nachbilden).

Aber -wie man sieht- ist damit ein erhöhter Programmieraufwand verbunden.
Ein direkt nutzbares Steuerelement (im Dialog-Editor, oder durch ansprechbare, verfügbare Module) gibt's nicht... und für Anfänger ist der Nachbau nicht trivial.

Ich muss mir auch noch mal ansehen, wie die Auswahl mit der Maus erfasst und in den Dialog übernommen wird...
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellbereich-Auswählen-Dialog

Beitrag von Stephan »

man kann es erzeugen (besser: nachbilden).

Aber -wie man sieht- ist damit ein erhöhter Programmieraufwand verbunden.
Nee, wirklich nicht.

Das Ganze ist ein fertiger Listener und nicht mehr:
http://api.openoffice.org/docs/common/r ... tener.html

Hier mal der entsprechende wesentliche Code aus mottco:

Code: Alles auswählen

Sub dialog_verkleinern(element)
' verkl_Listener As Object 
' verkl_Result As String 
' verkl_Select As Boolean 
' verkl_Prop(2) As New com.sun.star.beans.PropertyValue
verkl_View = ThisComponent.getCurrentController()
Set verkl_Listener = CreateUnoListener("verkleinernList_","com.sun.star.sheet.XRangeSelectionListener")
verkl_View.addRangeSelectionListener (verkl_Listener) 
verkl_Prop(0).Name = "InitialValue" 
verkl_Prop(0).Value = ""
verkl_Prop(1).Name = "Title" 
verkl_Prop(1).Value = "Zelle " 
verkl_Prop(2).Name = "CloseOnMouseRelease" 
verkl_Prop(2).Value = False 
verkl_Select = False 
verkl_View.startRangeSelection(verkl_Prop()) 
Do While (verkl_Select = False) 
'warten auf Selektion
Loop 
verkl_View.removeRangeSelectionListener(verkl_Listener)
If verkl_Select = True And Len(verkl_Result) > 0  Then 
      oDialog1.getControl(element).Text = verkl_Result
End If 

End Sub
Ganz im Gegenteil denke ich darüber nach das Ganze doch noch manuell nachzubauen, weil es derzeitig (OOo 3.0) nicht funktioniert. Das ist aber nur die Frage das in 3.0 ein Programmfehleer ist sonst wäre das nicht nötig.
Ein direkt nutzbares Steuerelement (im Dialog-Editor, oder durch ansprechbare, verfügbare Module) gibt's nicht
Nein, natürlich nicht, eine INput-Box setzt sich ja auch nicht aus separat behandelbaren Steuerelementen zusammen.



Gruß
Stephan
Antworten