AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi KeyDown: welches Zeichen steht hinter "Key"
Thema durchsuchen
Ansicht
Themen-Optionen

KeyDown: welches Zeichen steht hinter "Key"

Ein Thema von Helmi · begonnen am 19. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

Re: KeyDown: welches Zeichen steht hinter "Key"

  Alt 19. Jan 2007, 10:12
Hallo,

ich möcht mein Problem nochmal schildern - denn ich denke, dass ich es nicht wirklich richtig rübergebracht habe:

wie in meinem anderen Thread hervorgeht, will ich eine Zelle beim Tippen weiterspringen.

Das funktioniert auch bestens.

Dies mach ich im OnKeyPress so:
Delphi-Quellcode:
procedure TForm2.StringGridKeyPress(Sender: TObject; var Key: Char);
var
  Zeile : Integer;
  Spalte: Integer;

begin
  with StringGrid do
    begin
      //
      Zeile := Selection.Top;
      Spalte := Selection.Left;
      
      If (Key in [#13]) then
        exit;

      If Key = #8 then
        begin
          If (Pred(Spalte) > 0) then
            Spalte := Spalte - 1
          else
            If (Spalte = 1) and (Zeile > 1) then
              begin
                Zeile := Zeile - 1;
                Spalte := 40;
              end;

          StringGrid.Cells[Spalte, Zeile] := '';
          StringGrid.Col := Spalte;

          StringGrid.Row := Zeile;

          exit;
        end;

      If (Zeile > 0) and (Spalte > 0) then
        begin
          StringGrid.Cells[Spalte, Zeile] := Key;

          If Spalte < 40 then
            StringGrid.Col := Spalte + 1
          else
            If Zeile <= 3 then
              begin
                StringGrid.Col := 1;
                StringGrid.Row := Zeile + 1;
              end;
        end;
    end;
end;
Soweit so gut, es wird also jede Taste angenommen bis auf die Entertaste (#13).
Nur, soll neben der Entertaste auch auf die Entf-Taste, Tab-Taste geprüft werden, ob diese gedrückt wurden, wenn ja, dann die Procedure beenden.

Leider gibt Key in OnKeyPress für die entf und Tab-Taste nichts zurück, deshalb kann ich nicht einfach darauf prüfen.

Es würde im OnKeyDown funktionieren, nur da hab ich das Problem, dass Key kein Char ist und ich deshalb nicht weiss, welches Zeichen gedrückt wurde.
Ich brauch dies ja hier:
Delphi-Quellcode:
      If (Zeile > 0) and (Spalte > 0) then
        begin
          StringGrid.Cells[Spalte, Zeile] := Key; //<----
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 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