Hallo.
Ich habe hier einen schönen Artikel zum Thema "AutoComplete" bei VCLs gelesen. Hier wird eine Variante gezeigt, die nicht einmal eine neue
VCL definiert.
http://www.codebot.org/delphi/?doc=9451
In vereinfachter Variante (
Abb. 2) wird der Eingabestring einfach erweitert.
In erweiterter Variante ist das Einsetzen einer DropDownBox möglich (
Abb. 3).
Gibt es jedoch eine Möglichkeit, beides zu kombinieren? Das kann ich aus dem Text nicht rauslesen.
Ich würde gerne die automatische Erweiterung UND die DropDownBox haben, wenn es möglich wäre. Ich persönlich fände es auf jeden Fall nützlich.
Delphi-Quellcode:
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;
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;
Gruß
blackdrake