Maske wird 2x aufgerufen

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Maske wird 2x aufgerufen

Beitrag von Rolf Ramacher »

Hallo zusammen,


ich habe folgendes Problem. Ich habe in einer Maske eine combobox mit
J und N. Bei der Auswahl von J wird eine weitere Maske zur Eingabe aufgerufen. Es handelt sich um Eingabe von einem Mindestbestand bei Artikeln. Vorher prüfe ich mit dbseek, ob es einen Eintrag hierfür gibt.
Wenn ich mit der Maus die combobox auswähle wird die Eingabemaske 2x aufgerufen. Mit der Tastatur nicht.

Hier mein Code- Auszug. ** Es geht um die Function MindAendern

Hat jemand eine Idee?? Wie gesagt die Function MindAendern wird nur
2x gestartet wenn mit der Maus ausgewählt wird.


// Combobox mit aufklappbarer Listbox
oCombo := XbpCombobox():new( drawingArea, , {680,295}, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oCombo:type := XBPCOMBO_DROPDOWN
oCombo:create()

// Datenlink von Eingabefeld zu LOCAL Variable
oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[21][2], aFelder[21][2] := x ) }
oCombo:XbpSLE:setData()
bAction := {|mp1, mp2, obj| obj:XbpSLE:getData(),IIf(aFelder[21][2]="J",MindAendern(cArtnr,aFelder[21][2],oDlg,nStammSatz),) }

// Codeblock für Auswahl durch Up und Down Taste
oCombo:ItemMarked := bAction

// Codeblock für Auswahl durch linken Mausklick in der Listbox
oCombo:ItemSelected := bAction

// Daten aus Array in Combobox übertragen, Array verwerfen
oCombo:addItem( "N" )
oCombo:addItem( "J" )
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
wenn Du auf :itemMarked reagierst, dann nimm den :itemSelected-Slot wieder weg...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Martin,

wenn ich :itemSelected wegnehme kann der User ja gar nicht mit der Mouse auswählen.

Oder meinst du das deaktivieren bei der IIF-Abfrage beim SLE
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
um etwas auszuwählen (itemSelected) muß der Eintrag ja erstmal markiert werden (itemMarked).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Rolf,

wenn du dein Code so lässt, wie der oben abgebildet ist, dann wird dein Fenster 2x aufgerufen, da du an 2 Stellen das Fenster ausrufst.

Code: Alles auswählen

 // Codeblock für Auswahl durch Up und Down Taste
oCombo:ItemMarked := bAction

// Codeblock für Auswahl durch linken Mausklick in der Listbox
oCombo:ItemSelected := bAction 
Du muss nur

Code: Alles auswählen

 // Codeblock für Auswahl durch linken Mausklick in der Listbox
oCombo:ItemSelected := bAction 
da lassen. Bei den Tasten müsstest du dann die Auswahl mit Enter bestätige.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo Andreas,

super danke funktioniert.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
sorry - aber ich kann es nicht lassen :wink:
Zwei "Kleinigkeiten":
Zum Einen müßte das ganze auch ohne drücken von Enter klappen, wenn Du statt :itemSelected den :itemMarked-Slot nehmen würdest.
Zum Anderen würde ich das sowieso nicht so machen, da es genau für solche Dinge die CheckBox gibt! Die ist intuitiver zu bedienen und platzsparender als eine ComboBox mit den Einträgen Ja und Nein!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten