就是在文本输入一个字 可以排列出XXX表中 name列里 所有名字首字是那个输的字的名字 哪位高手可以帮帮忙 最好 江的清楚点 用什么控件 属性要怎么改 都最好说下
当然代码 最好也写得清楚点 讲高深了听不懂 谢谢

解决方案 »

  1.   

    自己组合一个吧,要不就控制一个combox或者listbox在文本框附近弹出,再不行,你就找dev的组件,里面有可以设置弹出组件的控件
      

  2.   

    就是界面中有个listview或其它控件开始是隐藏的,当用户输入了一个字符时再从数据里或内存中查找与之匹配的内容。从文件中匹配的话可以用正则表达式。然后让这个隐藏的控件显示出来就可以了。
      

  3.   

    给你源码unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Memo1: TMemo;
        Edit2: TEdit;
        Memo2: TMemo;
        Label1: TLabel;
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses   uAutoComplete;{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    begin
        //引用自动完成功能用以下过程
        //第二个参数是TStrings类型,用户可以自行取数,只要最终转化为TStrings类型即可
        SetAutoCompleteControl(Edit1, Memo1.Lines);
        SetAutoCompleteControl(Edit2, Memo2.Lines);
    end;end.
    unit uAutoComplete;interfaceuses
      Windows, SysUtils, Controls, Classes, ActiveX, ComObj, ShlObj;const
      IID_IAutoComplete: TGUID = '{00bb2762-6a77-11d0-a535-00c04fd7d062}';
      IID_IAutoComplete2: TGUID = '{EAC04BC0-3791-11d2-BB95-0060977B464C}';
      CLSID_IAutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}';  {Options for IAutoComplete2}
      ACO_NONE = 0;
      ACO_AUTOSUGGEST = $1;
      ACO_AUTOAPPEND = $2;
      ACO_SEARCH = $4;
      ACO_FILTERPREFIXES = $8;
      ACO_USETAB = $10;
      ACO_UPDOWNKEYDROPSLIST = $20;
      ACO_RTLREADING = $40;  SHACF_DEFAULT             = $00000000;
      SHACF_FILESYSTEM          = $00000001;
      SHACF_URLHISTORY          = $00000002;
      SHACF_URLMRU              = $00000004;
      SHACF_URLALL              = SHACF_URLHISTORY or SHACF_URLMRU;
      SHACF_USETAB              = $00000008;
      SHACF_FILESYS_ONLY        = $00000010;
      SHACF_AUTOSUGGEST_FORCE_ON= $10000000;
      SHACF_AUTOSUGGEST_FORCE_OFF = $20000000;
      SHACF_AUTOAPPEND_FORCE_ON = $40000000;
      SHACF_AUTOAPPEND_FORCE_OFF= $80000000;
      type  IAutoComplete = interface(IUnknown)
        ['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
        function Init(hwndEdit: HWND; const punkACL: IUnknown; pwszRegKeyPath,
          pwszQuickComplete: POLESTR): HResult; stdcall;
        function Enable(fEnable: BOOL): HResult; stdcall;
      end;  IAutoComplete2 = interface(IAutoComplete)
        ['{EAC04BC0-3791-11d2-BB95-0060977B464C}']
        function SetOptions(dwFlag: DWORD): HResult; stdcall;
        function GetOptions(out pdwFlag: DWORD): HResult; stdcall;
      end;  TEnumString = class(TInterfacedObject, IEnumString)
      private
        FStrings : TStrings;
        FIndex   : Integer;
      protected
        function Next(celt: Longint; out elt;
          pceltFetched: PLongint): HResult; stdcall;
        function Skip(celt: Longint): HResult; stdcall;
        function Reset: HResult; stdcall;
        function Clone(out enm: IEnumString): HResult; stdcall;
      public
        constructor Create(Strings: TStrings);
      end;procedure SetAutoCompleteControl(
        const AControl  : TWinControl;
        const AList     : TStrings
        );overload;
    procedure SetAutoCompleteControl(
        const AControlHandle  : HWND;
        const AList     : TStrings
        );overload;function SHAutoComplete(hWnd: HWND; dwFlags: DWORD): LRESULT; stdcall;implementationfunction SHAutoComplete; external 'shlwapi.dll' name 'SHAutoComplete';procedure SetAutoCompleteControl(
        const AControl  : TWinControl;
        const AList     : TStrings
        );overload;
    var
      FAutoComplete : IAutoComplete2;
      FStrings : TEnumString;
    begin
      FAutoComplete :=
         CreateComObject(CLSID_IAutoComplete)as IAutoComplete2;  FStrings :=  TEnumString.Create(AList);  OleCheck(FAutoComplete.SetOptions(ACO_AUTOSUGGEST
        or ACO_AUTOAPPEND or ACO_UPDOWNKEYDROPSLIST or ACO_USETAB));
      OleCheck(FAutoComplete.Init(AControl.Handle, FStrings, nil, nil));
    end;procedure SetAutoCompleteControl(
        const AControlHandle  : HWND;
        const AList     : TStrings
        );overload;
    var
      FAutoComplete : IAutoComplete2;
      FStrings : TEnumString;
    begin
      FAutoComplete :=
         CreateComObject(CLSID_IAutoComplete)as IAutoComplete2;  FStrings :=  TEnumString.Create(AList);  OleCheck(FAutoComplete.SetOptions(ACO_AUTOSUGGEST
        or ACO_AUTOAPPEND or ACO_UPDOWNKEYDROPSLIST or ACO_USETAB));
      OleCheck(FAutoComplete.Init(AControlHandle, FStrings, nil, nil));
    end;
    { IUnknownInt }function TEnumString.Clone(out enm: IEnumString): HResult;
    begin
      Result := E_NOTIMPL;
      pointer(enm) := nil;
    end;constructor TEnumString.Create(Strings: TStrings);
    begin
      inherited Create;
      FStrings := Strings;
    end;function TEnumString.Next(celt: Integer; out elt; pceltFetched: PLongint): HResult;
    var
      I: Integer;
      wStr: WideString;
    begin
      I := 0;
      while (I < celt) and (FIndex < FStrings.Count) do
      begin 
        wStr := FStrings[FIndex];
        TPointerList(elt)[I] := CoTaskMemAlloc(2 * (Length(wStr) + 1)); 
        StringToWideChar(wStr, TPointerList(elt)[I], 2 * (Length(wStr) + 1)); 
        Inc(I); 
        Inc(FIndex);
      end; 
      if pceltFetched <> nil then 
        pceltFetched^ := I; 
      if I = celt then 
        Result := S_OK 
      else 
        Result := S_FALSE; 
    end; function TEnumString.Reset: HResult; 
    begin 
      FIndex := 0;
      Result := S_OK; 
    end; function TEnumString.Skip(celt: Integer): HResult; 
    begin 
      if (FIndex + celt) <= FStrings.Count then
      begin 
        Inc(FIndex, celt);
        Result := S_OK;
      end 
      else 
      begin 
        FIndex := FStrings.Count;
        Result := S_FALSE; 
      end; 
    end; initialization
      Oleinitialize(nil);finalization
      OleUninitialize;end.
      

  4.   

    把所有可能的项存入数据库,然后使用Sql的like语句按文本框的内容执行模糊查询
      

  5.   

    tiankun66,你这样写又是何必,直接用ComboboxEx控件(自带的)就可以实现这个功能了,何必再自己写浪费精力?用ComboboxEx控件不用写一句代码,只用改下控件属性就可以达到你的效果。
      

  6.   

    直接用ComboboxEx控件(自带的)就可以实现这个功能了,何必再自己写浪费精力?用ComboboxEx控件不用写一句代码,只用改下控件属性就可以达到你的效果。