📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
ComboBox1: TComboBox;
ListBox1: TListBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ListBox1KeyPress(Sender: TObject; var Key: Char);
private
FSearchStr: string;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FSearchStr := '';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
Listbox1.Items.Clear; //可删除,防止重复按下 [Button1]
ComboBox1.Items.Clear; //可删除,防止重复按下 [Button1]
for i:=ord('a') to ord('z') do
begin
Listbox1.Items.Add(chr(i-1)+chr(i)+chr(i+1));
ComboBox1.Items.Add(chr(i-1)+chr(i)+chr(i+1));
end;
end;
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
begin
Case Key of
#27: Begin
// Escape key, clear search string
FSearchStr := EmptyStr;
End; { Case Esc }
#8 : Begin
// backspace, erase last key from search string
If Length(FSearchStr) > 0 Then
Delete( FSearchStr, Length( FSearchStr), 1 );
End; { Case backspace }
Else
FSearchStr:= FSearchStr + Key;
End; { Case }
If Length(FSearchStr) > 0 then
if Sender is TListbox then Begin
i:= SendMessage( TListbox(Sender).handle, LB_FINDSTRING,
TListbox(Sender).ItemIndex-1, longint(@FSearchStr[1]));
If i <> LB_ERR Then
TListbox(Sender).ItemIndex := i;
end
else
if Sender is TCombobox then begin
i:= SendMessage( TCombobox(Sender).handle, CB_FINDSTRING,
TCombobox(Sender).ItemIndex-1, longint(@FSearchStr[1]));
If i <> LB_ERR Then
TCombobox(Sender).ItemIndex := i;
end;
Key := #0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -