warum funzt der code nicht

Anfängerfragen zum Programmieren mit PureBasic.
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

warum funzt der code nicht

Beitrag von Special-Agent-J »

also ich will ja mit shortcut beenden und hab ein code geschrieben aber irgendwie funzt das nicht

Until KeyboardPushed(#PB_Key_Escape)=1
EndIf
End
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Nimm doch einfach

Code: Alles auswählen

AddKeyboardShortcut()
Win11 x64 | PB 6.20
Little John

Re: warum funzt der code nicht

Beitrag von Little John »

Special-Agent-J hat geschrieben:also ich will ja mit shortcut beenden und hab ein code geschrieben aber irgendwie funzt das nicht

Until KeyboardPushed(#PB_Key_Escape)=1
EndIf
End
Warum machst Du 2 Threads zur selben Frage auf??
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag von Tompazi »

KeyboardPushed() verwendet DirectX und kann deshalb bei Screens angewendet werden..

Code: Alles auswählen

Enumeration
#Window
#MyEvent
EndEnumeration

OpenWindow(#Window,100,100,100,100,"PRESS ESCAPE")

AddKeyboardShortcut(#Window, #PB_Shortcut_Escape, #MyEvent)

Repeat

 Event = WaitWindowEvent()
 Select Event
  Case  #PB_Event_Menu
   Select EventMenu()
    Case #MyEvent
     Quit = 1
    EndSelect
  EndSelect
  
Until Quit
Lies mal in der Hilfe nach.

MfG Tompazi
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Titel hat geschrieben:warum funzt der code nicht
Solche Titel helfen niemanden bei der Suche nach Problemlösungen!, absolut
nichtsaussagend, also bitte anpassen, ansonsten gehört der Thread mit
so einem Titel IMHO in die Laberecke
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Little John

Beitrag von Little John »

ts-soft hat geschrieben:
Titel hat geschrieben:warum funzt der code nicht
Solche Titel helfen niemanden bei der Suche nach Problemlösungen!, absolut
nichtsaussagend, also bitte anpassen, ansonsten gehört der Thread mit
so einem Titel IMHO in die Laberecke
Du hast völlig recht, aber der Thread gehört sowieso gelöscht (siehe mein Posting oben).

Gruß, Little John
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Hier mal meine Vertmutung (den vorherigen Thread hab ich mir nicht durchgelesen).
KeyboardPushed(#PB_Key_Escape) gibt bei mir 128 zurück wenn die Taste gedrückt wurde. Also ist das =1 falsch
Dein End würde ich vor's endif setzten, sonst nutzt die Abfrage nicht fiel.

Code: Alles auswählen

if KeyboardPushed(#PB_Key_Escape);Wenn Escape gedrückt ist, dann...
end;...beende
endif ;Ende der Abfrage.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@J
also, mal grundsätzlich zum Thema Fragen:
aussagekraftige Titel, ausführlich formulierte Fragen, Hintergrundinfos.
so wie du das jetzt gemacht hast ist es wirklich eigentlich nicht ausreichend.

nur drei Zeilen code ohne Zusammenhang sind verwirrend,
ein Kollege dachte ja es ginge um ein If.
und wenn code, dann nächstes mal bitte auch code-tags verwenden.


und ja, auch ganz gewiß: bitte nicht zwei threads zum selben thema öffnen.
du hättest ohne Schwierigkeiten die neue Frage ans andere Thema dranhängen können.


der erste Teil der Antwort von kswb ist korrekt:
der Rückgabewert von KeyboardPushed() muss nur #True sein, also ungleich null, das kann jede andere Zahl sein.
also genügt in deinem Fall

Code: Alles auswählen

Until KeyboardPushed(#PB_Key_Escape)
auch was Tompazi schreibt ist richtig:
um KeyboardPushed auswerten zu können, musst du einen Screen haben
und InitKeyboard() und ExamineKeyboard() benutzt haben.
falls du das hast ist das ja richtig so, aber dann ist es kein Shortcout!
also bitte drauf achten, die passenden Begriffe zu verwenden,
damit die Kollegen auch wissen, wobei sie dir eigentlich helfen sollen.

so, damit ist diese jetzige Frage beantwortet, und ich mache hier dicht.
wenn du weitere Fragen zum Thema hast, benutze bitte deinen ersten Thread weiter.

*lock*
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Gesperrt