Probleme mit dsRadioButtons in 2 groups

Moderator: Moderatoren

Antworten
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Probleme mit dsRadioButtons in 2 groups

Beitrag von Martin Altmann »

Moin,
bin am Verzweifeln - ich kriege es ums Verrecken nicht hin!
Ich habe zwei Radiobuttons in einer Gruppe und drei in einer weiteren. Die zweite Gruppe darf nur aktiv sein, wenn der erste Radiobutton der ersten Gruppe ausgewählt ist:

Code: Alles auswählen

o vorhandene überschreiben
   o nur Buchungsdaten
   o alles außer Buchungsdaten
   o alle Daten überschreiben
o vorhandene überspringen
Wenn der untere angewählt ist, ist die innere Gruppe :disabled(). Wenn der erste angewählt ist, ist die innere Gruppe :enabled().
Das Problem dabei: Sobald ich in der inneren Gruppe auf einen Eintrag klicke, rast der Punkt in den drei RadioButtons unaufhörlich durch die drei Radiobuttons durch und hört nicht auf.
Ich habe natürlich zwei dsSettingGroup: Die innere enthält die drei dsRadiobuttons (diese haben sie als parent) und die äußere enthält die anderen beiden dsRadobuttons und die innere dsSettingGroup (diese drei Parts haben sie als parent).
Hat irgendeiner von euch ein solches Konstrukt erfolgreich am Laufen? Wo habe ich den Fehler gemacht?

Code: Alles auswählen

	::Static2      := dsSettingGroup():new( ::drawingArea, , {70,70}, {295,145} )
	::Static2:AutoAccelerator := .F.
	::Static2:EnableJump := .F.
	::Static2:clipSiblings := .T.
	::Static2:type:= XBPSTATIC_TYPE_BGNDFRAME

	::Radio1 := dsRadioButton():new( ::Static2,, {8,115}, {280,18} )
	::Radio1:caption := "~vorhandene Einlaufnummern überschreiben"
	::Radio1:Tooltip := "Bitte geben Sie an, ob bereits vorhandene Einlaufnummern überschrieben werden sollen!"
	::Radio1:selected  := {|| iif( eversion >= 6.4, ::Static3:enable(), ) }
	::Radio1:tabStop := .T.
	AAdd( ::editControls, ::Radio1 )

	::Static3      := dsSettingGroup():new( ::Static2, , {25,29}, {250,90} )
	::Static3:AutoAccelerator := .F.
	::Static3:EnableJump := .F.
	::Static3:clipSiblings := .T.
	::Static3:type:= XBPSTATIC_TYPE_BGNDFRAME

	::Radio2 := dsRadioButton():new( ::Static2,, {8,7}, {280,18} )
	::Radio2:caption := "vorhandene ~Einlaufnummern überspringen"
	::Radio2:Tooltip := "Bitte geben Sie an, ob bereits vorhandene Einlaufnummern übersprungen werden sollen!"
	::Radio2:selected  := {|| ::Static3:disable() }
	::Radio2:selection:= .T.
	::Radio2:tabStop := .T.
	AAdd( ::editControls, ::Radio2 )

	::Radio11 := dsRadioButton():new( ::Static3,, {8,54}, {230,18} )
	::Radio11:caption := "~alles außer Buchungsdaten überschreiben"
	::Radio11:Tooltip := "Bitte geben Sie an, ob bei bereits vorhandenen Einlaufnummern die Buchungsdaten nicht überschrieben werden sollen!"
	::Radio11:tabStop := .T.
	AAdd( ::editControls, ::Radio11 )

	::Radio12 := dsRadioButton():new( ::Static3,, {8,32}, {230,18} )
	::Radio12:caption := "~nur Buchungsdaten überschreiben"
	::Radio12:Tooltip := "Bitte geben Sie an, ob bei bereits vorhandenen Einlaufnummern nur die Buchungsdaten überschrieben werden sollen!"
	::Radio12:tabStop := .T.
	AAdd( ::editControls, ::Radio12 )

	::Radio13 := dsRadioButton():new( ::Static3,, {8,10}, {230,18} )
	::Radio13:caption := "alle ~Daten überschreiben"
	::Radio13:Tooltip := "Bitte geben Sie an, ob bereits vorhandene Einlaufnummern komplett überschrieben werden sollen!"
	::Radio13:selection:= .T.
	::Radio13:tabStop := .T.
	AAdd( ::editControls, ::Radio13 )
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von brandelh »

Mit DS kenne ich mich nicht aus, aber ich würde beide SettingGroups auf der gleichen Ebene lassen.
Nur weil die erste die zweite auslöst, sollte sie nicht auch der Parent sein.

Parent Static Groupbox1
- Radio1 => enabled Groupbox2 mit RadioButtons, wobei zu klären ist, welcher eingeschaltet werden muss !
- Radio2

Parent Static Groupbox2
- Radio1
- Radio2
- Radio3

Bei Xbase pur muss ich eine Methode (Funktion) hinterlegen welche die Steuerung übernimmt, EINE Methode für ALLE ;-)
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von Martin Altmann »

Hubert,
eine Ebene geht leider nicht, da dann die erste Gruppe die zweite (innere) überdeckt, nachdem man einen der beiden oberen Radiobuttons angeklickt hat.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von Tom »

Ich nutze XClass nicht, vermute aber, dass es an einem Fehler in der Evaluierung liegt, wenn das Dialogmanagement herauszukriegen versucht, welche Elemente dis-/enabled werden müssen. Was geschieht, wenn Du die "innere Gruppe" mal testweise nach außen verlagerst?
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von Martin Altmann »

Nun,
das Problem habe ich nicht, wenn ich einen der äußeren Radiobuttons anklicke. Dann wird der parent der inneren Gruppe ordentlich enabled oder disabled. Das Problem habe ich, wenn ich in der enableden inneren Gruppe ein Radiobutton anwähle.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von brandelh »

achso, wenn du im abhängigen einen anklickst, werden nacheinander alle der gleichen inneren durchlaufen ?
Hast du den Quellcode ?

wo steht bei denen was von selected() ?
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von Martin Altmann »

Moin,
brandelh hat geschrieben:achso, wenn du im abhängigen einen anklickst, werden nacheinander alle der gleichen inneren durchlaufen ?
ja.
brandelh hat geschrieben:Hast du den Quellcode ?
Habe ich doch oben gepostet...
brandelh hat geschrieben:wo steht bei denen was von selected() ?
Bei Radio1 und Radio2 steht das - Radio11-13 latürnich nicht.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit dsRadioButtons in 2 groups

Beitrag von brandelh »

Martin Altmann hat geschrieben:Moin,
brandelh hat geschrieben:Hast du den Quellcode ?
Habe ich doch oben gepostet...
brandelh hat geschrieben:wo steht bei denen was von selected() ?
Bei Radio1 und Radio2 steht das - Radio11-13 latürnich nicht.
Viele Grüße,
Martin
Ich meinte den Quellcode der abgeleiteten Klasse, der sich darum kümmert, dass immer nur eines einer Gruppe aktiv ist, also den von ds...
Wenn du weder im selected noch im setfocus slot einen codeblock eingetragen hast, woher kommt dann das Wechseln ?
Normalerweise machen die ds... das doch nicht, genausowenig wie die originalen.

Entweder setzt ds... noch etwas bei der "Gruppenbestimmung" voraus, oder einer der focus oder der selected slot verursacht die Probleme ...
mehr fällt mir dazu nicht ein und mehr als raten kann ich auch nicht ;-)
Gruß
Hubert
Antworten