Announcement

Collapse
No announcement yet.

Seltsames verhalten vom TStringgrid mit anderen Shortcuts...

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

  • Seltsames verhalten vom TStringgrid mit anderen Shortcuts...

    Hallo Leute,

    Ich habe unter Delphi5 (Windows 2000) ein GroupBox auf einem Formular...
    Innerhalb der GroupBox befindet sich eine Stringgrid une eine ComboxBox mit seinem Label... Das Label hat ein Shortcut (&Buchstabe) und der FocusControl zeigt auf die ComboBox... Jetzt kommt das seltsame Verhalten... Setz ich den Focus (Selection) auf den Stringgrid, der nebenbei bemerkt nicht editierbar ist, und druecke den ShortcutBuchstaben der Combobox, wechselt der Focus auf die Combobox, obwohl ich gar keine Alt-Taste dazu gedrueckt habe... Dieser Effect ist nicht erwuenscht (von unserem Kunden)...
    Hat vielleicht jemand das gleiche beobachten koennen und auch eine Loesung dazu... Mir gehen naemlich langsam die Ideen aus...

    mfg und Danke im vorraus

    Najib Amaioua

  • #2
    Du könntest versuchen, die Taste im OnKeyPress vom Grid zu "löschen".<br>
    if key = 'B' then Key := 0;<p>
    Ist aber wirklich nur eine Idee. Evtl. solltest Du mal schauen, wenn KeyPreview von Formular True ist, ob nicht vielleicht eine eigene Routine im OnKeyDown, Press oder Up das Verhalten erzwingt?!<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Dieses Verhalten sollte der Standard sein. So funktioniert es auch mit anderen Controls die KEINE Buchstabeneingaben benötigen. D.h. also der Vorschlag von Mario ist absolut korrekt,

      <pre>

      procedure TForm1.GridKeyPress(..);
      begin
      if (GetAsyncKeyState(vk_Menu) <> 0) and
      (UpCase(Key) in ['A'..'Z']) then Key := #0;
      end;

      </pre>

      da nun das Grid auf solche Tasten reagiert. (auch wenns im Nirwana landet)

      gruß Hage

      Comment


      • #4
        Danke fuer eure Antworten...

        mit den OnKey-Events hab ichs schon probiert... Leider werden die Shortcuts schon vorher überprüft, d.h. bevor OnkeyPress, OnKeydown reagiert...
        Den Grid habe ich auch nur genommen, weil ich eine Liste (mit einem Header brauche) wo man alle Spalten selektieren kann... Beim Listview ist das nur bei der Caption oder der ganzen Zeile möglich... Der Grid war da die optimale Lösung... Nur muß der Grid für den User wie ein Listview verhalten... das habe ich auch bis auf diese eine Sache geschafft... Bei einem Listview regieren Shortcuts nur mit der AltTaste (auch wenn diese Readonly ist) zusammen...
        Das heißt mir bleibt nichts anderes übrig als tief in der Komponente rumzuwühlen... Ein einfacherer Lösung oder ein Trick wäre mir aber lieber, da ich unter Zeitdruck stehe...

        mfg
        Naji

        Comment


        • #5
          Hallo <p>setze die StringGrid doch in ein Panel dann ist der Owner nicht mehr GroupBox</p> Gruß Andrea

          Comment


          • #6
            Oder Form1.KeyPrevview := True, und die Keys im OnKeyPress() des Form1 abfangen. Dazu musste aber auch ActiveControl nach dem Grid abfragen

            Comment


            • #7
              Anscheinend liegt das nicht an der Ebene, d.h. Egal ob GroupBox, Panel... usw... Der Grid regiert immer auf den entsprechenden existierenden Shortcut...
              KeyPreview aendert das verhalten leider nicht...
              Ich werde einfachmal weiter herumexperementieren...
              Sollte ich eine Loesung finden... Teile ich sie dem Forum mit...

              Trotzdem danke fuers mitdenken...

              mfg

              Najib Amaioua (and happy X-Mas

              Comment

              Working...
              X