Page 1 of 1

Jak aktivovat vstupní pole pro vložení ze schránky

PostPosted: Thu 10. Feb 2022 8:15:09
by batezip
Dobrý den,

Mám čtečku čárových kódů bez průmyslové komunikace a potřeboval bych načítat kód tím, že budu neustále aktivovat vstupní okno PmgString a čtečka mi, po načtení kódu, vloží kód do tohoto okna i s enterem.

Dotaz tedy zní, lze nějak vstupní okno PmgString aktivovat pro vložení nebo zápis dat příkazem například při události onRefresh?

Předem děkuji.
Martin

Re: Jak aktivovat vstupní pole pro vložení ze schránky

PostPosted: Thu 10. Feb 2022 11:18:15
by Pavel Klimíček
Dobrý den.
Lepší bude toto řešení:
Vytvořte si v aplikaci objekt PmaData a v něm založte proměnnou nazvanou "code" datového typu "string".
V obraze, ve Vašem objektu PmString, na kartě "Text" a v konfigurátoru "Hodnota" se vazbou PP napojte na proměnnou "code" v aplikaci.
Pak už jen stačí, když čtečka kódu bude přečtenou hodnotu zapisovat do proměnné "code".
Pomocí skriptu by to bylo takto:
Code: Select all
pMe.Pm("../Data/#vars/code").Value = hodnota ze čtečky


Nevím ale, jak bude aplikace komunikovat se čtecím zařízením.
Takže to může být také pomocí datového rozšíření v proměnné "code".

Re: Jak aktivovat vstupní pole pro vložení ze schránky

PostPosted: Thu 10. Feb 2022 14:13:51
by batezip
Právě ta čtečka nemá komunikaci, co bych mohl použít.
Ta čtečka běží na android systému a má vlastní displej. Počítám, že na ní budu spouštět webovou aplikaci promotic, který poběží někde na serveru a čtečka pokud načte kód, tak zafunguje jako klávesnice CTRL+V a do aktivního políčka v prohlížeči vloží načtený kód. A právě potřebuji nějak trvale skákat s ukazatelem do toho políčka.

Martin

Re: Jak aktivovat vstupní pole pro vložení ze schránky

PostPosted: Fri 11. Feb 2022 17:23:51
by Kazimierz Heczko
Dobrý den,
v tomto Vašem případě asi bude lepší použít jiný grafický objekt, konkrétně jde o PmgWEdit. Důvod je ten, že pokud se tomuto objektu nastaví fokus tak hned přejde do editačního režimu, kdežto objekt PmgString do editačního řežimu musí přepnout operátor buď klávesou Enter nebo mezerníkem i po získání fokusu.
Fokus se dá nastavit ve skriptu takto:
Code: Select all
pMe.Items("/edit0").Focus = true;

A ještě jedna věc. Tento skript nevolejte v události onPanelStartEnd příslušného panelu, ale např. v události onRefresh daného panelu (pokud by jste to chtěl provádět cyklicky) nebo třeba pomocí vlastní funkce, kterou z události onPanelStartEnd zavoláte pomocí metody AddEventTimer (při jednorázovém provedení). Výsledný skript by mohl vypadat takto:
Code: Select all
pMe.Root.AddEventTimer(1, 1, pMe.GetPathName(), onTick);
function onTick()
{
   pMe.Items("/edit0").Focus = true;
}

Bohužel, když zkusíte fokus nastavit přímo v události onPanelStartEnd tak vybaný editbox bohužel nepřejde do editačního režimu.
K. Heczko

Re: Jak aktivovat vstupní pole pro vložení ze schránky

PostPosted: Sat 12. Feb 2022 14:52:48
by batezip
Perfektní, to je ono.

Děkuji ;)