Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi space taste sperren und freigeben ohne onKeyPress (https://www.delphipraxis.net/76830-space-taste-sperren-und-freigeben-ohne-onkeypress.html)

Katrin_K 10. Sep 2006 18:50


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:
 if Windows.GetAsyncKeyState(32)<0 then  //32 Space
    begin
      showmessage('Test');
    end
Die Nachricht wird mir aber nicht angezeigt, weil der Tastendruck Das Fenster gleich wieder schließt.

Oder kann man vielleicht das GetAsyncKeyState-Feld veränderm???


gruss katrin

Cyberbob 10. Sep 2006 19:03

Re: space taste sperren und freigeben ohne onKeyPress
 
Was spricht gegen:
Delphi-Quellcode:
if Key = ' ' then
begin
  ShowMessage('Hallo Welt!');
end;
Warum wird das Fenster wieder grschlossen? Benutzt du ein normales Formular oder einen Dialog?

Katrin_K 10. Sep 2006 19:10

Re: space taste sperren und freigeben ohne onKeyPress
 
Ich frage mit

Delphi-Quellcode:
Windows.GetAsyncKeyState(32)<0
ob die Leertaste gedrückt wurde.

Wenn das der Fall ist Zeige ich mir ein MessageFenster

Delphi-Quellcode:
showmessage('Test');
an.

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

Olli 10. Sep 2006 21:45

Re: space taste sperren und freigeben ohne onKeyPress
 
Tja, wie wäre es als Workaround ein eigenes Fenster zu benutzen? Bsp: MSDN-Library durchsuchenMessageBoxIndirect()!

luigied 11. Sep 2006 09:11

Re: space taste sperren und freigeben ohne onKeyPress
 
Hi,

wäre es nicht auch möglich bei
Delphi-Quellcode:
onKeydown
ein anderes Form zu öffnen und darin den Text anzeigen zu lassen? In
Delphi-Quellcode:
onKeyup
könnte man das Form doch wieder ausblenden.

Katrin_K 11. Sep 2006 12:47

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

Christian Seehase 11. Sep 2006 12:48

Re: space taste sperren und freigeben ohne onKeyPress
 
Moin Katrin,

wo fragst Du die Taste denn ab?

Katrin_K 11. Sep 2006 13:00

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:
if Windows.GetAsyncKeyState(32)<0 then
um den bildverändernden Vorgang zu unterbrechen.

Das klappt auch alles solange ich nicht die space oder enter nehme.
Aber ich will die space taste benutzen. ggrrrr :wall:

luigied 11. Sep 2006 13:05

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'?

DGL-luke 11. Sep 2006 13:23

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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr.
Seite 1 von 2  1 2      

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