![]() |
space taste sperren und freigeben ohne onKeyPress
hi
Ich möchte die Spacetaste Sperren, da ich mir mit dem tastendruck eine Nachricht anzeigen lassen möchte.
Delphi-Quellcode:
Die Nachricht wird mir aber nicht angezeigt, weil der Tastendruck Das Fenster gleich wieder schließt.
if Windows.GetAsyncKeyState(32)<0 then //32 Space
begin showmessage('Test'); end Oder kann man vielleicht das GetAsyncKeyState-Feld veränderm??? gruss katrin |
Re: space taste sperren und freigeben ohne onKeyPress
Was spricht gegen:
Delphi-Quellcode:
Warum wird das Fenster wieder grschlossen? Benutzt du ein normales Formular oder einen Dialog?
if Key = ' ' then
begin ShowMessage('Hallo Welt!'); end; |
Re: space taste sperren und freigeben ohne onKeyPress
Ich frage mit
Delphi-Quellcode:
ob die Leertaste gedrückt wurde.
Windows.GetAsyncKeyState(32)<0
Wenn das der Fall ist Zeige ich mir ein MessageFenster
Delphi-Quellcode:
an.
showmessage('Test');
Da aber in dem Fenster der Focus auf dem OK-Button liegt und das Signal von der gedrückten Space an das Messagefenster weitergegeben wird, so schließt sich das Fenster wieder sofort.
Delphi-Quellcode:
if Windows.GetAsyncKeyState(32)<0 then //32 Space
begin //space sperren oder feld für gedrückte tasten manipulieren. sprich: gedrückteTastenFeld[32] := 0; showmessage('Test'); end |
Re: space taste sperren und freigeben ohne onKeyPress
Tja, wie wäre es als Workaround ein eigenes Fenster zu benutzen? Bsp:
![]() |
Re: space taste sperren und freigeben ohne onKeyPress
Hi,
wäre es nicht auch möglich bei
Delphi-Quellcode:
ein anderes Form zu öffnen und darin den Text anzeigen zu lassen? In
onKeydown
Delphi-Quellcode:
könnte man das Form doch wieder ausblenden.
onKeyup
|
Re: space taste sperren und freigeben ohne onKeyPress
Danke luigied für deine Antwort, aber das ist leider keine Lösung für mein Problem.
Hi Olli ich werde mal schaun, ob ich einen workaround machen kann. Sonst mache ich das nicht, weil dann ein problem nach dem anderen umgangen wird anstatt eine optimale lösung zu finden. :wink: trotzdem danke für die idee. gruss katrin |
Re: space taste sperren und freigeben ohne onKeyPress
Moin Katrin,
wo fragst Du die Taste denn ab? |
Re: space taste sperren und freigeben ohne onKeyPress
Ich habe auf meiner Fomr ein Image das ich verändere in einer endlosschleife.
in der schleife frage ich nun die taste space ab
Delphi-Quellcode:
um den bildverändernden Vorgang zu unterbrechen.
if Windows.GetAsyncKeyState(32)<0 then
Das klappt auch alles solange ich nicht die space oder enter nehme. Aber ich will die space taste benutzen. ggrrrr :wall: |
Re: space taste sperren und freigeben ohne onKeyPress
Sorry.
Ich glaube ich hab mich falsch ausgedrückt :oops: Ich meinte, dass in dem neuen Form deine Nachricht in einem Label oder so ausgegeben wird. (so zu sagen als selbstgebautes ShowMessage) Was willst du denn darin ausgeben, bzw. warum 'test'? |
Re: space taste sperren und freigeben ohne onKeyPress
hmm...
du könntest ja ein Application.Processmessages einbauen, dann kannst du den abbruch mit einem button machen. was für ein problem hast du genau? welches fenster schließt sich? gleich wieder? |
Re: space taste sperren und freigeben ohne onKeyPress
Hi luigied
"test" bedeutet soviel wie "Ich habe noch keine konkreten Vorstellungen wie der Text aussehen wird und habe test als platzhalter benutzt". Wie gesagt. Ich habe ein Bild das ich mathematisch verändere. Darüber könne ich das Label mit der Textnachrich legen, aber ich möchte den Nebeneffect eines MessageDialog der die Anwendung pausieren läßt. Sprich: 1. Bild verändert sich endlos. 2. User drückt taste --> Anwendung pausiert und Nachricht wird ausgegeben 3. user klickt das fenster weg -> Nachricht verschwindet und anwendung läuft weit trotzdem danke luigied für deinen Beitrag. LG Katrin |
Re: space taste sperren und freigeben ohne onKeyPress
du könnest auf jeden fall eine eigenen form nehmen, die du mit ShowModal öffnest. die pausiert das programm auch. und da kannst du dann vielleicht dein leertastenproblem lösen ;)
|
Re: space taste sperren und freigeben ohne onKeyPress
Hallo Katrin,
du könntest die Abfrage über GetAsyncKeyState durch eine TAction ersetzen, in welcher du die Leertaste als ShortCut einträgst. Diese Action muß nicht mit einem Control verknüpft sein, deine "Rechenschleife" sollte jedoch von Zeit zu Zeit die Nachrichtenverarbeitung über Application.ProcessMessages anstoßen. Gruß Hawkeye |
Re: space taste sperren und freigeben ohne onKeyPress
Danke DGL-luke
Super Idee. Habe eine Dialogbox genommen und den Button ausgetauscht und es funktioniert. Danke luke :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz