Deutsch
Bugs und vermeintliche

Treeview Tastaturnavigation

 

Jörg
Sellmeyer
Hallo,

Man kann ja ein Treeview wunderbar mit der tastatur steuern. Leider kommt das aber nicht im Programm an. Die Tastaturnavigation funktioniert zwar aber WaitInput wird nicht durchbrochen.
Sehr leicht am Beispiel in der Hilfe nachzuvollziehen. Ich hab nur das "Print %key,%message" eingefügt.
Treeview mit Maus aktivieren: Werte werden angezeigt
Weiter mit Tastatur: es passiert nur noch was im Treeview
CLS
var hToolBmp& = create("hPic", 0, "TOOLBAR")
var hIL& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
var hTV& = Create("TreeView",%hwnd,hIL&,420,40,200,(height(%HWnd)-70))
DeleteObject hToolBmp&' wird nicht mehr benötigt
print "Profan-Kringel: ";ImageList("AddIcon", hIL&, create("hIcon", "A"));""
print "Klassen: ";classof(hTV&);tab(24);classof(hIL&)
print "Handles: ";hTV&;tab(24);hIL&
var HeaderEbene& = TreeView("InsertItem",hTV&, 0,0,"Includes/Header")
var ProcEbene& = TreeView("InsertItem",hTV&, 0,1,"Prozeduren")
var StrukturEbene& = TreeView("InsertItem",hTV&, 0,2,"Strukturen/Klassen")
var KommentarEbene& = TreeView("InsertItem",hTV&, 0,3,"Kommentare/Faltungen")
TreeView("InsertItem",hTV&, HeaderEbene&,4,"Text 1")
TreeView("InsertItem",hTV&, ProcEbene&,5,"Text 2")
TreeView("InsertItem",hTV&, StrukturEbene&,6,"Text 3")
TreeView("InsertItem",hTV&, KommentarEbene&,7,"Text 4")
TreeView("InsertItem",hTV&, KommentarEbene&,52,"Text 5")
var T6& = TreeView("InsertItem",hTV&, KommentarEbene&,9,"Text 6")
TreeView("InsertItem",hTV&, T6&,10,"Text 7")
TreeView("SetItemImage",hTV&, KommentarEbene&,10)
TreeView("SetChildren",hTV&, Procebene&,1)
TreeView("SetChildren",hTV&, HeaderEbene&,1)
TreeView("SetChildren",hTV&, StrukturEbene&,1)
TreeView("SetChildren",hTV&, KommentarEbene&,1)
TreeView("SetChildren",hTV&, T6&,1)
TreeView("Expand",hTV&, ProcEbene&, 2)
SetText hTV&, HeaderEbene&,"Includes/Header (2)"
SetText hTV&, ProcEbene&,"Prozeduren (3)"
SetText hTV&, StrukturEbene&,"Strukturen/Klassen (4)"
SetText hTV&, KommentarEbene&,"Kommentare/Faltungen (99)"
TreeView("Select",hTV&, T6&)
print "Anzahl:  ";GetCount(hTV&);tab(24);getCount(hIL&)
DrawIcon hIL&, 10, 420, 15
var ende% = 0
var item& = 0
usermessages Ord("p")

whilenot ende%

    waitinput
    Print %key,%message

    if %key = 27

        ende% = 1

    elseif clicked(hTV&)

        item& = TreeView("GetSelected", hTV&)
        print GetText$(hTV&, item&);".";GetText$(hTV&, TreeView("GetParent", hTV&, item&))

    endif

endwhile

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
29.11.2011  
 




RGH
Solange du nur im Control navigierst, passiert nichts. Aber siobald Du mit ENTER einen Eintrag auswählst wird Waitinput verlassen und %message hat einen Wert 295, so dass Du im Programm darauf reagieren kannst.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.01.2012  
 




Jörg
Sellmeyer
Das finde ich aber untypisch für so ein Treeview. In allen Programmen, die ich bisher getestet habe, passiert schon was, wenn ich mit den Pfeiltasten navigiere. Simpelstes Beispiel: der Explorer. Auch z. B. Irfanview ist so zu steuern.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.01.2012  
 




RGH
Kannst es ja auf Deine Wunschliste für X3 setzen. Dann kann ich ja mal schauen, was da möglich ist ...

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.01.2012  
 




Jörg
Sellmeyer
Dann setz ich es hiermit auf meine Wunschliste. Du könntest Dir diesen Thread doch einfach auf Deine XProfan.com Merkliste setzen und die dann abarbeiten. Oder gibt's schon irgendwo eine allgemeine Wunschliste?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.01.2012  
 




RGH
Noch nicht. Es ist ja auch noch eine Weile hin. Zuerst muss ich den aktuellen Bugfix auf X2.0c in einen Patch einbauen und auf meine Homepage hochladen, dann eine aktuelle Installations-CD mit X2.0c an JDS schicken und schließlich im nächsten Urlaub Zeit finden, um mich dem Thema XProfan X2 mit FreePascal 32Bit und 64Bit zu befassen.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.01.2012  
 



Musst Du nicht!
 
24.01.2012  
 




Jörg
Sellmeyer
Hier hab ich zumindest rausbekommen, wie man die Werte auch bei Tastaturnavigation erhält:

Einfach nach dem Ansteuern eines Elementes Enter drücken und schon funktioniert es...
So einfach kann Programmieren sein
CLS
var hToolBmp& = create("hPic", 0, "TOOLBAR")
var hIL& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
var hTV& = Create("TreeView",%hwnd,hIL&,420,40,200,(height(%HWnd)-70))
DeleteObject hToolBmp&' wird nicht mehr benötigt
print "Profan-Kringel: ";ImageList("AddIcon", hIL&, create("hIcon", "A"));""
print "Klassen: ";classof(hTV&);tab(24);classof(hIL&)
print "Handles: ";hTV&;tab(24);hIL&
var HeaderEbene& = TreeView("InsertItem",hTV&, 0,0,"Includes/Header")
var ProcEbene& = TreeView("InsertItem",hTV&, 0,1,"Prozeduren")
var StrukturEbene& = TreeView("InsertItem",hTV&, 0,2,"Strukturen/Klassen")
var KommentarEbene& = TreeView("InsertItem",hTV&, 0,3,"Kommentare/Faltungen")
TreeView("InsertItem",hTV&, HeaderEbene&,4,"Text 1")
TreeView("InsertItem",hTV&, ProcEbene&,5,"Text 2")
TreeView("InsertItem",hTV&, StrukturEbene&,6,"Text 3")
TreeView("InsertItem",hTV&, KommentarEbene&,7,"Text 4")
TreeView("InsertItem",hTV&, KommentarEbene&,52,"Text 5")
var T6& = TreeView("InsertItem",hTV&, KommentarEbene&,9,"Text 6")
TreeView("InsertItem",hTV&, T6&,10,"Text 7")
TreeView("SetItemImage",hTV&, KommentarEbene&,10)
TreeView("SetChildren",hTV&, Procebene&,1)
TreeView("SetChildren",hTV&, HeaderEbene&,1)
TreeView("SetChildren",hTV&, StrukturEbene&,1)
TreeView("SetChildren",hTV&, KommentarEbene&,1)
TreeView("SetChildren",hTV&, T6&,1)
TreeView("Expand",hTV&, ProcEbene&, 2)
SetText hTV&, HeaderEbene&,"Includes/Header (2)"
SetText hTV&, ProcEbene&,"Prozeduren (3)"
SetText hTV&, StrukturEbene&,"Strukturen/Klassen (4)"
SetText hTV&, KommentarEbene&,"Kommentare/Faltungen (99)"
TreeView("Select",hTV&, T6&)
print "Anzahl:  ";GetCount(hTV&);tab(24);getCount(hIL&)
DrawIcon hIL&, 10, 420, 15
var ende% = 0
var item& = 0
usermessages Ord("p")

whilenot ende%

    waitinput
    item& = TreeView("GetSelected", hTV&)
    print GetText$(hTV&, item&);".";GetText$(hTV&, TreeView("GetParent", hTV&, item&)),item&

    if %key = 27

        ende% = 1

    endif

endwhile


Ich setz das mal auf erledigt.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.11.2015  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.511 Betrachtungen

Unbenanntvor 0 min.
Georg Teles26.04.2023
Sven Bader13.03.2023
RudiB.07.04.2022
Heiko Dix04.10.2021
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Jörg Sellmeyer (4x)
RGH (3x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie