Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Chiudere il 4D server interagendo con le dialog

Categoria: Codice Ultimo Aggiornamento: 14/03/05


Nota UM: Dalla 6.8 è disponibile il comando Quit che rende obosleta questa Faq, ma il metodo utilizzato (Post Key) è interessante e utilizzabile in qualche altro caso.

Ecco un metodo che permette di eseguire l'uscita da un 4D Server direttamente da 4D Client, senza dover quindi accere alla macchina dove il Server è installato: l'unico parametro utilizzato è il tempo di attesa che si vuole date al Server prima di chiudersi.

C_INTEGER($1)
    `
C_STRING(11;$attesa_stringa) ` tempo di attesa come stringa
C_INTEGER($I_Attesa;$I_ProcessNum;$i)
C_BOOLEAN($B_WaitingUserDisconn) ` True = wait attende l’uscita
    `
    `
Case of
      ` su 4D Client, lanciamo lo stesso metodo, ma come Stored procedure
  : (Application type=4D Client )
  $I_Attesa:=-2 ` -2 means "Default 4D Server's value" (see below)
  If (Count parameters#0)
    $I_Attesa:=$1
  End if
  $I_ProcessNum:=Execute on server(Current method name;32*1024;Current method name;$I_Attesa)
      `
      ` su Server generiamo un Command o Ctrl - Q
  : (Application type=4D Server )
  $B_WaitingUserDisconn:=False
  $attesa_stringa:=""
  Case of
    : (Count parameters=0) ` possibile se chiamato altrove
    : ($1<0) ` se negativo usa l’opzione di default
    $B_WaitingUserDisconn:=($1=-1) ` cioè attendo l’uscita
  Else
    $attesa_stringa:=String($1) ` per fare in modo che la cifra venga scritta con POST KEY
  End case
      `
      ` Mando l’evento al processo numero 1.
  POST KEY(Ascii("q");Command key mask ;1)
      ` attendo che compaia la finestra
  DELAY PROCESS(Current process;60)
      ` scrivo il numero per l’attesa
      ` e se la stringa è vuota non entra
  For ($i;1;Length($attesa_stringa))
    POST KEY(Ascii($attesa_stringa[[$i]]);0;1)
    DELAY PROCESS(Current process;10)
  End for
      ` passiamo dopo
  POST KEY(9;0;1)
  DELAY PROCESS(Current process;10)
      ` se richiesto, spuntiamo WaiUser
  If ($B_WaitingUserDisconn)
    POST KEY(US ASCII code ;0;1)
    DELAY PROCESS(Current process;10)
  End if
      ` Conferma ed esce
  POST KEY(13;0;1)
End case


Inviato da: PierPaolo Sichera Visite: 12325

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
301 utenti registrati

Pagina servita il 19/03/24 alle 03:09:56 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad