- Recuperar las variables
- Control Campo de entrada
- Control Estático
- Casilla de verificación
- Botón de opción
- Botón de texto
- Botón gráfico
- Gráfico Image y área de clicks
- barra de desplazamiento
- Lista desplegable o lista ampliada
Pantalla,get (Lenguaje externo) Recupera el valor en un control o en un Variable. Los caracteres espaciales que se encuentran al final de WdString son borrados por Default. Sintaxis
Screen,Get([<Name of the window>, ] <Name> [, <Index 1> [, <Index 2>]])
<Name of the window>: Cadena de caracteres (opcional) Se utiliza para mostrar el contenido de una control o Variable en la ventana que no es la ventana actual (por ejemplo, para el NOMBRE control que se encuentra en la ventana CU_FIL, debe especificar CU_FIL.NAME). <Name>: Cadena de caracteres Nombre del control o nombre de la Variable. <Index 1>: Cadena de caracteres (opcional) Subíndice para un control con subíndice o para una Variable con subíndice . <Index 2>: Cadena de caracteres (opcional) Subíndice para una Variable bidimensional con subíndice . Observaciones El WINDEV Variable que contiene el valor del Variable difiere según el tipo de Variable a recuperar: - Si la Variable es un número entero, WdInt (para un número entero simple) o WdLong (para un número entero largo) contiene el valor entero de la Variable.
- Si el Variable es un real, WdReal (para el real simple) o WdRealD (para el real doble) contiene el valor real del Variable.
- Si el Variable es una cadena o una moneda, WdSting contiene el valor del Variable.
Para un texto Variable de más de 200 caracteres, el contenido del control se puede ver según dos métodos: - WdString contiene los primeros 200 caracteres.
- el puntero WDpLongText apunta a la zona de memoria para la recuperación de texto; WdInt indica la longitud de la cadena (sólo en C y en Pascal).
Para un texto largo, basta con comprobar si el valor del puntero es distinto de "Null"; en este caso, el puntero contiene la cadena que hay que recuperar. En VB, no se puede recuperar ningún texto largo directamente. En los otros idiomas (Cobol, Fortran), WDpLongText será un texto Variable que puede contener 4000 caracteres. Atención: No se debe realizar ninguna operación (reasignación, ...) en este puntero. Importante: En C, para utilizar WDpLongText, el programa debe compilarse con la opción "unsigned characters". Ejemplo en C: // Retrieves the content of the Price variable CALLWD("Screen,Get,PRICE"); Amount=WDReal*Quantity; // Retrieves the content of the subscripted variable PRODCAP[1] CALLWD("Screen,Get,PRODCAP,1"); strcpy(Caption,WDString); // Retrieves the content of the Name variable CALLWD("Screen,Get,NAME"); strcpy(Name,WDString); Ejemplo en Pascal: * Retrieves the content of the Price variable*) CALLWD('Screen,Get,PRICE'); Amount=WDReal*Quantity; (*Retrieves the content of the indexed variable PRODCAP[1]*) CALLWD('Screen,Get,PRODCAP,1'); Caption:=WDString; (* Retrieves the content of the Name variable*) CALLWD('Screen,Get,NAME'); Name:=WDString; Ejemplo en VB: ' Retrieves the content of the Price variable call CALLWD("Screen,Get,PRICE") Amount=WDReal*Quantity ' Retrieves the content of the indexed variable PRODCAP[1] call CALLWD("Screen,Get,PRODCAP,1") Caption=WDString ' Retrieves the content of the Name variable call CALLWD("Screen,Get,NAME") El WINDEV Variable que contiene el valor de control difiere según el tipo de control a recuperar: - Si el control es un entero, WdInt (para enteros simples) o WdLong (para enteros largos) contiene el valor entero del control.
- Si el control es un real, WdReal (para el real simple) o WdRealD (para el real doble) contiene el valor real del control (una de las variables según la máscara de entrada definida).
- Si el control es una cadena de texto/fecha/hora, WdString contiene el valor de texto del control.
Para un texto control, el contenido del control se puede ver según dos métodos: - por WdString si el control contiene hasta 200 caracteres
- a través del puntero WDpLongText que apunta hacia el área de memoria para la recuperación del texto y WdInt que indica la longitud de la cadena (en C y en Pascal solamente). Si el valor del puntero es distinto de "Null", el puntero contiene la cadena a recuperar.
En VB, no se puede recuperar ningún texto largo directamente. En los otros idiomas (Cobol, Fortran), WDpLongText será un texto Variable que puede contener 4000 caracteres. Atención: No se debe realizar ninguna operación (reasignación, ...) en este puntero. En C, para utilizar WDpLongText, el programa debe compilarse con la opción "unsigned characters" (caracteres sin signo).
Ejemplo en C: CALLWD("Screen,Get,PRICE"); // Retrieves the price Amount=WDReal*Quantity; CALLWD("Screen,Get,PRODCAP,1"); // Retrieves the indexed control 1 strcpy(Caption,WDString); CALLWD("Screen,Get,NAME"); // Retrieves the name strcpy(Name,WDString); Método utilizado para recuperar un texto largo:
// pszControlName: Name of the control to retrieve // pszValue: Character string containing the result // nLng Maximum length of the result string without // counting the binary zero //in output: pszValue Contains the result
void GetLong(char far *pszControlName,char far *pszValue,int nLng) { char far *pszSource; CALLWD("SCREEN,GET%Fs",pszControlName); if (WDpLongText!=NULL) pszSource=WDpLongText; else pszSource=WDString; // pszSource may exceed nLng _fstrncpy(pszValue,pszSource,nLng); // strncpy does not include the binary zero if // the length of the source string is strictly equal to nLng characters pszValue[nLng]=0; } Ejemplo en Pascal: CALLWD('Screen,Get,PRICE'); (*Retrieves the price*) Amount=WDReal*Quantity; CALLWD('Screen,Get,PRODCAP,1'); (*Retrieves the indexed static 1*) Caption:=WDString; CALLWD('Screen,Get,NAME'); (*Retrieves the NAME*) Name:=WDString; CALLWD('Screen,Get,LONGTEXT); (*Retrieves the LONGTEXT control*) move(lgtxt,wdplongtext,WdInt); Ejemplo en VB: call CALLWD("Screen,Get,PRICE") 'Retrieves the price Amount=WDReal*Quantity; call CALLWD("Screen,Get,PRODCAP,1") 'Retrieves the Static control Caption=WDString call CALLWD("Screen,Get,NAME") 'Retrieves the name Name=WdString WdString contiene la estática mostrada. Ejemplo en C:
CALLWD("Screen,Get,STC"); strcpy(Caption,WDString); Ejemplo en Pascal: CALLWD('Screen,Get,STC'); Caption:=WDString; Ejemplo en VB: call CALLWD("Screen,Get,STC") Caption=WDString Si la casilla de verificación está marcada para la índice dada , WdString contiene "O" y WdInt es igual a 1. Si la casilla de verificación no está marcada para la índice dada , WdString contiene "N" y WdInt es igual a 0. Ejemplo en C: CALLWD("Screen,Get,CHECKBOX"); if (WDInt==1)... Ejemplo en Pascal: CALLWD('Screen,Get,CHECKBOX'); if (WDInt=1)... Ejemplo en VB: call CALLWD("Screen,Get,CHECKBOX") if WDInt=1... WdInt contiene el rango de la opción actual Ejemplo en C: CALLWD("Screen,Get,RADIOBBUTTON"); if (WDInt==2)... Ejemplo en Pascal: CALLWD('Screen,Get,RADIOBUTTON'); if (WDInt=2)... Ejemplo en VB: call CALLWD("Screen,Get,RADIOBUTTON") if (WDInt=2)... WdString contiene la leyenda del botón. Ejemplo en C: CALLWD("Screen,Get,Image1"); strcpy(Caption,WDString); Ejemplo en Pascal: CALLWD('Screen,Get,Image2'); Caption:=WDString; Ejemplo en VB: call CALLWD("Screen,Get,Image3") Caption=WDString WdString contiene el nombre del archivo Image que se muestra en el botón. Ejemplo en C: CALLWD("Screen,Get,Image1"); strcpy(ImageFile,WDString); Ejemplo en Pascal: CALLWD('Screen,Get,Image2'); ImageFile:=WdString; Ejemplo en VB: call CALLWD("Screen,Get,Image3") ImageFile=WdString Gráfico Image y área de clicks puede ser el nombre del fichero Image a visualizar: Ejemplo en C: CALLWD("Screen,Get,Image1"); strcpy(ImageFile,WDString); Ejemplo en Pascal: CALLWD('Screen,Get,Image2'); ImageFile:=WdString; Ejemplo en VB: call CALLWD("Screen,Get,Image3") ImageFile=WdString WdInt contiene la posición de la barra de desplazamiento: Ejemplo en C: CALLWD("Screen,Get,SCROLLBAR"); Ejemplo en Pascal: CALLWD('Screen,Get,SCROLLBAR'); Ejemplo en VB: call CALLWD("Screen,Coordinate,SCROLLBAR") Lista desplegable o lista ampliada Si se especifica índice, el valor de texto del elemento se devuelve en WdString. Si no se especifica índice, WdInt contiene el índice del elemento seleccionado (sin significado para los combo boxes editables) y WdString contiene el valor del elemento seleccionado. En los cuadros de lista de selección múltiple, sólo se recuperará el primer elemento seleccionado. Ejemplo en C: CALLWD("Screen,Get,LIST1,2"); strcpy(elem,WDString) Ejemplo en Pascal: CALLWD('Screen,Get,LIST1,2'); Elem:=WdString; Ejemplo en VB: call CALLWD("Screen,Get,LIST1,2") Elem=WdString
|
|
|