VCL.TComboBox
에는 컨트롤의 편집 부분에 자동 완성 기능을 제공하는 AutoComplete
속성이 있습니다.FireMonkey의 TComboEdit에 대한 자동 완성 기능
FMX.TComboEdit
은이 기능을 제공합니까?
VCL.TComboBox
에는 컨트롤의 편집 부분에 자동 완성 기능을 제공하는 AutoComplete
속성이 있습니다.FireMonkey의 TComboEdit에 대한 자동 완성 기능
FMX.TComboEdit
은이 기능을 제공합니까?
exsist는 아니지만 직접 작성할 수 있습니다.
이
은 콤보에 대한 예입니다하지만 당신은 내가 대답이 '아니오'생각하지만, 바퀴를 개혁하기 전에, 나는이 그냥 이름이 변경되지해야 할 comboedit에게{Combobox default behavior}
TCombobox = class(FMX.ListBox.TComboBox)
private
LastTimeKeydown:TDatetime;
Keys:string;
protected
procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState);override;
end;
{ TCombobox }
procedure TCombobox.KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState);
var
aStr:string;
I: Integer;
begin
if key=vkReturn then exit;
if (keychar in [chr(48)..chr(57)]) or (keychar in [chr(65)..chr(90)]) or (keychar in [chr(97)..chr(122)]) then begin
//combination of keys? (500) is personal reference
if MilliSecondsBetween(LastTimeKeydown,Now)<500 then
keys:=keys+keychar
else // start new combination
keys:=keychar;
//last time key was pressed
LastTimeKeydown:=Now;
//lookup item
for I := 0 to count-1 do
if uppercase(copy(items[i],0,keys.length))=uppercase(keys) then begin
itemindex:=i;
exit; //first item found is good
end;
end;
inherited;
end;
on loop'I : = 0 to count-1 do 대문자 (copy (items [i], 0, keys.length)) = 대문자 (keys)이면 do 시작 itemindex : = i; 휴식; // 찾은 첫 번째 항목이 좋음 끝;'exit'을'break'로 바꿉니다. 'Exit'는 루프를 깨는 좋은 방법이 아닙니다. –
에 맞게 코드를 변경할 수 있습니다 또는 그런 것. –