Einzelnen Beitrag anzeigen

Hansa

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

Re: Abfangen von Funktionstasten

  Alt 11. Jan 2004, 20:18
Hi,

doch, doch, das ist schon gelöst. Für diejenigen, die die etwas ähhm, verklausulierte Antwort von Leuselator nicht ganz verstehen sollten : Die Sondertasten müssen im OnKeyDown behandelt werden und die "normalen" zusätzlich im OnKeyPress. Ein Ereignis reicht nicht ! Z.B. so :

Delphi-Quellcode:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var i : integer;
    ValidKeys : set of byte;
begin
  ValidKeys := [VK_TAB,VK_BACK,VK_RETURN]; (* Backspace, Tab, Enter immer zulassen *)
  case StringGrid1.col of
    1 : ValidKeys := ValidKeys + [VK_F9,VK_F10];
    4 : ValidKeys := ValidKeys + [VK_F3];
  end;
  if key in ValidKeys then with StringGrid1,EingDM do begin
    case Key of

// je nach Sondertaste was machen

      VK_F9 : begin
               end;
      VK_F10 : ;
      VK_F3 : ;
      VK_TAB,
      VK_RETURN :;
    end;
  end
  else begin
    key := $0;
    SysUtils.Beep;
  end;
end;
nur Zahlen zulassen:

Delphi-Quellcode:
procedure TForm1.StringGrid1Key[b]Press[/b](Sender: TObject; var Key: Char);
var i : integer;
    ValidKeys : set of char;
begin
  ValidKeys := ['0'..'9'];
  if not (key in ValidKeys) then begin
    key := #0;
    SysUtils.Beep;
  end;
end;
Gruß
Hansa
  Mit Zitat antworten Zitat