Treeview auslösen
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14609
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 84 Mal
- Kontaktdaten:
Treeview auslösen
Ich habe eine Verständnisfrage. Lt. Onlinehilfe kann ich einen Eintrag im Treeview sowohl durch einen Doppelklick als auch durch Enter Selektieren. Bei mir klappt das aber nur mit Doppelklick, bei einem Enter passiert garnichts. Verstehe ich die Doku falsch, oder mache ich da irgendetwas falsch?
Ich fange verschiedene Tastaureingaben in der Eventschleife ab. Mir kam also der Gedanke, daß ich da ein wenig zu viel mache, und habe extra dafür eine Abfrage eingebaut. im Debugger sehe ich auch, daß der da richtig reinspringt. Aber auch da bewirkt ein Auslösen von Enter oder Return garnichts. Es gibt auch nur diese eine Eventschleife für diesen Treeview, da kann es also auch keine Konflikte geben.
Jan
Ich fange verschiedene Tastaureingaben in der Eventschleife ab. Mir kam also der Gedanke, daß ich da ein wenig zu viel mache, und habe extra dafür eine Abfrage eingebaut. im Debugger sehe ich auch, daß der da richtig reinspringt. Aber auch da bewirkt ein Auslösen von Enter oder Return garnichts. Es gibt auch nur diese eine Eventschleife für diesen Treeview, da kann es also auch keine Konflikte geben.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12897
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Treeview auslösen
bei mir auch nichtJan hat geschrieben:Ich habe eine Verständnisfrage. Lt. Onlinehilfe kann ich einen Eintrag im Treeview sowohl durch einen Doppelklick als auch durch Enter Selektieren. Bei mir klappt das aber nur mit Doppelklick, bei einem Enter passiert garnichts.
versuche malJan hat geschrieben: Verstehe ich die Doku falsch, oder mache ich da irgendetwas falsch?
Ich fange verschiedene Tastaureingaben in der Eventschleife ab. Mir kam also der Gedanke, daß ich da ein wenig zu viel mache, und habe extra dafür eine Abfrage eingebaut. im Debugger sehe ich auch, daß der da richtig reinspringt. Aber auch da bewirkt ein Auslösen von Enter oder Return garnichts. Es gibt auch nur diese eine Eventschleife für diesen Treeview, da kann es also auch keine Konflikte geben.
Code: Alles auswählen
oDlg:oTree:itemSelected := {| oItem, aRect, oSelf | oDlg:SetTV(oItem) }
oDlg:oTree:rootItem:expand( .T. )
oDlg:oTree:show()
// bei mir heisst die Methode SetTV()
// oItem = :getdata()
//
CASE nEvent == xbeP_Keyboard .AND. mp1 = xbeK_ENTER
oDlg:SetTV( oDlg:oTree:getdata() )
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 417
- Registriert: Mo, 17. Sep 2007 18:20
- Wohnort: Senftenberg
- Kontaktdaten:
Re: Treeview auslösen
also ich benutze dafür immer:
::oTree
= {|nKey, x, obj| IIf( nKey == xbeK_RETURN,;
PostAppEvent (xbeTV_ItemSelected, ::oTree:getData(), x, obj), NIL)}
::oTree
PostAppEvent (xbeTV_ItemSelected, ::oTree:getData(), x, obj), NIL)}
Viele Grüße
Stevie
Stevie
- Jan
- Marvin
- Beiträge: 14609
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 84 Mal
- Kontaktdaten:
Re: Treeview auslösen
Stevie,
jawoll, das funktioniert. Danke für den Hinweis.
Steht aber noch im Raum, was dann das hier in der Doku heißen soll:
jawoll, das funktioniert. Danke für den Hinweis.
Steht aber noch im Raum, was dann das hier in der Doku heißen soll:
JanAlaska Onlinedoku hat geschrieben:Das Ereignis xbeTV_ItemSelected wird erzeugt, wenn ein Eintrag im XbpTreeView-Objekt ausgewählt wurde. Das kann durch einen linken Doppelklick oder durch Drücken der Return-Taste erfolgen.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Re: Treeview auslösen
Hallo,
der Weg über
führte bei mir nicht zum Erfolg (2022), aber
funxt.
Glück Auf!
Udo
der Weg über
Code: Alles auswählen
oTree:keyboard :={|nKey, x, obj| IIf( nKey == xbeK_RETURN,;
PostAppEvent (xbeTV_ItemSelected, ::oTree:getData(), x, obj), NIL)}
Code: Alles auswählen
oTree:keyboard :={|nKey, x, obj| IIf( nKey == xbeK_RETURN,;
obj:getdata():expand( .NOT. obj:getdata():isExpanded() ), NIL)}
Glück Auf!
Udo
- Marcus Herz
- 1000 working lines a day
- Beiträge: 805
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 177 Mal
- Kontaktdaten:
Re: Treeview auslösen
Das sind die Windows Default Tasten, nur zur Info. Ich versuch ENTER wirklich nur zur Bestätigung (einer Eingabe) zu verwenden.The event xbeTV_ItemExpanded is created after the sub-items of an XbpTreeViewItem object became visible in the display. This is achieved by clicking the Plus sign with the left mouse button, or when the Plus key or right arrow key is pressed.
Und ein Windows Explorer verhält sich auch so.
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- AUGE_OHR
- Marvin
- Beiträge: 12897
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Treeview auslösen
hi,
Windows kennt die ENTER "Taste" (!) nicht
auch ein Button muss man durch einen "click" oder SPACE Taste (wenn Focus) auslösen.
Windows kennt die ENTER "Taste" (!) nicht

auch ein Button muss man durch einen "click" oder SPACE Taste (wenn Focus) auslösen.
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14609
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 84 Mal
- Kontaktdaten:
Re: Treeview auslösen
Jimmy,
Du muß hier nicht mit dem mahnenden oder besserwisserischen Finger wedeln. Das ist uns allen ja klar.
Aber erstens steht in der Alaska Doku das genau so drin. Siehe mein Zitat gleich zu Beginn.
Und zweitens geht es doch hier in der Diskussion aktuell darum, ob man das nun mit PostAppevent oder mit :expand auslöst. Bei mir klappt nach dem Hinweis von Stevie von vor fast 4 Jahren PostappEvent, bei Udo aktuell dagegen nicht. Und darum geht es hier.
Und nur mal so, hat mit Deiner hier vollkommen nicht dazugehörenden Anmerkung zu tun. Am Anfang schrieb ich das ich manche Tastatureingaben in der Eventschleife abfange. Und da mache ich das z. B. so das bei einem Enter auf einem Pushbutton die Leertaste ausgeführt wird. Weil der normale User durchaus der Meinung ist, das Windows ein Enter auf Buttons kennt. Und mir vorwerfen wird das ich einen Programmierfehler gemacht habe, wenn der Button bei Enter nicht asugelöst wird.
Jan
Du muß hier nicht mit dem mahnenden oder besserwisserischen Finger wedeln. Das ist uns allen ja klar.
Aber erstens steht in der Alaska Doku das genau so drin. Siehe mein Zitat gleich zu Beginn.
Und zweitens geht es doch hier in der Diskussion aktuell darum, ob man das nun mit PostAppevent oder mit :expand auslöst. Bei mir klappt nach dem Hinweis von Stevie von vor fast 4 Jahren PostappEvent, bei Udo aktuell dagegen nicht. Und darum geht es hier.
Und nur mal so, hat mit Deiner hier vollkommen nicht dazugehörenden Anmerkung zu tun. Am Anfang schrieb ich das ich manche Tastatureingaben in der Eventschleife abfange. Und da mache ich das z. B. so das bei einem Enter auf einem Pushbutton die Leertaste ausgeführt wird. Weil der normale User durchaus der Meinung ist, das Windows ein Enter auf Buttons kennt. Und mir vorwerfen wird das ich einen Programmierfehler gemacht habe, wenn der Button bei Enter nicht asugelöst wird.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Marcus Herz
- 1000 working lines a day
- Beiträge: 805
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 177 Mal
- Kontaktdaten:
Re: Treeview auslösen
Code: Alles auswählen
oTree:keyboard :={|nKey, x, obj| IIf( nKey == xbeK_RETURN,;
PostAppEvent (xbeTV_ItemSelected, ::oTree:getData(), x, obj), NIL)}
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- AUGE_OHR
- Marvin
- Beiträge: 12897
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Treeview auslösen
hi,
---
wenn man den o:Keyboard Slot nicht nutzt wird ein Control nicht auf das Keyboard reagieren
das ist Aufgabe des Programmierer
wenn ein Kunde "wünscht" das er seine App per Keyboard steuern kann ist es Aufgabe des Programmierer es umzusetzen
---
wenn man in der AppEvent() Schleife
abfragte und eine Function / Procedure / Method startet werden weitere Events "blockiert"
man sollte "nur" Events in der Schleife verwenden
dir anscheint nicht ...
---
wenn man den o:Keyboard Slot nicht nutzt wird ein Control nicht auf das Keyboard reagieren
das ist Aufgabe des Programmierer
wenn ein Kunde "wünscht" das er seine App per Keyboard steuern kann ist es Aufgabe des Programmierer es umzusetzen
---
wenn man in der AppEvent() Schleife
Code: Alles auswählen
CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_*

man sollte "nur" Events in der Schleife verwenden
Code: Alles auswählen
PostAppEvent(xbeP_*, mp1 , mp2, oXbp)
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14609
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 84 Mal
- Kontaktdaten:
Re: Treeview auslösen
Jimmy,
wo genau ist mir das nicht klar?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.