If I use Control Set Focus on a control in a dialog box, the control gets the focus (as expected), but the caption bar of the dialog is grayed... (not expected)
Is there a way to prevent that?
Is there a way to prevent that?
'-------------------------------------------------------------------------------------------------- ' Serial Communications Example for PowerBASIC for Windows ' Copyright (c) 1999-2005 PowerBASIC, Inc. - All Rights Reserved. '-------------------------------------------------------------------------------------------------- #Compile Exe #Dim All %NOANIMATE = 1 ' Animate control %NOBUTTON = 1 ' Button %NOCOMBO = 1 ' Combo box %NOCOMBOEX = 1 ' ComboBoxEx %NODATETIMEPICK = 1 ' Date/time picker %NODRAGLIST = 1 ' Drag list control %NOEDIT = 1 ' Edit control %NOFLATSBAPIS = 1 ' Flat scroll bar %NOHEADER = 1 ' Header control %NOHOTKEY = 1 ' HotKey control %NOIMAGELIST = 1 ' Image APIs %NOIPADDRESS = 1 ' IP Address edit control %NOLIST = 1 ' List box control %NOLISTVIEW = 1 ' ListView control %NOMENUHELP = 1 ' Menu help %NOMONTHCAL = 1 ' MonthCal %NOMUI = 1 ' MUI %NONATIVEFONTCTL = 1 ' Native Font control %NOPAGESCROLLER = 1 ' Pager %NOPROGRESS = 1 ' Progress control %NOREBAR = 1 ' Rebar control %NOSTATUSBAR = 1 ' Status bar %NOTABCONTROL = 1 ' Tab control %NOTOOLBAR = 1 ' Tool bar %NOTOOLTIPS = 1 ' Tool tips %NOTRACKBAR = 1 ' Track bar %NOTRACKMOUSEEVENT = 1 ' Track Mouse Event %NOTREEVIEW = 1 ' TreeView %NOUPDOWN = 1 ' Up Down arrow control %USEMACROS = 1 #Include "Win32API.inc" $AppTitle = "PB/Win Terminal" %IDD_MAIN = 100 %IDC_LISTBOX1 = 101 %IDC_EDIT1 = 102 %IDC_SEND = 103 %IDC_SENDFILE = 104 %IDC_RECEIVEFILE = 105 %IDC_QUIT = 106 %IDC_ECHO = 107 %IDC_CLEAR = 108 %IDC_ONTOP = 109 Global nComm As Long ' file number of comm device Global nWriteFile As Long ' file number of output file Global fUpdating As Long ' flag to avoid conflicts when updating Global fCloseThread As Long ' flag to tell thread to shut down Global hDlg As Dword Global Comport As String Global Baudrate As Long '-------------------------------------------------------------------------------------------------- Sub AddLine (ByVal hWnd As Dword, ByVal nID As Long, SendText As Asciiz) Local ListCount As Long, pvParam As Long Control Send hWnd, nID, %LB_GETCOUNT, 0, 0 To ListCount If ListCount > 500 Then Control Send hWnd, nID, %LB_DELETESTRING, 0, 0 : Decr ListCount Control Send hWnd, nID, %LB_ADDSTRING, 0, VarPtr(SendText) Control Send hWnd, nID, %LB_SETCURSEL, ListCount, 0 Control Set Focus hWnd, %IDC_EDIT1 End Sub '-------------------------------------------------------------------------------------------------- Function StartComms () As Long Local dummy As String Comm Open ComPort As #nComm If ErrClear Then Exit Function 'Exit if port cannot be opened Comm Set #nComm, Baud = BaudRate 'baud rate Comm Set #nComm, Byte = 8 '8 bits Comm Set #nComm, Parity = %False 'No parity Comm Set #nComm, Stop = 0 '1 stop bit Comm Set #nComm, TxBuffer = 4096 '4k transmit buffer Comm Set #nComm, RxBuffer = 4096 '4k receive buffer Comm Print #nComm, $Nul 'Issue a CR/LF and flush the receive buffer Sleep 2000 If Comm(#nComm, RxQue) Then Comm Recv #nComm, Comm(#nComm, RxQue), dummy Function = %TRUE End Function '-------------------------------------------------------------------------------------------------- Sub EndComms () Local dummy As String Sleep 1000 'Flush the RX buffer & close the port If Comm(#nComm, RxQue) Then Comm Recv #nComm, Comm(#nComm, RxQue), dummy End If Comm Close #nComm End Sub '-------------------------------------------------------------------------------------------------- Function ReceiveData (ByVal hWnd As Long) As Long Local sBigBuffer As String, sBuffer As String, ncBytesInBuffer As Long While IsFalse fCloseThread ncBytesInBuffer = Comm(#nComm, RxQue) 'Test the RX buffer If IsFalse ncBytesInBuffer Or fUpdating Then 'Abort this iteration if sending Sleep 100 Iterate Loop End If Comm Recv #nComm, ncBytesInBuffer, sBuffer 'Read incoming characters. sBigBuffer = sBigBuffer & sBuffer If nWriteFile Then Print #nWriteFile, sBuffer; 'If Receive mode is on, write raw data to the file Replace $Lf With "" In sBigBuffer 'Strip out LF characters While InStr(sBigBuffer, $Cr) 'Process only complete lines of text terminated by carriage returns AddLine hWnd, %IDC_LISTBOX1, "--> " + Extract$(sBigBuffer, $Cr) 'Display the data sBigBuffer = StrDelete$(sBigBuffer, 1, Len(Extract$(sBigBuffer, $Cr)) + 1) 'Remove the "displayed" line from the buffer Wend Wend Function = %TRUE End Function CallBack Function Dialog_Callback () As Long Dim Result As Local Long, Rc As RECT Select Case CbMsg Case %WM_INITDIALOG Control Set Focus CbHndl, %IDC_EDIT1 'Set focus to the edit control Control Send CbHndl, %IDC_EDIT1, %EM_SETSEL, 0, -1 'Set the SELECTION range to highlight the initial entry Function = %FALSE 'Return 0 to stop the dialog box engine setting focus Case %WM_COMMAND If CbCtl = %IDC_ONTOP Then Control Send CbHndl, %IDC_ONTOP, %BM_GETCHECK, 0, 0 To Result 'Check the Echo mode state GetWindowRect CbHndl, Rc If Result = %BST_CHECKED Then SetWindowPos CbHndl, %HWND_TOPMOST, 0, 0, Rc.nRight-Rc.nLeft, Rc.nBottom-Rc.nTop, %SWP_NOMOVE Else SetWindowPos CbHndl, %HWND_NOTOPMOST, 0, 0, Rc.nRight-Rc.nLeft, Rc.nBottom-Rc.nTop, %SWP_NOMOVE End If End If End Select End Function '-------------------------------------------------------------------------------------------------- CallBack Function Send_Callback () As Long Local SendText As Asciiz * 1024, Result As Long, hListBox As Dword Control Get Text CbHndl, %IDC_EDIT1 To SendText 'Obtain the text to send from the edit control fUpdating = %TRUE 'Set the update flag Comm Print #nComm, SendText 'Send the line to the comm port Control Send CbHndl, %IDC_ECHO, %BM_GETCHECK, 0, 0 To Result 'Check the Echo mode state If Result <> %BST_CHECKED Then AddLine CbHndl, %IDC_LISTBOX1, "<-- " + SendText 'Add the echo to the listbox End If Control Send CbHndl, %IDC_EDIT1, %EM_SETSEL, 0, -1 'Set the SELECTION range for the edit control so the next keypress "clears" the control Control Set Focus CbHndl, %IDC_EDIT1 'Restore the keyboard focus to the edit control fUpdating = %FALSE 'Release the update flag Function = %TRUE End Function '-------------------------------------------------------------------------------------------------- CallBack Function Quit_Callback () As Long Dialog End CbHndl, 0 End Function '-------------------------------------------------------------------------------------------------- CallBack Function Clear_Callback () As Long ListBox Reset CbHndl, %IDC_LISTBOX1 End Function '-------------------------------------------------------------------------------------------------- Function PBMain () As Long #Register None Local Result As Long Local hThread As Long Dim Txt(1 To 1) As String If ParseCount (Command$, Any " ,") <> 2 Then ComPort = "COM1" BaudRate = 19200 '9600 Else Comport = "COM" & Trim$(Parse$(Command$, Any " ,", 1)) BaudRate = Val(Parse$(Command$, Any " ,", 2)) End If ' Initialize the port ready for the session If IsFalse StartComms Then MsgBox "Failed to start communications!",, $AppTitle Exit Function End If Dialog New 0, $AppTitle,,, 330, 203, %WS_POPUP Or %WS_VISIBLE Or %WS_CLIPCHILDREN Or %WS_CAPTION Or %WS_SYSMENU Or %WS_MINIMIZEBOX, 0 To hDlg Control Add Label, hDlg, -1, "Transmission &log for " & ComPort & ", speed " & Format$(BaudRate) & " baud", 9, 5, 150, 10, 0 Control Add ListBox, hDlg, %IDC_LISTBOX1, Txt(), 9, 15, 313, 133, %WS_BORDER Or %LBS_WANTKEYBOARDINPUT Or %LBS_DISABLENOSCROLL Or _ %WS_VSCROLL Or %WS_GROUP Or %WS_TABSTOP Or %LBS_NOINTEGRALHEIGHT Control Add Label, hDlg, -1, "Te&xt to send", 9, 151, 100, 10, 0 Control Add TextBox, hDlg, %IDC_EDIT1, "", 9, 161, 257, 12, %ES_AUTOHSCROLL Or %ES_NOHIDESEL Or %WS_BORDER Or %WS_GROUP Or %WS_TABSTOP Control Add Button, hDlg, %IDC_SEND, "Send &Text", 273, 160, 50, 14, %WS_GROUP Or %WS_TABSTOP Or %BS_DEFPUSHBUTTON Call Send_Callback Control Add Button, hDlg, %IDC_CLEAR, "&Clear log", 129, 182, 50, 14, %WS_GROUP Or %WS_TABSTOP Call Clear_Callback Control Add Button, hDlg, %IDC_QUIT, "&Quit", 273, 182, 50, 14, %WS_GROUP Or %WS_TABSTOP Call Quit_Callback Control Add CheckBox, hDlg, %IDC_ECHO, "Disable Local &Echo", 241, 5, 80, 10, %WS_GROUP Or %WS_TABSTOP Or %BS_AUTOCHECKBOX Or %BS_LEFTTEXT Or %BS_RIGHT Control Add CheckBox, hDlg, %IDC_ONTOP, "&Always on top", 161, 5, 80, 10, %WS_GROUP Or %WS_TABSTOP Or %BS_AUTOCHECKBOX Or %BS_LEFTTEXT Or %BS_RIGHT ReDim Txt() 'Erase our array to free memory no longer required Thread Create ReceiveData(hDlg) To hThread 'Create a "listen" thread to monitor input from the modem Dialog Show Modal hDlg, Call Dialog_Callback To Result 'Start the dialog box & run until DIALOG END executed. fCloseThread = %TRUE 'close down our "listen" thread Do Thread Close hThread To Result Sleep 0 Loop Until IsTrue Result EndComms 'Flush & close the comm port and close the Receive file if open If nWriteFile Then Close #nWriteFile End Function
'-------------------------------------------------------------------------------------------------- ' Serial Communications Example for PowerBASIC for Windows ' Copyright (c) 1999-2005 PowerBASIC, Inc. - All Rights Reserved. '-------------------------------------------------------------------------------------------------- #COMPILE EXE #DIM ALL %NOANIMATE = 1 ' Animate control %NOBUTTON = 1 ' Button %NOCOMBO = 1 ' Combo box %NOCOMBOEX = 1 ' ComboBoxEx %NODATETIMEPICK = 1 ' Date/time picker %NODRAGLIST = 1 ' Drag list control %NOEDIT = 1 ' Edit control %NOFLATSBAPIS = 1 ' Flat scroll bar %NOHEADER = 1 ' Header control %NOHOTKEY = 1 ' HotKey control %NOIMAGELIST = 1 ' Image APIs %NOIPADDRESS = 1 ' IP Address edit control %NOLIST = 1 ' List box control %NOLISTVIEW = 1 ' ListView control %NOMENUHELP = 1 ' Menu help %NOMONTHCAL = 1 ' MonthCal %NOMUI = 1 ' MUI %NONATIVEFONTCTL = 1 ' Native Font control %NOPAGESCROLLER = 1 ' Pager %NOPROGRESS = 1 ' Progress control %NOREBAR = 1 ' Rebar control %NOSTATUSBAR = 1 ' Status bar %NOTABCONTROL = 1 ' Tab control %NOTOOLBAR = 1 ' Tool bar %NOTOOLTIPS = 1 ' Tool tips %NOTRACKBAR = 1 ' Track bar %NOTRACKMOUSEEVENT = 1 ' Track Mouse Event %NOTREEVIEW = 1 ' TreeView %NOUPDOWN = 1 ' Up Down arrow control %USEMACROS = 1 #INCLUDE "Win32API.inc" $AppTitle = "PB/Win Terminal" %IDD_MAIN = 100 %IDC_LISTBOX1 = 101 %IDC_EDIT1 = 102 %IDC_SEND = 103 %IDC_SENDFILE = 104 %IDC_RECEIVEFILE = 105 %IDC_QUIT = 106 %IDC_ECHO = 107 %IDC_CLEAR = 108 %IDC_ONTOP = 109 GLOBAL nComm AS LONG ' file number of comm device GLOBAL nWriteFile AS LONG ' file number of output file GLOBAL fUpdating AS LONG ' flag to avoid conflicts when updating GLOBAL fCloseThread AS LONG ' flag to tell thread to shut down GLOBAL hDlg AS DWORD GLOBAL Comport AS STRING GLOBAL Baudrate AS LONG '-------------------------------------------------------------------------------------------------- SUB AddLine (BYVAL hWnd AS DWORD, BYVAL nID AS LONG, SendText AS ASCIIZ) LOCAL ListCount AS LONG, pvParam AS LONG CONTROL SEND hWnd, nID, %LB_GETCOUNT, 0, 0 TO ListCount IF ListCount > 500 THEN CONTROL SEND hWnd, nID, %LB_DELETESTRING, 0, 0 : DECR ListCount CONTROL SEND hWnd, nID, %LB_ADDSTRING, 0, VARPTR(SendText) CONTROL SEND hWnd, nID, %LB_SETCURSEL, ListCount, 0 ' CONTROL SET FOCUS hWnd, %IDC_EDIT1 '<--- Steals focus CONTROL SET FOCUS hWnd, %IDC_LISTBOX1 '<--- Does Not Steal focus ' CONTROL SET FOCUS hWnd, %IDC_SEND '<--- Does Not Steal focus ' CONTROL SET FOCUS hWnd, %IDC_CLEAR '<--- Does Not Steal focus ' CONTROL SET FOCUS hWnd, %IDC_QUIT '<--- Does Not Steal focus ' CONTROL SET FOCUS hWnd, %IDC_ECHO '<--- Does Not Steal focus ' CONTROL SET FOCUS hWnd, %IDC_ONTOP '<--- Does Not Steal focus END SUB '-------------------------------------------------------------------------------------------------- FUNCTION StartComms () AS LONG LOCAL dummy AS STRING COMM OPEN ComPort AS #nComm IF ERRCLEAR THEN EXIT FUNCTION 'Exit if port cannot be opened COMM SET #nComm, BAUD = BaudRate 'baud rate COMM SET #nComm, BYTE = 8 '8 bits COMM SET #nComm, PARITY = %False 'No parity COMM SET #nComm, STOP = 0 '1 stop bit COMM SET #nComm, TXBUFFER = 4096 '4k transmit buffer COMM SET #nComm, RXBUFFER = 4096 '4k receive buffer COMM PRINT #nComm, $NUL 'Issue a CR/LF and flush the receive buffer SLEEP 2000 IF COMM(#nComm, RXQUE) THEN COMM RECV #nComm, COMM(#nComm, RXQUE), dummy FUNCTION = %TRUE END FUNCTION '-------------------------------------------------------------------------------------------------- SUB EndComms () LOCAL dummy AS STRING SLEEP 1000 'Flush the RX buffer & close the port IF COMM(#nComm, RXQUE) THEN COMM RECV #nComm, COMM(#nComm, RXQUE), dummy END IF COMM CLOSE #nComm END SUB '-------------------------------------------------------------------------------------------------- FUNCTION ReceiveData (BYVAL hWnd AS LONG) AS LONG LOCAL sBigBuffer AS STRING, sBuffer AS STRING, ncBytesInBuffer AS LONG WHILE ISFALSE fCloseThread ncBytesInBuffer = COMM(#nComm, RXQUE) 'Test the RX buffer IF ISFALSE ncBytesInBuffer OR fUpdating THEN 'Abort this iteration if sending SLEEP 100 ITERATE LOOP END IF COMM RECV #nComm, ncBytesInBuffer, sBuffer 'Read incoming characters. sBigBuffer = sBigBuffer & sBuffer IF nWriteFile THEN PRINT #nWriteFile, sBuffer; 'If Receive mode is on, write raw data to the file REPLACE $LF WITH "" IN sBigBuffer 'Strip out LF characters WHILE INSTR(sBigBuffer, $CR) 'Process only complete lines of text terminated by carriage returns AddLine hWnd, %IDC_LISTBOX1, "--> " + EXTRACT$(sBigBuffer, $CR) 'Display the data sBigBuffer = STRDELETE$(sBigBuffer, 1, LEN(EXTRACT$(sBigBuffer, $CR)) + 1) 'Remove the "displayed" line from the buffer WEND WEND FUNCTION = %TRUE END FUNCTION CALLBACK FUNCTION Dialog_Callback () AS LONG DIM Result AS LOCAL LONG, Rc AS RECT SELECT CASE CBMSG CASE %WM_INITDIALOG CONTROL SET FOCUS CBHNDL, %IDC_EDIT1 'Set focus to the edit control CONTROL SEND CBHNDL, %IDC_EDIT1, %EM_SETSEL, 0, -1 'Set the SELECTION range to highlight the initial entry FUNCTION = %FALSE 'Return 0 to stop the dialog box engine setting focus CASE %WM_COMMAND IF CBCTL = %IDC_ONTOP THEN CONTROL SEND CBHNDL, %IDC_ONTOP, %BM_GETCHECK, 0, 0 TO Result 'Check the Echo mode state GetWindowRect CBHNDL, Rc IF Result = %BST_CHECKED THEN SetWindowPos CBHNDL, %HWND_TOPMOST, 0, 0, Rc.nRight-Rc.nLeft, Rc.nBottom-Rc.nTop, %SWP_NOMOVE ELSE SetWindowPos CBHNDL, %HWND_NOTOPMOST, 0, 0, Rc.nRight-Rc.nLeft, Rc.nBottom-Rc.nTop, %SWP_NOMOVE END IF END IF END SELECT END FUNCTION '-------------------------------------------------------------------------------------------------- CALLBACK FUNCTION Send_Callback () AS LONG LOCAL SendText AS ASCIIZ * 1024, Result AS LONG, hListBox AS DWORD CONTROL GET TEXT CBHNDL, %IDC_EDIT1 TO SendText 'Obtain the text to send from the edit control fUpdating = %TRUE 'Set the update flag COMM PRINT #nComm, SendText 'Send the line to the comm port CONTROL SEND CBHNDL, %IDC_ECHO, %BM_GETCHECK, 0, 0 TO Result 'Check the Echo mode state IF Result <> %BST_CHECKED THEN AddLine CBHNDL, %IDC_LISTBOX1, "<-- " + SendText 'Add the echo to the listbox END IF CONTROL SEND CBHNDL, %IDC_EDIT1, %EM_SETSEL, 0, -1 'Set the SELECTION range for the edit control so the next keypress "clears" the control CONTROL SET FOCUS CBHNDL, %IDC_EDIT1 'Restore the keyboard focus to the edit control fUpdating = %FALSE 'Release the update flag FUNCTION = %TRUE END FUNCTION '-------------------------------------------------------------------------------------------------- CALLBACK FUNCTION Quit_Callback () AS LONG DIALOG END CBHNDL, 0 END FUNCTION '-------------------------------------------------------------------------------------------------- CALLBACK FUNCTION Clear_Callback () AS LONG LISTBOX RESET CBHNDL, %IDC_LISTBOX1 END FUNCTION '-------------------------------------------------------------------------------------------------- FUNCTION PBMAIN () AS LONG #REGISTER NONE LOCAL Result AS LONG LOCAL hThread AS LONG DIM Txt(1 TO 1) AS STRING IF PARSECOUNT (COMMAND$, ANY " ,") <> 2 THEN ComPort = "COM1" BaudRate = 9600'19200 '9600 ELSE Comport = "COM" & TRIM$(PARSE$(COMMAND$, ANY " ,", 1)) BaudRate = VAL(PARSE$(COMMAND$, ANY " ,", 2)) END IF ' Initialize the port ready for the session IF ISFALSE StartComms THEN MSGBOX "Failed to start communications!",, $AppTitle EXIT FUNCTION END IF DIALOG NEW 0, $AppTitle,,, 330, 203, %WS_POPUP OR %WS_VISIBLE OR %WS_CLIPCHILDREN OR %WS_CAPTION OR %WS_SYSMENU OR %WS_MINIMIZEBOX, 0 TO hDlg CONTROL ADD LABEL, hDlg, -1, "Transmission &log for " & ComPort & ", speed " & FORMAT$(BaudRate) & " baud", 9, 5, 150, 10, 0 CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX1, Txt(), 9, 15, 313, 133, %WS_BORDER OR %LBS_WANTKEYBOARDINPUT OR %LBS_DISABLENOSCROLL OR _ %WS_VSCROLL OR %WS_GROUP OR %WS_TABSTOP OR %LBS_NOINTEGRALHEIGHT CONTROL ADD LABEL, hDlg, -1, "Te&xt to send", 9, 151, 100, 10, 0 CONTROL ADD TEXTBOX, hDlg, %IDC_EDIT1, "", 9, 161, 257, 12, %ES_AUTOHSCROLL OR %ES_NOHIDESEL OR %WS_BORDER OR %WS_GROUP OR %WS_TABSTOP CONTROL ADD BUTTON, hDlg, %IDC_SEND, "Send &Text", 273, 160, 50, 14, %WS_GROUP OR %WS_TABSTOP OR %BS_DEFPUSHBUTTON CALL Send_Callback CONTROL ADD BUTTON, hDlg, %IDC_CLEAR, "&Clear log", 129, 182, 50, 14, %WS_GROUP OR %WS_TABSTOP CALL Clear_Callback CONTROL ADD BUTTON, hDlg, %IDC_QUIT, "&Quit", 273, 182, 50, 14, %WS_GROUP OR %WS_TABSTOP CALL Quit_Callback CONTROL ADD CHECKBOX, hDlg, %IDC_ECHO, "Disable Local &Echo", 241, 5, 80, 10, %WS_GROUP OR %WS_TABSTOP OR %BS_AUTOCHECKBOX OR %BS_LEFTTEXT OR %BS_RIGHT CONTROL ADD CHECKBOX, hDlg, %IDC_ONTOP, "&Always on top", 161, 5, 80, 10, %WS_GROUP OR %WS_TABSTOP OR %BS_AUTOCHECKBOX OR %BS_LEFTTEXT OR %BS_RIGHT REDIM Txt() 'Erase our array to free memory no longer required THREAD CREATE ReceiveData(hDlg) TO hThread 'Create a "listen" thread to monitor input from the modem DIALOG SHOW MODAL hDlg, CALL Dialog_Callback TO Result 'Start the dialog box & run until DIALOG END executed. fCloseThread = %TRUE 'close down our "listen" thread DO THREAD CLOSE hThread TO Result SLEEP 0 LOOP UNTIL ISTRUE Result EndComms 'Flush & close the comm port and close the Receive file if open IF nWriteFile THEN CLOSE #nWriteFile END FUNCTION
Sub AddLine (ByVal hWnd As Dword, ByVal nID As Long, SendText As Asciiz) Local ListCount As Long, pvParam As Long Control Set Focus hWnd, %IDC_SEND ' initial focus to another ctl Control Send hWnd, nID, %LB_GETCOUNT, 0, 0 To ListCount If ListCount > 500 Then Control Send hWnd, nID, %LB_DELETESTRING, 0, 0 : Decr ListCount Control Send hWnd, nID, %LB_ADDSTRING, 0, VarPtr(SendText) Control Send hWnd, nID, %LB_SETCURSEL, ListCount, 0 Control Set Focus hWnd, %IDC_EDIT1 ' data in, shift focus to edit ctl End Sub
If CbCtl = %IDC_LISTBOX1 Then If CbCtlMsg = %LBN_SETFOCUS Then WinBeep 800, 50 End If End If
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Comment