Seite 1 von 1

Pushbutton Auslösen [Erledigt]

Verfasst: Mi, 27. Feb 2019 13:36
von uwe.24
Hallo.

Ich habe mir eine Maske ausgebaut, die über Pusbuttons bedient wird.
Dazu nutze ich @ DCToolbar und DCADDBUTTON.
Je nach Bedarf starte ich das Programm normal oder übergebe 2 Variablen mit.
Wenn jetzt die Variablen übergeben werden, möchte ich diesen Button sofort automatisch auslösen.

Code: Alles auswählen

DCADDBUTTON CAPTION 'Neu' PARENT oToolBar SIZE 9 ;
         ACTION {||lEditMode := .t., lNeu := .t., NewFields(GetList), SetAppFocus(oDesc), ;
         DC_GetRefresh(GetList)} ;
         ID 'EDIT_BUTTON' ;
         WHEN {||!lEditMode}
Also sowas wie
if lUebernahme = .t.
....PushButtonAktivieren
endif


Zur Zeit belege ich nur 2 GetFelder mit der Übergabe vor und muss dann den Button mit der Maus manuell aktivieren.

Wie kann ich das lösen?

Uwe aus OS

Re: Pushbutton Auslösen

Verfasst: Mi, 27. Feb 2019 15:16
von Tom
Hallo, Uwe.

Es ginge ganz einfach, indem Du den Codeblock für den Button in eine Variable packst:

Code: Alles auswählen

LOCAL bMyButtonAction := {||lEditMode := .t., lNeu := .t., NewFields(GetList), SetAppFocus(oDesc), ;
         DC_GetRefresh(GetList)}

DCADDBUTTON CAPTION 'Neu' PARENT oToolBar SIZE 9 ;
         ACTION  bMyButtonAction ;
         ID 'EDIT_BUTTON' ;
         WHEN {||!lEditMode}
Dann kannst Du den Button-Codeblock beliebig auch woanders verwenden, etwa, wenn der Dialog fertig aufgebaut ist, im DCREAD :

Code: Alles auswählen

DCREAD GUI TITLE "Mein Zeug" .... EVAL bMyButtonAction
Wenn Du aber den Pushbutton wirklich physisch auslösen willst, musst Du ihn zuerst in ein Objekt stecken:

Code: Alles auswählen

DCADDBUTTON ... OBJECT oMyButton
Dann kannst Du ihn über PostAppEvent() auslösen:

Code: Alles auswählen

PostAppEvent(xbeP_Activate,,,oMyButton)
Die dritte Möglichkeit: Du evaluierst den Activate-Slot des Pushbuttons:

Code: Alles auswählen

... Eval(oMyButton:Activate) ...
Und, am allereinfachsten: Du löst codeseitig das aus, was der Button machen soll. Du rufst also "NewFields" usw. einfach im Code auf. :wink:

Re: Pushbutton Auslösen

Verfasst: Do, 28. Feb 2019 8:04
von uwe.24
Hallo Tom.

Mit Eval im DCREAD hat es geklappt.

Vielen Dank. :thumbup:

Uwe aus OS