Frage zu XbpSle disable / enable

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Frage zu XbpSle disable / enable

Beitrag von mini990 »

Verständnisproblem meinerseits....

ich definiere mehrere Felder mit oXbp:XbpSle.....
anschließend der Befehl oXbp:disable()
--> Felder werden grau angezeigt und sind nicht editierbar.

über XbpPushbutton:activate := {|| oXbp:enable() }

möchte ich Felder wieder enablen um sie zu editieren. Es erfolgt jedoch keinerlei Reaktion bei der Anzeige, die Felder bleiben weiterhin gesperrt.

Gruß Stefan
rassekst
UDF-Programmierer
UDF-Programmierer
Beiträge: 97
Registriert: Mi, 01. Feb 2006 23:49
Wohnort: Glauchau
Kontaktdaten:

Beitrag von rassekst »

Hallo Stefan,

Kann es sein das Du alle SLE's - Objekte mit dem gleichen Objektnamen erzeugt hast ?

Gruss Steffen
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Moin Stefan,

im Prinzip muß das funktionieren, ich mache das ähnlich.

Liegt das Problem vielleicht darin, daß Du mehrere XBPSle gleichzeitig aktivieren möchtest? Das habe ich noch nie versucht, weil ich jedes SLE eindeutig ansprechen möchte, aber vielleicht mag Xbase das auch grundsätzlich nicht.

Jan
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Beitrag von mini990 »

alle Sle's habe ich unter einem Xbp: ... erzeugt.
liegt hier der Fehler?

Warum funktioniert dann aber oXbp:disable() (alle nicht editierbar)??

ich möchte auch alle Sle's mit einem enable ansprechen. Das würde also heißen, ich weise alle Sle's einer eigenen Variablen zu (oXbp1, 2, 3, ...)
und muß dann alle einzeln enablen?

Hintergrund:
Mehrere Felder sollen erst nach Eingabe von "Return" bzw. eines Pushbuttons editierbar sein

Gruß Stefan
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Beitrag von Lewi »

Hi!
Es müssen alle sle-Objekte einzeln disabled bzw. enabled werden.

Wenn Felder von anderen Feldern abhängig sind, kann dies über ::sle:Validate := { |osle| DoSomething() } realisiert werden. Allerdings kann unter Windows der Anwender mit der Mouse auf beliebige Felder springen, so das die Abhängigkeit eines anderes Feldes ggf. nicht greift. Da hilft leider auch kein ::prevalidate(), weil das Feld bereits den Fokus hat. (Unter Clipper war dies Verhalten anders)

Gruß, Olaf
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Beitrag von mini990 »

d.h. also, daß ich bei einer Datei mit z.B. 32 Eingabefeldern 32 Zuweisungen machen muß um dem Anwender mitzuteilen daß er sich noch nicht oder doch schon im Editiermodus befindet???

Gut, ist so, empfinde ich aber mehr als nur umständlich...... :cry:

Mal schaun was mein nächstes Problem sein wird....

Gruß Stefan
rassekst
UDF-Programmierer
UDF-Programmierer
Beiträge: 97
Registriert: Mi, 01. Feb 2006 23:49
Wohnort: Glauchau
Kontaktdaten:

Beitrag von rassekst »

Hallo Stefan,

Du kannst es natürlich auch einfacher haben.

Probiere mal:

AEVAL(oParent:drawingarea:childList(),{|o| IIF(o:className()='XbpSLE',o:enable(),NIL)}) // Aktivieren

AEVAL(oParent:drawingarea:childList(),{|o| IIF(o:className()='XbpSLE',o:disable(),NIL)}) // deaktivieren

Du kannst sogar bestimmen welche Objekte aktiviert/deaktiviert werden sollen. Dazu merkst Du Dir beim erzeugen im cargo Member eine Kennung, die Du dann im o.g. Codeblock auswerten kannst.

Ich hoffe das hilft Dir,

Gruss Steffen
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Beitrag von mini990 »

Hallo Steffen,
ich habe es gerade ausprobiert, funktioniert 1a!
Genau so etwas habe ich gesucht.
Herzlichen Dank!!!

Gruß Stefan
Antworten