AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Desarrollar una aplicación o un sitio web / Controles, ventanas y páginas / Controles: tipos disponibles / Control Contenedor nativo
  • Presentación
  • Ejemplos didácticos
  • Presentación
  • Creación de un botón
  • Creación de un botón
  • Manejo de la control Contenedor nativo con propiedades WLanguage
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Manejo de una control Contenedor nativo mediante programación
Presentación
El control Contenedor nativo devuelve un manipular/identificador:
Entonces, este manipular puede ser usado en el código nativo para manejar el control.
El Process associated "Creating XXX" con el control debe contener el código de creación del objeto mostrado en el contenedor nativo control.
AndroidiPhone/iPad Observación: La prueba del contenedor nativo control no puede ser ejecutada en modo GO. Debe compilar e implementar la aplicación.
Ejemplos didácticos

Presentación

Para presentar la programación de control Contenedor nativo, veamos un ejemplo de entrenamiento utilizado para crear un control Botón. Este ejemplo es voluntariamente simple, y el control Botón existe en estándar en las aplicaciones WINDEV y WINDEV Mobile..
Android

Creación de un botón

El siguiente código se utiliza para crear un botón cuyo tamaño es idéntico al de control Contenedor nativo.
  • Código para crear el contenedor nativo control: Este código llama a un Procedure disponible en código nativo de Java para crear la vista que se mostrará en el control.
    Android_AddButtonIntoNativeControl(MySelf.Value)
    Valor corresponde al identificador de vista.
  • El código Java de Procedure global usado para crear la vista:
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;

    public static void Android_AddButtonIntoNativeControl(int nParentId)
    {
    Button button = new Button(getApplicationContext());
    button.setText("Hello world!");
    button.setOnClickListener(new View.OnClickListener()
    {
    @Override
    public void onClick(View v)
    {
    callProcedureWL("WLAndroid_DisplayInfo", "Hello world!");
    }
    });
    ViewGroup parent = (ViewGroup)getCurrentActivity().findViewById(nParentId);
    if(parent!= null)
    {
    parent.addView(button);
    }
    }
    En este ejemplo, el código se puede dividir en dos secciones:
    • el código para crear la vista.
    • el código utilizado para asociar la vista con el contenedor nativo control. Este código debe ser adaptado según el tipo de vista creada (un botón en este caso) pero siempre se debe encontrar. Este código utiliza el identificador de la vista (nParentId) que se pasa como parámetro a la Procedure. Este código es el siguiente:
      ViewGroup parent = (ViewGroup)getCurrentActivity().findViewById(nParentId);
      if(parent!= null)
      {
      parent.addView(button);
      }
Observación: En el código para crear la vista, el botón está usando el WLanguage WLAndroid_DisplayInfo Procedure que se usa para mostrar un mensaje. El código del procedimiento es el siguiente:
PROCÉDURE WLAndroid_DisplayInfo(sInfo)
Info(sInfo)
iPhone/iPad

Creación de un botón

El siguiente código se utiliza para crear un botón en el contenedor nativo control.
  • Código para crear el contenedor nativo control: Este código llama a un Procedure disponible en código nativo de Objetivo C para crear la vista que se mostrará en el control. El tamaño del botón se pasa como parámetro.
    IOS_AddButtonIntoNativeControl(MySelf..Value, 10, 10, 200, 60)
    Valor corresponde al identificador de vista.
  • El código del Objetivo C de Procedure global usado para crear la vista:
    • IOS_AddButtonIntoNativeControl Procedure:
      void IOS_AddButtonIntoNativeControl(void *pParent, int x, int y, int width, int height)
      {
      UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
      SimpleClass * pclClass = [[SimpleClass alloc] init];
      [button addTarget:pclClass action:@selector(onClick:)
      forControlEvents:UIControlEventTouchUpInside];
      [button setTitle:@"Hello world!" forState:UIControlStateNormal];
      button.frame = CGRectMake(x, y, width, height);
      [(UIView*)pParent addSubview:button];
      }
      En este ejemplo, el código se puede dividir en dos secciones:
      • el código para crear la vista.
      • el código utilizado para asociar la vista con el contenedor nativo control. Este código debe ser adaptado según el tipo de vista creada (un botón en este caso) pero siempre se debe encontrar. Este código utiliza el identificador de la vista (pParent) pasado como parámetro a la Procedure. Este código es el siguiente:
        [(UIView*)pParent addSubview:button];
    • PlaceHolder Procedure (usado por el IOS_AddButtonIntoNativeControl Procedure). PRECAUCIÓN: Este código debe ser colocado ANTES del código del global Procedure IOS_AddButtonIntoNativeControl.
      #import "UIKit/UIKit.h"
      void PlaceHolder(){}
      @interface SimpleClass: NSObject
      @end
      @implementation SimpleClass

      - (void)onClick:(id)unused{
      [self performSelector:@selector(onClickDelayed:) withObject:unused afterDelay:0];
      }

      - (void)onClickDelayed:(id)unused{
      ClickOnNativeButton();
      }


      @end
  • Código WLangage llamado por el código Objective C, utilizado para mostrar un mensaje durante un clic en el botón.
    PROCÉDURE WLIOS_DisplayInfo() , ObjC
    Info("Click!")
Manejo de la control Contenedor nativo con propiedades WLanguage
La control Contenedor nativo puede ser manejada por varias propiedades de WLanguage. Para obtener una lista completa de las propiedades de WLanguage que pueden utilizarse con una control Contenedor nativo, consulte Propiedades associated con el control Contenedor nativo.
Versión mínima requerida
  • Versión 23
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 02/06/2022

Señalar un error o enviar una sugerencia | Ayuda local