Announcement

Collapse
No announcement yet.

Pfeil rauf und runter ansprechen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pfeil rauf und runter ansprechen

    HI, ich hab mal wieder folgendes problem

    Da ich mit normale Editfelder arbeite muß ich die Verknüpfung zum DBGrid selber herstellen.

    Meine Frage:

    Ich kann mit den pfeil nach <b>oben</b> oder nach <b>unten</b> in meinem DbGrid <b>rauf</b> und <b>runter</b> scrollen.

    Nur kann ich so nicht die restlichen Daten in meine editfelder schreiben also müßte ich auf den Keypress reagieren kann mir jemand sagen was <b>Pfeil oben </b>für eine #Zahl hat?

    Beispiel Return Taste key = #13 (if key = #13 then ...

  • #2
    <p>Hallo Bine,<br>
    <br>
    dafür gibt es keinen ASC-Code.<br>
    <br>
    In Deinem Fall wäre es besser, dass KeyDown-Ereignis zu verwenden.<br>
    <br>
    <pre>
    procedure TForm1.EditKeyDown(Sender:TObject; var Key:Word; Shift:TShiftState);
    begin
    if (Key in [VK_UP, VK_Down]) then
    begin
    // Pfeiltaste nach oben od. nach unten wurde gedrückt
    // tu irgdwas
    end;
    end;
    </pre>
    <br>
    Näher Angaben zu den Tastencodes findes Du in der Delphi-Hilfe unter <b>virtuelle Tastencodes</b>.
    <br>
    Gruß Thomas</p&gt

    Comment


    • #3
      <p>Hallo Bine,<br>
      <br>
      mir ist auch kein Code dafür bekannt.<br>
      <br>
      In Deinem Fall wäre es besser, dass <b>KeyDown</b>-Ereignis zu verwenden.<br>
      <br>
      <pre>
      procedure TForm1.EditKeyDown(Sender:TObject; var Key:Word; Shift:TShiftState);
      begin
      if (Key in [VK_UP, VK_DOWN]) then
      begin
      // Pfeiltaste nach oben od. nach unten wurde gedrückt
      // tu irgdwas
      end;
      end;
      </pre>
      <br>
      Näher Angaben zu den Tastencodes findes Du in der Delphi-Hilfe unter <b>virtuelle Tastencodes</b>.
      <br>
      Gruß Thomas</p&gt

      Comment


      • #4
        Hi,

        im Prinzip ist es egal welches Ereignis du verwendest. Du musst nur die Typen entsprechend umwandeln:
        <BR>
        <FONT Style = "Courier New">
        procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
        begin
        if Key = Chr(VK_UP) then
        begin
        //Pfeiltaste nach oben wurde gedrückt
        end
        else if Key = Chr(VK_DOWN) then
        begin
        //Pfeiltaste nach unten wurde gedrückt
        end;
        end;
        <BR>
        Damit erreichst du dasselbe wie mit o.g. Beispiel :-)

        Motz

        Comment


        • #5
          Sorry,

          hab da etwas Scheiße gebaut!! :-o Also nochmal

          im Prinzip ist es egal welches Ereignis du verwendest. Du musst nur die Typen entsprechend umwandeln:
          <BR><BR>
          <FONT Face = "Courier New">
          procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);<BR>
          begin<BR>
          if Key = Chr(VK_UP) then<BR>
          begin<BR>
          //Pfeiltaste nach oben wurde gedrückt<BR>
          end<BR>
          else if Key = Chr(VK_DOWN) then<BR>
          begin<BR>
          //Pfeiltaste nach unten wurde gedrückt<BR>
          end;<BR>
          end;<BR>
          <BR>
          Damit erreichst du dasselbe wie mit o.g. Beispiel :-)

          Motz

          Comment


          • #6
            Danke!! :_

            Comment


            • #7
              Hallo Bine,<br>das abfragen der Pfeiltasten ist natürlich auch eine Möglichkeit. Aber ich glaube, dass es noch eine elegantere Möglichkeit gibt. Wenn Du ein DBGrid verwendest, benutzt Du sicherlich auch eine TDataSource. Teste doch mal TDataSource.OnDataChange. Dieses Ereignis wird ausgelöst, wenn Du innerhalb des DBGrid navigierst. Egal mit welchem Eingabemedium!
              <br>:-) Jens Schuman

              Comment


              • #8
                <p>Hallo,<br>
                <br>
                das von Manuel vorgeschlagene Verfahren funktioniert so nicht!! Die Pfeiltasten lösen kein Ereignis OnKeyPress aus!!<br>
                <br>
                Gruß Thomas</p&gt

                Comment


                • #9
                  DAnke einmal!!

                  Ich glaube ich MUSS wohl die DBedit's verwenden!!

                  LEIDER! Da macht er das ja e automatisch.

                  Ich hatte damals Probleme weil er mir immer gleich die Daten in die Tabelle gespeichert hat!!

                  Und ich so immer nach dem OnExit des EIngabefeldes Überprüfungen machen mußte und das wäre für den Kunden ziemlich nervend!

                  Weil er ja das Feld nie verlassen konnte, jetzt mache ich die Überprüfungen erst beim Betätigen des Speichern-Buttons.

                  Was sagt ihr dazu????

                  Comment


                  • #10
                    <p>Hallo Bine,<br>
                    <br>
                    würde ich genau so machen.<br>
                    <br>
                    Thomas</p&gt

                    Comment

                    Working...
                    X