Seite 1 von 1
Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 14:06
von Ewald
Hallo,
ich nutze die Möglichkeit, einen Button mit unterschiedlicher Beschriftung zu versehen - je nachdem ob er aktiv oder inaktiv ist.
Hat immer gut funktioniert bis ich auf die glohreiche Idee kam, schönere Buttons mit DC_XbpPushButtonXPConfig():new() zu generieren.
Was ist nicht bemerkt habe ist, das es mit der Beschriftung per array nicht mehr funktioniert. Normale Caption geht, bei einem arrayelement bleibt die Beschriftung leer. Da sich die Beschwerden häufen muss ich da dran
Fehlt mir da wohl ein Parameter ?
Wie immer für jeden Tipp dankbar
Ewald
Code: Alles auswählen
#include 'dcdialog.ch'
proc main
LOCAL GetList := {}
declare abez1 := {"aktiv","inaktiv"}
/* * Wenn nicht auskommentiert keine Caption
oConfig := DC_XbpPushButtonXPConfig():new()
oConfig:radius := 20
oConfig:bgColor := GRA_CLR_CYAN
DC_PushButtonStyle( oConfig )
*/
@ 02,01 dcpushbutton caption "Ende " size 10,1 ;
action {||dc_readguievent(DCGUI_EXIT_OK,getlist)}
@ 02,12 dcpushbutton caption abez1 size 10,1 ;
action {||nil} when {||1=1}
@ 02,23 dcpushbutton caption abez1 size 10,1 ;
action {||nil} when {||1=2}
DCREAD GUI fit
RETURN
*------------------
proc appsys
return
Re: Button wahlweise Beschriftung mit Array
Verfasst: Do, 08. Sep 2022 14:32
von Tom
So beispielsweise geht es:
Code: Alles auswählen
#include 'dcdialog.ch'
#pragma library("dclipx.lib")
proc main
LOCAL GetList := {}, aBez1 := {"aktiv","inaktiv"}, i := 1
/* * Wenn nicht auskommentiert keine Caption */
oConfig := DC_XbpPushButtonXPConfig():new()
oConfig:radius := 20
oConfig:bgColor := GRA_CLR_CYAN
DC_PushButtonStyle( oConfig )
@ 02,01 dcpushbutton caption "Ende " size 10,1 ;
action {||dc_readguievent(DCGUI_EXIT_OK,getlist)}
@ 02,12 dcpushbutton caption {||abez1[IF(i=1,1,2)]} size 10,1 ;
action {||nil} when {||i=1}
@ 02,23 dcpushbutton caption {||abez1[IF(i=2,1,2)]} size 10,1 ;
action {||nil} when {||i=2}
@ 04,01 DCPUSHBUTTON CAPTION 'Toggle' SIZE 10,1 ACTION {||i++,IF(i>2,i:=1,NIL),DC_GetRefresh(GetList)}
DCREAD GUI fit
Und so sieht es aus:
- arraybutton.png (2.06 KiB) 3469 mal betrachtet
RETURN
*------------------
proc appsys
return
Re: Button wahlweise Beschriftung mit Array
Verfasst: Do, 08. Sep 2022 14:37
von Tom
Da scheint es beim DCPUSHBUTTONXP tatsächlich einen Fehler zu geben, denn eigentlich sollte auch der das Array aus zwei Texten als Caption unterstützen. Tut er aber nicht.
Re: Button wahlweise Beschriftung mit Array
Verfasst: Do, 08. Sep 2022 15:35
von Ewald
Hallo Tom,
danke dafür. Werde dann eben auf die spezielle Arraybeschriftung verzichten und feste Begriffe codieren.
DC_XbpPushButtonXPConfig():new() ist ja weniger was für mich, beeindruckt aber den User mehr als wenn ich irgend einen 5000 Zeiler schreibe der nur im Hintergrund abläuft
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 15:41
von Manfred
hallo Ewald,
:setCaption() hilft Dir nicht weiter?
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 15:47
von Manfred
Stop,
ich glaube ich habe mich verlesen.
ich mache das so
Code: Alles auswählen
::aPbLeiste[17]:text := {|| ::setzePbCaption("jahr")}
METHOD vt_dialog:setzePbCaption(cPb)
LOCAL cCaption
MEMVAR basc_06
MEMVAR oVtPara
MEMVAR x_screen
DEFAULT cPb TO ""
IF Upper(cPb) == "JAHR"
cCaption := "~J " + oVtPara:m_mtg_jahr
ELSEIF Upper(cPb) == "MANDANT"
cCaption := "~T " + oVtPara:m_mtg_nr
ELSEIF Upper(cPb) == "FILTER"
cCaption := "~Filter"
IF ::lFilter
cCaption += " (aktiv)"
ENDIF
ELSEIF Upper(cPb) == "BILDSCHIRM"
IF TYPE("x_screen") == "C"
cCaption := "~Bildschirm (" + x_screen + ")"
ELSEIF TYPE("basc_06") == "C"
cCaption := "~Bildschirm (" + basc_06 + ")"
ENDIF
ENDIF
RETURN cCaption
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 15:53
von Tom
Das ist letztlich ein Fehler; DCPUSHBUTTONXPs sollten auch das Array mit zwei Texten als Captions unterstützen, tun sie aber nicht (aus einem DCPUSHBUTTON wird durch das ConfigLegacy automatisch ein DCPUSHBUTTONXP). Ich habe in Rogers Forum ein Beispiel gepostet. Mein Vorschlag ist ja nur ein Workaround.
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 15:55
von Manfred
ich glauibe dieses Thema hatte ich schon mal vor ein paar jahren hier aufgelegt. Deshalb habe ich es ja so gelöst. Wenn ich mich nicht irre. Ich meine sogar wegen ein paar Vorschlägen von Dir Tom.
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 17:01
von Tom
Möglich.
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 17:02
von Tom
Roger hat gerade geschrieben, dass er das im nächsten Build korrigieren wird.
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Do, 08. Sep 2022 17:14
von Ewald
Habe ich annähernd live verfolgt
Re: Button wahlweise Beschriftung mit Array [erledigt]
Verfasst: Fr, 09. Sep 2022 12:39
von Ewald
Hallo Manfred,
habe gestern irgendwie deinen Beitrag überlesen. Sorry.
Wollte mich dafür noch mal kurz bedanken
Gruß
Ewald