AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Im Stringgrid mit Enter in nächste Zelle

Ein Thema von Hansa · begonnen am 2. Jul 2003 · letzter Beitrag vom 3. Jul 2003
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Im Stringgrid mit Enter in nächste Zelle

  Alt 2. Jul 2003, 13:18
Hi,

das bezieht sich hier drauf:

http://www.delphipraxis.net/viewtopi...c964cdbf2803c9

Es geht um Enter zu benutzen, um in ein anderes Feld zu gelangen. Hierzu muß man KeyPreview der Form auf true setzen und das OnKeyDown-Ereignis bearbeiten. Steht alles in dem alten Thread.

Nun lege man mal ein Edit-Feld und ein Stringgrid auf eine Form. Beim Verlassen des Edits soll der Cursor in der ersten Zelle des Stringgrids stehen. Mit Return gehts dann aber nicht weiter von Zelle zu Zelle. Gehe ich so vor, wie in dem Thread beschrieben, hängt der Cursor in der ersten Zelle fest.
Gruß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 2. Jul 2003, 13:26
Moin Hansa,

im OnKeyDown oder OnKeyUp des Stringgrids:

Delphi-Quellcode:
  if Key = VK_RETURN then begin
    SendMessage(StringGrid1.Handle,WM_KEYDOWN,VK_DOWN,0);
    SendMessage(StringGrid1.Handle,WM_KEYUP,VK_DOWN,0);
  end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3
  Alt 2. Jul 2003, 13:35
Hi,

ich glaube es liegt daran, daß die Form ein OnKeyDown hat, das Stringgrid aber auch. Jetzt habe ich das EnterTab da eingebaut, nützt aber nichts. Übrigens
Code:
if not (key in [48..57,8,13]) then
geht auch nicht, trotz der Abfrage wird alles akzeptiert. 8)

Delphi-Quellcode:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var Cell_ID : string;
begin
// EnterTab(Sender,Key,Shift,[],[],true);
   IF StringGrid1.Col=1 THEN BEGIN
     case Key of
       VK_F9 : SucheArtikel;
     end;
  END;
  if not (key in [48..57,8,13]) then
    key := 0;
  with StringGrid1 do begin
    case key of
      VK_RETURN :
        begin
...
        end;
      VK_ESCAPE :
        begin
          Transaction.Commit;
          Close;
      end;
    end;
  end;
end;
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 2. Jul 2003, 14:30
Zitat von Christian Seehase:
Moin Hansa,

im OnKeyDown oder OnKeyUp des Stringgrids:

Delphi-Quellcode:
  if Key = VK_RETURN then begin
    SendMessage(StringGrid1.Handle,WM_KEYDOWN,VK_DOWN,0);
    SendMessage(StringGrid1.Handle,WM_KEYUP,VK_DOWN,0);
  end;
geht nicht, im OnkeyDown des Grids komme ich nicht an, das ist der haken.
Gruß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 3. Jul 2003, 16:20
Moin Hansa,

Zitat von Hansa:
Hi,

ich glaube es liegt daran, daß die Form ein OnKeyDown hat, das Stringgrid aber auch. Jetzt habe ich das EnterTab da eingebaut, nützt aber nichts. Übrigens
Code:
if not (key in [48..57,8,13]) then
geht auch nicht, trotz der Abfrage wird alles akzeptiert. 8)
Wenn ich nicht sehr irre hatte ich zu dem Thema schon geschrieben, dass ich das nachvollziehen kann (warum auch immer), dass man diese Abfrage aber im OnKeyPress funktioniert.

Ich hab' eben auch mal ausprobiert, was passiert, wenn ich KeyPreview auf true und eine OnKeyDown im Hauptformular habe:
Es funktioniert trotzdem.

BTW: Wenn Du key auf 48..57,8, 13 einschränkst, nutzt Dir Dein Case key of VK_ESCAPE nichts. Den hast Du nicht zugelassen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 3. Jul 2003, 16:22
stimmt, 27 habe ich nicht zugelassen
Gruß
Hansa
  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 09:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz