Pushbutton Auslösen [Erledigt]

Moderator: Moderatoren

Antworten
Benutzeravatar
uwe.24
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück

Pushbutton Auslösen [Erledigt]

Beitrag von uwe.24 » Mi, 27. Feb 2019 13:36

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
Zuletzt geändert von uwe.24 am Do, 28. Feb 2019 14:30, insgesamt 1-mal geändert.
Uwe aus OS

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7693
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Pushbutton Auslösen

Beitrag von Tom » Mi, 27. Feb 2019 15:16

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:
Herzlich,
Tom

Benutzeravatar
uwe.24
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück

Re: Pushbutton Auslösen

Beitrag von uwe.24 » Do, 28. Feb 2019 8:04

Hallo Tom.

Mit Eval im DCREAD hat es geklappt.

Vielen Dank. :thumbup:

Uwe aus OS
Uwe aus OS

Antworten