main.pas

来自「delphi 下实现自动完成的一个小例子」· PAS 代码 · 共 40 行

PAS
40
字号
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ShlIntf, ActiveX, ComObj, StdCtrls, StrTools;

type
  TAutoCompleteForm = class(TForm)
    CompletionEdit: TEdit;
    CompletionLabel: TLabel;
    SourceGroupBox: TGroupBox;
    SourceMemo: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    FAutoComplete: IAutoComplete2;
    FStrings: IUnknown;
  end;

var
  AutoCompleteForm: TAutoCompleteForm;

implementation

{$R *.DFM}

{ TAutoCompleteForm }

procedure TAutoCompleteForm.FormCreate(Sender: TObject);
begin
  FAutoComplete  := CreateComObject(CLSID_AutoComplete) as IAutoComplete2;
  FStrings := TEnumString.Create(SourceMemo.Lines) as IUnknown;
  OleCheck(FAutoComplete.SetOptions(ACO_AUTOSUGGEST or ACO_UPDOWNKEYDROPSLIST));
  OleCheck(FAutoComplete.Init(CompletionEdit.Handle, FStrings, nil, nil));
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?