KeyDown(1)/KeyHit(1) und GetKey funktioniert nicht
Übersicht

![]() |
SamuelBetreff: KeyDown(1)/KeyHit(1) und GetKey funktioniert nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ich habe follgenden code:
Code: [AUSKLAPPEN] window = CreateWindow("Google", 0, 0, GfxModeWidth (CountGfxModes()), GfxModeHeight (CountGfxModes()), 0, 32)
htmlview = CreateHtmlView(0, 0, ClientWidth(window), ClientHeight(window)-30, window) HtmlViewGo htmlview, "http://www.google.com" Repeat If KeyDown(1) Then End Forever es soll google im "vollbild" öffnen... und ich will, dass man mit Esc das programm beenden kann - keydown/keyhit/getkey funktioniert aber nicht habe ich irgendwas übersehen/falsch überlegte? gruss samuel |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich noch weiß, sind diese Befehle (Keydown, Mousedown usw) nur für Grafik-Programme gedacht, funktionieren also nur, wenn ein Graphics-Fenster existiert und ausgewählt ist.
Ansonsten musst du mit Events arbeiten. Hier sind alle Event-Befehle. Bei WaitEvent ![]() |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
jetzt sieht die hauptschleife so aus:
Code: [AUSKLAPPEN] Repeat Select WaitEvent(0) Case $103 If EventData()=27 Then End End Select Forever funktioniert immernochnicht ![]() |
||
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch mal zu warten , und nicht den Befewhl mit einer 0 aus zu führen. so 10 ms pro schleifendurchlauf, damit fällt auch timern weg.
Außerdem kannst du die Desktopgröße und Weite so Abfragen: BlitzBasic: [AUSKLAPPEN] height=GadgetHeight(Desktop()) |
||
It's done when it's done. |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke für den tipp mit wight/height
aber es funktioniert immernochnicht ![]() |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch mal was passiert wenn du
1. den Parameter von Waitevent ganz weglässt 2. das Event $101 verwendest (Achtung: EventData liefert jetzt Scancode) (Ich weiß nicht, ob EventData bei $103 Scan- oder ASCII-Code liefert, da widerspricht sich die Hilfe leider selbst) Also: Code: [AUSKLAPPEN] Repeat
Select WaitEvent() Case $101 If EventData()=1 Then End End Select Forever |
||
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich weiss, die hilfe ist nicht eindeutig... ![]() jetzt hält der debbugger das programm immer bei WaitEvent auf... was könnte falsch sein? EDIT: also hier nochmal mein Code(vielleicht ist der Fehler woanderst)... Code: [AUSKLAPPEN] Global height=GadgetHeight(Desktop());GfxModeHeight (CountGfxModes())
Global width=GadgetWidth(Desktop());GfxModeWidth (CountGfxModes()) Global window = CreateWindow("Google - Vollbild", 0, 0, GadgetWidth(Desktop()), GadgetHeight(Desktop()), 0, 32) Global htmlview = CreateHtmlView(0, 0, ClientWidth(window), ClientHeight(window), window) HtmlViewGo htmlview, "http://www.google.com" HotKeyEvent 1, 0, $803, 0, 0, 0, 0, window While WaitEvent()<>$803 Wend End Könnt ja mal testen ob es bei euch funktioniert. (Ich will ein Vollbild-Google haben, wo man mit ESC beenden kann....) thanks |
||
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich weiss, die hilfe ist nicht eindeutig... ![]() jetzt hält der debbugger das programm immer bei WaitEvent auf... was könnte falsch sein? EDIT: also hier nochmal mein Code(vielleicht ist der Fehler woanderst)... Code: [AUSKLAPPEN] Global height=GadgetHeight(Desktop());GfxModeHeight (CountGfxModes())
Global width=GadgetWidth(Desktop());GfxModeWidth (CountGfxModes()) Global window = CreateWindow("Google - Vollbild", 0, 0, GadgetWidth(Desktop()), GadgetHeight(Desktop()), 0, 32) Global htmlview = CreateHtmlView(0, 0, ClientWidth(window), ClientHeight(window), window) HtmlViewGo htmlview, "http://www.google.com" HotKeyEvent 1, 0, $803, 0, 0, 0, 0, window While WaitEvent()<>$803 Wend End Könnt ja mal testen ob es bei euch funktioniert. (Ich will ein Vollbild-Google haben, wo man mit ESC beenden kann....) bitte bald antworten danke |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch die Schleife doch mal so auf zu bauen
Code: [AUSKLAPPEN] while event <> $803 event = waitevent() select event ... wend Habe kein BP aber so müsste es eigentlich funktionieren. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
funktioniert leider immernoch nicht ![]() der debugger hält einfach an... |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pushen ist hier verboten, so dreist sowieso.
Ich hab mir mal die Mühe gemacht und an deinem Code eine weile rumprobiert (Hättest du übrigens auch selbst machen können). Ich bin zu dem Ergebnis gelangt, dass es am htmlview liegt, denn sobald ich das aus dem Fenster rausnehme, funktioniert der Code wie er soll. Deine Fehlerbeschreibung ist übrigens auch nicht gerade die beste, denn der Debugger hält gar nichts auf, das WaitEvent sorgt dafür, dass auf ein Event gewartet wird, was es ja auch tun soll, nur kommt halt keins an. Mit dem Debugger hat das überhaupt nichts zu tun. Für dein Problem seh ich erst mal keine Lösung, weil das htmlview alle Tasten-Events abzufangen scheint - warum auch immer. Sie sind somit weder mit HotkeyEvent noch mit WaitEvent aufzufinden. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
dass der beitrag doppelt gekommen ist - ist ein fehler -> sry
und es ist schade das es keine lösung gibt (auch wenn bei mir der debugger anhält - keine ahnung wieso) |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Fehler mit 3 Wochen Zeitunterschied?
An was genau merkst du denn, dass der Debugger es ist, der anhält? Normalerweise drängt er sich dann in den Vordergrund, zeigt den Quelltext an und gibt eine Fehlermeldung aus. Tut er das? |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja er kommt in den vordergrund und die ampel wechselt auf grün | ||
EisbaerBetreff: (BlitzPlus) HtmlView - Tastatur Abfrage ermöglichen. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meine Lösung für das Problem im Anhang.
Das ganze wird nun über die WinAPI und "Virtuelle Key's" gelöst. Referenzen für andere Anwedungen: http://msdn.microsoft.com/en-u...85%29.aspx Lg Eisbaer Code: [AUSKLAPPEN] ; Tastatur Abfrage unter BPlus - V0.1
; Da das HTML Fenster die Abfrage über GetKey() abfängt und nicht an das Programm weiterleitet. ; ; Homepage: www.eisbaer-solution.de ; ; Decls: ; ;.lib "user32.dll" ;api_GetAsyncKeyState% (vKey%) : "GetAsyncKeyState" ; deskw = ClientWidth(Desktop()) deskh = ClientHeight(Desktop()) c=CreateTimer(60) Const VK_ESCAPE% = $1B window = CreateWindow("Blitz Demo Browser", 0, 0, deskw, deskh, 0, 1) x = ClientWidth(window) y = ClientHeight(window) htmlview = CreateHtmlView(10, 10, x - 20, y - 20, window) HtmlViewGo htmlview, "http://www.blitzforum.de" While ( Not IsKeyPressed( VK_ESCAPE ) ) If WaitEvent() = $803 Then End WaitTimer(c) Wend End Function IsKeyPressed( vKey% ) Return ( api_GetAsyncKeyState( vKey% ) Shr 16 ) And 1 End Function |
||
Eigene Webseite:
http://www.eisbaer-studios.de |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also bei mir hält es wieder an.
Ich hab irgendwo mal gehört, WaitEvent ![]() Die Funkton IsKeyPressed wirkt auch nicht. Das nur als Information: Jetzt geht es ja offenbar nicht mehr, ist wohl ein Update schuld? Und die sechs Monate sind noch nicht um. |
||
Version: BlitzPlus / Blitz+ |
MCocktail |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn man Waitevent() ohne irgendwas in der Klammer benutzt, dann wartet es immer bis ein Event stattgefunden hat. Vielleicht kann das der Grund sein warum es anhält.
Hast du schon mal HotKeyEvent ![]() Laut HotKeyEvent ![]() BlitzBasic: [AUSKLAPPEN]
|
||
- Zuletzt bearbeitet von MCocktail am Sa, Mai 11, 2013 14:39, insgesamt einmal bearbeitet
![]() |
KnorxThieusBetreff: ? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähm... redest du jetzt mit mir oder Samuel?
Na, dann braucht man ja auch WaitEvent - oder wie meinst du das? |
||
Version: BlitzPlus / Blitz+ |
MCocktail |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich meine wenn du einfach WaitEvent() ohne irgendwas eingibst, wartet es so lange bis ein Event eintrifft. Wenn da WaitEvent(zahl) steht dann wartet es zahl Millisekunden lang auf ein Event.
z.B BlitzBasic: [AUSKLAPPEN] ;wartet so lange bis was passiert |
||
Gruß von: MCocktail |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ich hab auch eine Null eingesetzt. | ||
Version: BlitzPlus / Blitz+ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group