substr(string:str,integer:beginIndex,integer:endIndex)
or
substr(string:str,integer:beginIndex)
截取从第beginIndex个字符到第endIndex个字符的函数
or
substr(string:str,integer:beginIndex)
截取从第beginIndex个字符到第endIndex个字符的函数
解决方案 »
- 如何屏蔽邮件发送出错时弹出的错误窗口?
- 请教关于tabcontroll的问题(急,急,急,在线等)
- 求救!!!关于三层结构的问题!!!
- 我在grid输入资料需要马上打印出来,预览都不需要了
- Access中有没有类似于Oracle中substr这样的函数?
- Delphi 6 Enterprise 完整的是几CD的?
- 这两个查询结果为何不一样?
- 求 delphi 连接MySQL 以及 MSSQL 成熟的 连接池
- 数据库开发中DBGrid控件的应用??(Please Help me!!!)
- 如何把字符转换成16进制啊??????????????????
- zjybestzjybest(zjybestzjybest)进来拿分!
- 如何使combox处于下拉状态?
function Copy(S; Index, Count: Integer): array;DescriptionS is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or sub array containing Count characters or elements starting at S[Index]. If Index is larger than the length of S, Copy returns an empty string or array.If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned.Note: When S is a dynamic array, Copy can only be used as a parameter in a call to a procedure or function that expects an array parameter. That is, it acts like the Slice function when working with dynamic arrays.Note: This OnKeyPress event handler does not deal with the case when the user types the Delete key. That case must be caught in the OnKeyDown event handler instead.procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);var
Found: boolean;
i,SelSt: Integer;
TmpStr: string;
begin
{ first, process the keystroke to obtain the current string }
{ This code requires all items in list to be uppercase}
if Key in ['a'..'z'] then Dec(Key,32); {Force Uppercase only!}
with (Sender as TComboBox) do
begin
SelSt := SelStart;
if (Key = Chr(vk_Back)) and (SelLength <> 0) then
TmpStr := Copy(Text,1,SelStart)+Copy(Text,SelLength+SelStart+1,255) else if Key = Chr(vk_Back) then {SelLength = 0}
TmpStr := Copy(Text,1,SelStart-1)+Copy(Text,SelStart+1,255)
else {Key in ['A'..'Z', etc]}
TmpStr := Copy(Text,1,SelStart)+Key+Copy(Text,SelLength+SelStart+1,255);
if TmpStr = '' then Exit;
{ update SelSt to the current insertion point } if (Key = Chr(vk_Back)) and (SelSt > 0) then Dec(SelSt) else if Key <> Chr(vk_Back) then Inc(SelSt);
Key := #0; { indicate that key was handled }
if SelSt = 0 then
begin
Text:= '';
Exit;
end; {Now that TmpStr is the currently typed string, see if we can locate a match } Found := False;
for i := 1 to Items.Count do
if Copy(Items[i-1],1,Length(TmpStr)) = TmpStr then
begin
Text := Items[i-1]; { update to the match that was found }
ItemIndex := i-1;
Found := True;
Break;
end;
if Found then { select the untyped end of the string }
begin
SelStart := SelSt;
SelLength := Length(Text)-SelSt; end
else Beep;
end;
end;