Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie viele Zeichen hat eine Tastataur? :) (https://www.delphipraxis.net/42400-wie-viele-zeichen-hat-eine-tastataur.html)

Master_RC 18. Mär 2005 12:12


Wie viele Zeichen hat eine Tastataur? :)
 
hi leutz!

ich wollt nur mal fragen:
ich hab ja vor, ein spiel zu prggen, das mit Tatsatur gesteuert wird, also ein Array wird angelegt (of boolean), um zu prüfen, ob ne taste gedrückt ist/wurde

wie viele muss ich da beachten, bzw., wie soll ich den array aufbauen?

Naja, jetzt dürft ihr schreiben ;)

himitsu 18. Mär 2005 12:18

Re: Wie viele Zeichen hat eine Tastataur? :)
 
Also, je nach Tastatur-Layout und Sprach-Einstellung solltest du mal sicherheitshalber 65536 Werte behalten können (es kann ja rein Theoretisch der gesamte Unicodebreich vorkommen UCS2 = 2 Byte = 65536 Werte) :roll:

Ansonsten zähl doch einfach mal nach :zwinker:


Also besser gesagt, lass das mit dem Array[0..65535] of Boolean...

Außerdem können eh nicht zuviele Tasten gleichzeitig gedrückt werden (ab 3 - 5 asten wird es schon eng)

Also, wenn schon ein Array, dann doch lieber Array of WideChar oder Array of Word wenn 'ne Taste gedrückt wird, dann diese an das Array anhängen und beim Loslassen wieder rauslöschen...

yankee 18. Mär 2005 12:21

Re: Wie viele Zeichen hat eine Tastataur? :)
 
ich würde als Nummerieruing ASCII-Zahlen nehmen. www.asciitable.com
Mit Ord(string) bekommst du die Ascii-zahl und mit chr(int) das zugehörige Zeichen.

Master_RC 18. Mär 2005 12:26

Re: Wie viele Zeichen hat eine Tastataur? :)
 
mmh... kann mir da jemand mal ein beispiel geben?

wie kann ich denn auslesen, ob der buchstabe 'x' bei einem Char-Array drinnen ist?

himitsu 18. Mär 2005 12:31

Re: Wie viele Zeichen hat eine Tastataur? :)
 
@yankee:
Stell mal deine Tastatur auf Japanisch, Koreanisch, Russisch, oder was auch immer, dann kommst du mit deinem ASCII (0..255) nicht mehr sehr weit > http://www.unicode.org/charts/ ($0000..$FFFF)

Es gibt zwar auch ScanCodes, aber die sind ja auch 2 Byte groß
> die einhundertundeinpaarzerqutschte Testen, dann gibt es jede Taste nochmal in verschiedenen Strg/Alt/Shift-Kombinationen und NumLock on/off macht auch nochmal was dazu ...

[add]
Delphi-Quellcode:
Var Tasten: Array of WideChar;

Function TasteDrin(Taste: WideChar): Boolean;
  Var i: Integer;

  Begin
    Result := False;
    For i := 0 to High(Tasten) do
      If Taste = Tasten[i] Then Begin
        Result := True;
        Break;
      End;
  End;

Procedure TasteMerken(Taste: WideChar);
  Begin
    If not TasteDrin(Taste) Then Begin
      SetLength(Tasten, Length(Tasten) + 1);
      Tasten[High(Tasten)] := Taste;
    End;
  End;

Procedure TasteVergessen(Taste: WideChar);
  Var i, i2: Integer;

  Begin
    For i := 0 to High(Tasten) do
      If Taste = Tasten[i] Then Begin
        For i2 := i to High(Tasten) - 1 do
          Tasten[i] := Tasten[i + 1];
        SetLength(Tasten, Length(Tasten) - 1);
        Break;
      End;
  End;

Steve 18. Mär 2005 12:35

Re: Wie viele Zeichen hat eine Tastataur? :)
 
Hi,

um rauszufinden, ob ein x in nem Char-Array ist, gehe das Array durch, bis zu auf ein x stößt oder das Ende des Arrays erreichst :mrgreen:

Gruß
Stephan :dance:

Master_RC 18. Mär 2005 12:45

Re: Wie viele Zeichen hat eine Tastataur? :)
 
jetzt brauch ich ja nur mehr wissen, wie ich den array am besten durchgeh :)

ich schätze mal, dass ich einfach die elemente zähle und dann per for-schleife durchgeh, wa? :stupid:

Binärbaum 18. Mär 2005 12:48

Re: Wie viele Zeichen hat eine Tastataur? :)
 
Zitat:

Zitat von Master_RC
jetzt brauch ich ja nur mehr wissen, wie ich den array am besten durchgeh :)

ich schätze mal, dass ich einfach die elemente zähle und dann per for-schleife durchgeh, wa? :stupid:

Ja, in etwa so, wie himitsu es schon vorgemacht hat.

MfG
Binärbaum

Master_RC 18. Mär 2005 12:56

Re: Wie viele Zeichen hat eine Tastataur? :)
 
oh, mist, hab ich übersehen :D
sorry, himitsu ;)


gut, ich werd das mal ausprobieren, dann...

yo, das thema wär erledigt ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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 by Thomas Breitkreuz