Procedura obsługiwana 2 sposobami

0

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!

0

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;
0

Ta metoda działa za pierwszym razem. Ale po kliknięciu buttona - klawiatura nie wpływa już na operację.

0

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ś?

0
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ć.

0

Wystarczy pierwszy sposób oraz ustawić formie właściwość KeyPreview (albo coś podobnego) na true.

0

A jeszcze prościej ustawic buttonowi property Default na true, kombinatorzy [rotfl]

0

A najprościej to nic nie robić. [rotfl]

1 użytkowników online, w tym zalogowanych: 0, gości: 1