{
Start edit tag via &VkbdSrv.
Set Language=0/1=Rus/Eng, Shift state Bit0=0/1=Rus/Eng,Bit1=0/1=Lo/Up.
Set Label text, default is Edit tag ...
}
function VkbdEditTag(tag,Lang,Shift:Integer; Lab:String):Integer;
begin
 if Length(Lab)=0
 then if iAnd(Lang,1)=1
 then Lab:='Edit tag '+NameTag(tag)
 else Lab:='Ввести тег '+NameTag(tag);
 if TypeTag(tag)=1 then begin
  VkbdEditTag:=VKbdSend('@Home'+CRLF+'@State='+Str(Shift)
   +CRLF+'@CharSet='+Url_Packed('0123456789-+*/%$()')
   +CRLF+'@Language='+Str(Lang)
   +CRLF+'@Label='+Lab
   +CRLF+'@Text='+TagAsText(tag)
   +CRLF+'@Prev='+TagAsText(tag)
   +CRLF+'@DevMsg='+DevName+' @Vkbd.EditTag '+NameTag(tag)+'=%Text%'
   +CRLF+'@WinShow'+CRLF+'@WinSelect'+CRLF);  
 end else
 if TypeTag(tag)=2 then begin 
  VkbdEditTag:=VKbdSend('@Home'+CRLF+'@State='+Str(Shift)
   +CRLF+'@CharSet='+Url_Packed('0123456789.eE-+*/%$()')
   +CRLF+'@Language='+Str(Lang)
   +CRLF+'@Label='+Lab
   +CRLF+'@Text='+TagAsText(tag)
   +CRLF+'@Prev='+TagAsText(tag)
   +CRLF+'@DevMsg='+DevName+' @Vkbd.EditTag '+NameTag(tag)+'=%Text%'
   +CRLF+'@WinShow'+CRLF+'@WinSelect'+CRLF);  
 end else
 if TypeTag(tag)=3 then begin
  VkbdEditTag:=VKbdSend('@Home'+CRLF+'@State='+Str(Shift)
   +CRLF+'@CharSet='+Url_Packed('')
   +CRLF+'@Language='+Str(Lang)
   +CRLF+'@Label='+Lab
   +CRLF+'@Text='+TagAsText(tag)
   +CRLF+'@Prev='+TagAsText(tag)
   +CRLF+'@DevMsg='+DevName+' @Vkbd.EditTag '+NameTag(tag)+'=%Text%'
   +CRLF+'@WinShow'+CRLF+'@WinSelect'+CRLF);  
 end else VkbdEditTag:=0;
end;
