delphi 按回车键

发布于 2024-10-22 19:04:27 字数 76 浏览 8 评论 0原文

如何制作一个编辑框,以便当我按 Enter 键时光标仍在其中。然后它会转到网络浏览器中编辑框中的那个网站?

谁能帮助我吗?

How can I make an edit box so that when I hit enter with the cursor still in it. Then it goes to that website in the webbrowser which was in the edit box?

can anyone help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

祁梦 2024-10-29 19:04:27

您应该使用 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; 

You should use the OnKeyPress event instead of the OnKeyDown event:

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; 
绮烟 2024-10-29 19:04:27

在窗体上拖放一个TEdit和一个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 添加到 use 子句后, 。但现在请注意,您必须明确协议。例如,bbc.co.uk 不起作用,但 http://bbc.co.uk 可以。

Drop a TEdit and a TWebBrowser on the form, and write an event handler to the edit control, namely OnKeyDown:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_RETURN:
      WebBrowser1.Navigate(Edit1.Text);
  end;
end;

To make it slightly more elegant, I would suggest

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;

Update

If you rather would like the URL to open in the system's default browser, and not in a TWebBrowser on your form, replace WebBrowser1.Navigate(Edit1.Text) with

ShellExecute(0, nil, PChar(Edit1.Text), nil, nil, SW_SHOWNORMAL);

after you have added ShellAPI to your uses clause. But notice now that you have to be explicit with the protocol. For instance, bbc.co.uk won't work, but http://bbc.co.uk will.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文