function EditComplete(mEdit: TEdit; mItems: TStrings; mCase: Boolean = True): Boolean; var I, T: Integer; vSubStr, S: string; begin Result := False; if (not Assigned(mEdit)) or (not Assigned(mItems)) then Exit; vSubStr := mEdit.Text; if not mCase then vSubStr := UpperCase(vSubStr); for I := 0 to Pred(mItems.Count) do begin S := mItems[I]; if not mCase then S := UpperCase(S); if (Pos(vSubStr, S) = 1) and (vSubStr <> S) then begin T := Length(vSubStr); mEdit.Text := mItems[I]; mEdit.SelStart := T; mEdit.SelLength := Length(mItems[I]) - T; Result := True; Break; end; end; end; { EditComplete }procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_BACK, VK_DELETE, VK_LEFT, VK_RIGHT, VK_DOWN, VK_UP: ; else EditComplete(TEdit(Sender), Memo1.Lines, False); end; end;
可以用ComboBox呀 ComboBox.AutoComplete := true;
你可以改成用combobox,在combobox的oncheng中写: begin with query1 do begin close; sql.clear; sql.add('select * from tablename where fieldname like '+quotedstr (combobox.text+'%')); open; first; while not eof do begin combobox.items.clear; combobox.items.add(fieldByname('fieldname').asstring); next; end; end;end;
mCase: Boolean = True): Boolean;
var
I, T: Integer;
vSubStr, S: string;
begin
Result := False;
if (not Assigned(mEdit)) or (not Assigned(mItems)) then Exit; vSubStr := mEdit.Text;
if not mCase then vSubStr := UpperCase(vSubStr);
for I := 0 to Pred(mItems.Count) do begin
S := mItems[I];
if not mCase then S := UpperCase(S);
if (Pos(vSubStr, S) = 1) and (vSubStr <> S) then begin
T := Length(vSubStr);
mEdit.Text := mItems[I];
mEdit.SelStart := T;
mEdit.SelLength := Length(mItems[I]) - T;
Result := True;
Break;
end;
end;
end; { EditComplete }procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_BACK, VK_DELETE, VK_LEFT, VK_RIGHT, VK_DOWN, VK_UP: ;
else EditComplete(TEdit(Sender), Memo1.Lines, False);
end;
end;
ComboBox.AutoComplete := true;
begin
with query1 do
begin
close;
sql.clear;
sql.add('select * from tablename where fieldname like '+quotedstr (combobox.text+'%'));
open;
first;
while not eof do
begin
combobox.items.clear;
combobox.items.add(fieldByname('fieldname').asstring);
next;
end;
end;end;
我想问各位师兄师姐一下:
①.怎样“写一个缓冲文件”?
②.“输入一个后写入文件”是什么意思?
③.怎样“读取以前的”?
具体应该怎样实现呢?
谢谢!
糟糕,我没有可用分了....