Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: xinyiman - Marzo 18, 2020, 04:06:09 pm

Titolo: Problema nella conversione dei VK
Inserito da: xinyiman - Marzo 18, 2020, 04:06:09 pm
Ciao ragazzi, ho un problema. Devo trasferire da un pc ad un altro il comportamento del mouse e della tastiera.

Ho implementato due funzioni, una che mi trasforma il tasto premuto in una stringa VK_?
E la seconda funzione che trasforma la stringa VK_? nel reale valore di VK_?

La prima funzione viaggia bene, è poi solo da completare, ma la seconda non funziona affatto. Cosa sbaglio?

Nell'esempio in basso ci sono 3 editbox. Premete un tasto nella editbox più a sinistra, dovreste vedere la seconda che si popola con il valore 'VK_?' mentre la terza dovrebbe contenere anche essa il tasto premuto, ma non è così, il problema è nella funzione VKString2Char.


Ho già provato ad usare la funzione Char2VK ma non funziona per tutti i pulsanti. Altrimenti avrei già risolto.
Titolo: Re:Problema nella conversione dei VK
Inserito da: nomorelogic - Marzo 18, 2020, 04:32:33 pm
ho fatto una prova e a me funziona
la prova che ho fatto è semplice, ho usato le funzioni in sequenza e va tutto bene

probabilmente il problema è tra il focus/timer dei controlli sulla form

Codice: [Seleziona]
procedure TForm1.Txt_KeyPressKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s: string;
    ret : word;
begin

     s := Char2VKString(Chr(Key));
     ret := VKString2Char(s);
     ShowMessage(s);

     {
     Self.Txt_VK_Str.Text := Char2VKString(Chr(Key));
     Self.Txt_VK.Clear;
     Application.ProcessMessages;
     Sleep(100);

     Self.Timer1.Interval := 100;
     }
end;     
Titolo: Re:Problema nella conversione dei VK
Inserito da: nomorelogic - Marzo 18, 2020, 05:01:22 pm
nel forum principale hanno trovato l'errore nel codice

https://forum.lazarus.freepascal.org/index.php/topic,48937.msg353406/topicseen.html#new (https://forum.lazarus.freepascal.org/index.php/topic,48937.msg353406/topicseen.html#new)