Cześć!
Chciałbym wiedzieć w jaki sposób mogę zainicjować procedurę wykonywaną po kliknięciu buttona również przy użyciu klawisza np. Enter (hciałbym aby jedną procedurę można było obsługiwać 2 sposobami).
Z góry dzięki!
Np:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='4programmers';
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then Button1.Click;
end;
Ta metoda działa za pierwszym razem. Ale po kliknięciu buttona - klawiatura nie wpływa już na operację.
Ja pierdziele to dorób sobie prockę aby wracała do stanu początkowego. Ja pokazałem tylko obsługę na 2 sposoby jednego zadania, myślisz człowieku coś?
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then Button1.Click;
end;
Po kliknięciu przycisku to on ma focus, więc komunikat o naciśnięciu klawisza jest przekazywany do niego. Generalnie, to gdybyś chciał żeby z dowolnego komponentu naciśnięcie enter wywoływało to samo, to albo dla każdego komponentu obsłużysz KEYPRESS albo musisz HOOKA założyć.
Wystarczy pierwszy sposób oraz ustawić formie właściwość KeyPreview (albo coś podobnego) na true.
A jeszcze prościej ustawic buttonowi property Default na true, kombinatorzy [rotfl]
A najprościej to nic nie robić. [rotfl]