AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OnKeyPress automatisch auslösen

Ein Thema von Hansa · begonnen am 11. Jul 2004 · letzter Beitrag vom 14. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2   
Hansa

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

OnKeyPress automatisch auslösen

  Alt 11. Jul 2004, 22:20
Hi,

ich habe hier eine Form. In der wähle ich einen Wert aus. Dieser soll an ein Stringgrid übergeben werden, so als wäre er von Hand eingegeben und mit Enter bestätigt worden.

Den Wert bekomme ich richtig in die passende Zelle hinein. Das Feld ist dann blau hinterlegt, ich drücke Enter und die gewünschte Aktion wird ausgeführt. Die manuelle Enter-Eingabe ist aber überflüssig. Wenn ich Key auf #13 setzte, so nützt das auch nichts.

Was kann ich da machen, bzw. wo muß was eingestellt werden ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: OnKeyPress automatisch auslösen

  Alt 11. Jul 2004, 22:22
Schon mal
SendMessage(Handle, WM_KEYDOWN, VK_RETURN, 0); im OnKeyDown Ereignis probiert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 01:03
Und dann
SendMessage(Handle, WM_KEYUP, VK_RETURN, 0); Wir wollen ja nicht, daß die Taste bis an ihr Lebensende gedrückt bleibt.


Edit: Naja, das gehört dann wohl ins entsprechende OnKeyUp-Ereignis.
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
Hansa

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

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 13:34
Mist, geht beides nicht. Egal ob alleine oder beide.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 13:36
Zitat von Hansa:
Mist, geht beides nicht. Egal ob alleine oder beide.
Hai Hansa,

wenn ich es richtig verstehe trägst Du Programmseitig Daten in dein Grid ein. Warum rufst Du nach dem Eintragen nicht einfach die OnKeyPress Methode des Grids auf?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

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

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 13:47
Genau so ist es: programmseitig wird die Zahl eingetragen, die auch manuell eingegeben werden könnte. Den key setze ich manuell auf #13 um eben Enter zu simulieren. Im OnKeyPress kommt das aber nicht an, bzw. lande ich da erst gar nicht. Würde das OnkeyPress ausgelöst, so würde es gehen wie gewünscht.

P.S.: was ist denn mit KeyPreview etc. Wo könnte man noch nachsehen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 13:55
Lagere das was nach dem OnKeyPress passieren soll in eine eigene Methode aus (trennung von Funktion und GUI).

z.B.:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.Cells[1,1] := 'meow';
  MacheEtwasImGrid (StringGrid1);
end;

procedure TForm1.MacheEtwasImGrid(Sender: TObject);
begin
  ShowMessage ('blubb');
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if (key = #13) then
  begin
    MacheEtwasImGrid (sender);
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

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

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 18:40
Zitat von Sharky:
Lagere das was nach dem OnKeyPress passieren soll...
Das ist ja das Problem. Ich gelange erst gar nicht ins OnKeyPress. Wenn ich das von Hand mache (Enter drücken) wird ja gemacht, was ich will. Setze ich Key := #13; im OnKeyDown, dann passiert eben nichts.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

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

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 19:54
Kann hiermit einer was anfangen ?

Zitat:
After you assign the value to Cells[I, J], invoke the method that
responds to [Enter] directly:

Cells[I, J] := somestring;
EnterButton.OnClick(EnterButton);

Or, if you know the name of the method, just call that:

Cells[I, J] := somestring;
EnterButtonClick(EnterButton);
Der Wert steht ja im Stringgrid, aber was will der mit dem Button ??
Gruß
Hansa
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: OnKeyPress automatisch auslösen

  Alt 12. Jul 2004, 20:57
Hier nochmal eine perHand-Simulation, die eigentlich ganz gut gehen müsste. Beim OnKeyPress-Eventhandler kämst du da z.B. auch vorbei.


Delphi-Quellcode:
  StringGrid1.cells[X,Y] := 'hallo';
  StringGrid1.Col := X;
  StringGrid1.Row := Y;
  StringGrid1.SetFocus;

  // Wenn du das OnKeyPress-Ereignis brauchst:
  keybd_event(vk_return, 0, 0, 0);
  keybd_event(vk_return, 0, KEYEVENTF_KEYUP, 0);

  StringGrid1.EditorMode := false; // Kniff, um die Zelle in den
  StringGrid1.EditorMode := true; // neutralen Zustand zurückzusetzen
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:42 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