Seite 1 von 1

DCCHECKBOX nimmt Wert nicht an [ERLEDIGT]

Verfasst: Mo, 12. Mär 2018 20:39
von Manfred
Hi Leute,
was mache ich hier falsch?

Code: Alles auswählen

METHOD DialogTagesdienste:erfasseDatum(dDatum)
       LOCAL getlist := {}
       LOCAL GetOptions
       LOCAL lErfolg  := .F.
       LOCAL lSommerfahrplan := .F.
       LOCAL lWinterfahrplan := .F.
       LOCAL nLinks   := 20
       LOCAL nOben    := 20
       LOCAL nPbHoehe := 30
       LOCAL olSommerfahrplan  := NIL
       LOCAL olWinterfahrplan  := NIL

       LOCAL oDatum      := NIL
       LOCAL oDialog     := NIL
       LOCAL oPbAbbruch  := NIL
       LOCAL oPbStart    := NIL
       LOCAL oRahmen     := NIL
       LOCAL oText       := NIL

       MEMVAR oSysPara

       @ 10, 5 DCGROUP oRahmen;
                  SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT - 20

       @ nOben,nLinks DCSAY "Datum:";
                     OBJECT oText;
                     PARENT oRahmen;
                       SIZE 70,20
       @ DCGUI_ROW,DCGUI_COL DCGET dDatum;
                              EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl};
                   GETPRESENTATION {{ XBP_PP_DISABLED_FGCLR, GRA_CLR_BLACK }};
                            OBJECT oDatum;
                            PARENT oRahmen;
                              SIZE 100,20;
                           TABSTOP;
                           TOOLTIP "Tagesdatum";
                             VALID {|| ! Empty(dDatum)}
         nOben += ::nAbstand
         @ nOben,nLinks DCSAY "incl.Sommer:";
                       OBJECT oText;
                       PARENT oRahmen;
                         SIZE 70,20
         @ DCGUI_ROW,DCGUI_COL DCCHECKBOX lSommerfahrplan;
                                     EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl};
                                   OBJECT olSommerfahrplan;
                                   PARENT oRahmen;
                                  TABSTOP
         nOben += ::nAbstand
         @ nOben,nLinks DCSAY "incl.Winter:";
                       OBJECT oText;
                       PARENT oRahmen;
                         SIZE 70,20
         @ DCGUI_ROW,DCGUI_COL DCCHECKBOX lWinterfahrplan;
                                     EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl};
                                   OBJECT olWinterfahrplan;
                                   PARENT oRahmen;
                                  TABSTOP
         @ 0,0 DCPUSHBUTTON;
                     ACTION {|| lErfolg := .T.,DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)};
                    CAPTION "Start";
                       EVAL {|| oPbStart:setPos( {10,10} ),;
                                oPbStart:setSize( {oRahmen:currentsize()[1]/4-10,nPbHoehe} );
                            };
                     OBJECT oPbStart;
                     PARENT oRahmen;
                    TABSTOP;
                    TOOLTIP "Start"
         @ 0,0 DCPUSHBUTTON;
                     ACTION {|| DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)};
                  CAPTION "Abbruch";
                     EVAL {|| oPbAbbruch:setPos( {oPbStart:currentpos()[1] + oPbStart:currentsize()[1],10} ),;
                              oPbAbbruch:setSize( {oRahmen:currentsize()[1]/4-10,nPbHoehe} );
                          };
                   OBJECT oPbAbbruch;
                   PARENT oRahmen;
                  TABSTOP;
                  TOOLTIP "Abbruch/Beenden"
         DCGETOPTIONS;
             BORDER XBPDLG_SIZEBORDER;
         CLOSEQUERY MSG {|| IF(oSysPara:oMessage:anzeigen(" Abbruch?",.T.,"N"),.T.,.F.)};
         HILITEGETS GRA_CLR_CYAN;
        NOMAXBUTTON;
        NOMINBUTTON;
              PIXEL;
         SAYOPTIONS XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT;
       TOOLTIPCOLOR GRA_CLR_BLACK, GRA_CLR_YELLOW;
        WINDOWWIDTH 400;
       WINDOWHEIGHT 200

         DCREAD GUI;
            OPTIONS GetOptions;
             PARENT @oDialog;
              TITLE "Datum für Kopie"
         dDatum := CToD(oDatum:buffer)
         ::lSommerfahrplan := lSommerfahrplan <----
         ::lWinterfahrplan := lWinterfahrplan    <----
RETURN lErfolg
lSommerfahrplan und lWinerfahrplan habe am Ende .F. obwohl der Haken gesetzt wurde in der Checkbox. oLSommerfahrplan und olWinterfahrplan haben NIL

Re: DCCHECKBOX nimmt Wert nicht an

Verfasst: Mo, 12. Mär 2018 21:19
von Tom
Der Start-Button löst auch EXIT_ABORT aus, wodurch u.U. Eingaben zurückgesetzt werden. Nimm mal EXIT_OK.

Re: DCCHECKBOX nimmt Wert nicht an

Verfasst: Di, 13. Mär 2018 7:59
von Manfred
Hi Tom,
Danke. So wie es aussieht war es da. Daran hätte ich jetzt überhaupt nicht gedacht. Und schon gar nicht das zu hinterfragen.