Эта ДЕМО конфигурация показывает как использовать виртуальную клавиатуру - &VkbdSrv для редактирования тегов в системах, где вместо клавиатуры и мыши используются сенсорные экраны.
Если очень кратко, это работает так. При клике на сенсор тега клиент вызывает VKbdEditTag
// Если нажат сенсор - начать редактирование тега...
if ClickButton=1 then
if ClickTag=tagDemo then
if VKbdEditTag(ClickTag,0,3,'Please edit tag DEMO')>0 then {Ok} else {Error};
По окончании редактирования клиент получает сообщение @Vkbd.EditTag Имя_Тега=Значение.
В обработчике консольных команд клиент по этому сообщению присваивает тегу новое значение или игнорирует его, если оно недопустимо.
Например:
{
Analyse data coming from standard input.
}
procedure StdIn_Process(Data:string);
var cmd,arg:String; b:Boolean; tag:Integer;
begin
cmd:=''; arg:='';
if Length(Data)>0 then
if Data[1]='@' then begin
cmd:=ExtractWord(1,Data);
arg:=Copy(Data,Pos(cmd,Data)+Length(cmd)+1);
...
if IsSameText(cmd,'@Vkbd.EditTag') then begin
tag:=FindTag(ExtractWord(1,arg));
if TypeTag(tag)>0 then begin
if tag=tagDemo then UpdateTag(tag,SkipWords(1,arg),_MinusInf,_PlusInf);
Success(cmd+' '+NameTag(tag)+'='+TagAsText(tag));
end;
Data:='';
end;
...
end;
cmd:=''; arg:='';
end;
Функции SkipWords,UpdateTag,TagAsText есть в шаблонах редактирования.