RadioButton, OptionsFelder in einem Dialog abfragen

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

Moderator: Moderatoren

howtoman
*
Beiträge: 19
Registriert: So, 29.05.2011 13:06

RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von howtoman »

Hallo,
ich versuche in einem Dialog von 2 verschiedenen Groupboxen die Radiobuttonsnamen abzufragen (ausgewählte natürlich)
die Function sollte von einem bestimmten GroupBox den ausgewählten RadioButtonNamen zurückliefern.

Code: Alles auswählen

' group -> name der radiobutton gruppe, dlg -> dialog object.
Function RadioButtonNameByGroupDlg (group as String, dlg as object)  
 Dim aGroup()
 dlg.model.getGroupByName(group, aGroup)
    For Each elem IN aGroup
      If elem.ServiceName = "stardiv.vcl.controlmodel.RadioButton" Then
         If elem.State Then
         	RadioButtonNameByGroupDlg = elem.name
            Exit Function
         End If
      End If
    Next elem
End Function
und leider das hier:

Code: Alles auswählen

dlg.model.getGroupByName(chkName, aGroup)
funktioniert nur mit dem ersten GroupBox unabhängig von "group" parameter.

Ist das ein Bug oder mache ich was falsch ? (bin ja nicht so gut in basic, oo und allgemein beim programmieren ^^)





EDIT:

noch etwas, wenn man stat getGroupByName(group, aGroup), getGroup(groupNr, aGroup, grname) benutzt, dann gehts, also von der Gruppe 0 oder Gruppe 1, aber mit dem Namen wäre es wesentlich praktischer.
getGroup übrigens in 3. Parameter (grname in meinem Beispiel) sollte den Namen von Group speichern. Speichert aber nur den Index >.< also z.b. "0" oder "1" (als String) wenn es 2 Groupboxen gibt. Das ist auch irgendwie komisch. Man übergibt doch in die Function als 1.Parameter die selbe Nummer, nur als Integer Oo
Dateianhänge
dlg.JPG
dlg.JPG (16.04 KiB) 3332 mal betrachtet
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von balu »

Hallo howtoman,

Standardfragen:
- Betriebssystem?
- OOo welche Version?

Du sprichst von Dialog, blos frage ich mich wie Du den Dialog erzeugst? Es gibt da 2 Methoden:
1.
Dialog über die IDE erstellt.
Das ist der Editor wo man den Code eintippt. Mal ganz salop gesagt.

2.
Dialog wird zur Laufzeit erstellt, also ohne IDE.


Wenn bei dir Punkt 1 zutrifft, dann stellen sich mir noch weitere Fragen, aber nur um Missverständnisse auszuräumen.
Möchtest Du wirklich den Namen, oder aber den Titel der OptionButton auslesen? Sind die OptionButton auch alle unterschiedlich betitelt/beschriftet?


Mir persönlich kommt deine Function irgendwie komisch vor. Das hat aber nicht sehr viel zu bedeuten, da ich mich selber noch auf Anfänger-Niveau befinde. Insgesamt macht sie mir aber ehern den Eindruck das sie nicht von OOo, sondern von M$-Office VBA stammt. Und aus diesem Grund wird die Function nicht einwandfrei in OOo funktionieren, weil das ansprechen und auswerten von einzelnen Objekten wie z.B. OptionButton in OOo nicht gleichzusetzen ist wie in M$-Office VBA. Das bedeutet dann aber für dich, dass die Function komplett neu geschrieben werden muss. Wenn aber die Datei samt des Makros und des Dialogs in M$-Office und in OOo funktionieren soll/muss, dann musst Du alles 2 mal schreiben, einmal für M$-Office, und einmal für OOo. Und zusätzlich muss noch eine kleine Weiche eingebaut werden, die zwischen den Beiden Programmen automatisch umschaltet.

Also meine Abschlussfrage.
Soll, oder muss die Datei in M$-Office und in OOo funktionieren?


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von Stephan »

ich habe das Ganze nur überflogen aber ich denke das Grundproblem ist das Du Vorgehensweisen bei Formularen und Dialogen nicht sauber trennst. Die Gruppierung von Optionen in Dialogen erfolgt nur durch die Tab-Reihenfolge der beteiligten Einzelsteuerelemente.

Stelle bitte eine Beispieldatei zur Verfügung.



GRuß
Stephan
howtoman
*
Beiträge: 19
Registriert: So, 29.05.2011 13:06

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von howtoman »

Also, das ganze ist nur OO, und geht von einem oo BASE dokument. Aufgerufen wird von IDE (eigentlich auch von einem formular, passiert das gleiche)
Es geht nur um Namen von OptionButtons (also element.name nicht element.label)
OO version 3.3
OS Windows XP prof.
OptionsButtons sind unterschiedlich beschriftet, und genannt.

Die Function kommt von Formularen her. Dialog.model hat aber auch methode: getGroupByName genau wie ein form in einem formular.
Funtioniert aber irgendwie nicht bei Dialogen...

Datei angehängt, in Makros gibts code und Dialog drin.
Dateianhänge
bsp.odb
(5.26 KiB) 104-mal heruntergeladen
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von DPunch »

Aloha
howtoman hat geschrieben:Funtioniert aber irgendwie nicht bei Dialogen...
Genau das hat Stephan doch gesagt.
OOo Wiki hat geschrieben:The group box control com.sun.star.awt.UnoControlGroupBox creates a frame to visually group other controls together, such as option buttons and check boxes. Note that the group box control does not provide any container functionality for other controls, it only has visual functionality. For more details, see Option Button.
Du kannst in einem Dialog eine GroupBox über alle enthaltenen Controls ziehen, gruppiert werden aber nur Option Buttons mit direkt aufeinander folgender TabOrder. Daher haben diese Gruppen auch keinen Namen (bzw nur die Namen "0" bis "x").

Das Verhalten von GroupBoxes in Formularen unterscheided sich erheblich von dem in Dialogen.
howtoman
*
Beiträge: 19
Registriert: So, 29.05.2011 13:06

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von howtoman »

Also heisst das, dass man in einem Dialog gar nicht so ein GroupBox by Name zugreifen kann ? Bzw die OptionsButtons die drin sind ?
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: RadioButton, OptionsFelder in einem Dialog abfragen

Beitrag von DPunch »

Aloha

Nein - da die OptionButtons nicht in einer GroupBox sind. Die GroupBox im Dialog dient nur zur visuellen Gruppierung, im Endeffekt könnte das Ding auch einfach "Rahmen malen" heissen, denn keinen anderen Zweck erfüllt es.

Du wirst die gruppierten OptionButtons auf ihren Namen untersuchen müssen, um sie einer (nur Dir bekannten) Gruppe zuordnen zu können.
Antworten