編集ボックスを作成して、カーソルをその中に置いたままエンターを押すにはどうすればよいですか。次に、編集ボックスにあった Web ブラウザーでその Web サイトに移動しますか?
誰でも私を助けることができますか?
編集ボックスを作成して、カーソルをその中に置いたままエンターを押すにはどうすればよいですか。次に、編集ボックスにあった Web ブラウザーでその Web サイトに移動しますか?
誰でも私を助けることができますか?
OnKeyPress
イベントの代わりにイベントを使用する必要がありますOnKeyDown
。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key) = VK_RETURN then
begin
Key := #0; // prevent beeping
WebBrowser1.Navigate(Edit1.Text);
end;
end;
TEdit
aと aをフォームにドロップしTWebBrowser
、イベント ハンドラーをエディット コントロールに書き込みますOnKeyDown
。
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
WebBrowser1.Navigate(Edit1.Text);
end;
end;
もう少しエレガントにするために、私はお勧めします
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
begin
WebBrowser1.Navigate(Edit1.Text);
Edit1.SelectAll;
end;
end;
end;
URL をフォームではなく、システムのデフォルト ブラウザで開きたい場合は、次のようにTWebBrowser
置き換えます。WebBrowser1.Navigate(Edit1.Text)
ShellExecute(0, nil, PChar(Edit1.Text), nil, nil, SW_SHOWNORMAL);
ShellAPI
uses 句に追加した後。ただし、プロトコルを明示的に指定する必要があることに注意してください。たとえば、bbc.co.uk
機能しませんが、機能しhttp://bbc.co.uk
ます。