PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

  • Overview
  • Selection mode
  • Selection mode
  • Display mode
  • Display mode (vertical Looper control)
  • Resizing the cells of a Looper control
  • Input parameters and scrollbar display
  • Input parameters
  • Scrollbar
  • Filling a memory Looper control
  • Variable row content
  • Implementation
  • Characteristics of internal windows
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Overview
To display the control characteristics, select "Description" from the popup menu of control. In a window, the attributes not being proposed by default, only the characteristics of Looper control will be displayed.
The main control characteristics are grouped in the following tabs:
  • The "General" tab displays the list of controls found in the Looper control.
  • The "GUI" tab is used to select the initial status, the selection mode, the popup menu, ...
    Versions 22 and later
    Windows This tab is also used to manage the fill of a memory Looper control (displaying a progress bar or a window, ...). See Filling a memory Looper control for more details.
    New in version 22
    Windows This tab is also used to manage the fill of a memory Looper control (displaying a progress bar or a window, ...). See Filling a memory Looper control for more details.
    Windows This tab is also used to manage the fill of a memory Looper control (displaying a progress bar or a window, ...). See Filling a memory Looper control for more details.
  • The "Details" tab is used to select the display mode of control, the input parameters and the scrollbar parameters.
  • The "Content" tab is used to define the mode for filling the control and the breaks.
    Versions 23 and later
    This tab is also used to manage the display of a different content in each row (via internal windows). See Different content in each row for more details.
    New in version 23
    This tab is also used to manage the display of a different content in each row (via internal windows). See Different content in each row for more details.
    This tab is also used to manage the display of a different content in each row (via internal windows). See Different content in each row for more details.
  • The "Style" tab is used to define the style of different control elements.
Selection mode

Selection mode

The following selection modes are proposed in a Looper control:
  • No selection: The selection bar is not displayed on the selected row. However, the "Row selection" process in run when selecting the row.
  • Single selection: The selection bar is displayed on the selected row. The "Row selection" process is run.
  • Multi-selection: The selection bar is displayed on the selected rows. To select several rows, all you have to do is keep the SHIFT or CTRL key down. The "Row selection" process is run whenever a row is selected.
  • WINDEV Multi-selection via simple click: This option is used to perform a multi-selection with the mouse. If this option is selected, all you have to do is click a row in order for this row to be added to the multi-selection or removed from the multi-selection.
  • Versions 17 and later
    AndroidiPhone/iPad Android/iOS selection mode: This option is used to hide the selection bar after the selection. This allows you to get the standard operating mode on these platforms: the bar appears when pressing on the row. Then, the code for row selection is run.
    New in version 17
    AndroidiPhone/iPad Android/iOS selection mode: This option is used to hide the selection bar after the selection. This allows you to get the standard operating mode on these platforms: the bar appears when pressing on the row. Then, the code for row selection is run.
    AndroidiPhone/iPad Android/iOS selection mode: This option is used to hide the selection bar after the selection. This allows you to get the standard operating mode on these platforms: the bar appears when pressing on the row. Then, the code for row selection is run.
Versions 18 and later
Android The "Without selection" and "Multiple selection" selection modes are now available.
New in version 18
Android The "Without selection" and "Multiple selection" selection modes are now available.
Android The "Without selection" and "Multiple selection" selection modes are now available.
Display mode

Display mode (vertical Looper control)

Several display modes are available:
  • Variable column width. All you have to do is specify the number of columns to display. The width of each column will evolve according to the window width.
    The width of each column will be proportionally modified when the window width is modified by the user.
    Universal Windows 10 App This option is not available.
  • Variable number of columns. All you have to do is specify the width of columns. This width will be used for each one of the columns found in the Looper control. The number of columns will evolve according to the window width.
    The number of columns will change when the window width is modified by the user.
    Universal Windows 10 App This option is not available.
  • Fixed width and number of columns: All you have to do is specify the number of columns to display and the width of columns.
    Only the width of Looper control will be modified when the window width is modified. Neither the number of columns nor the width of columns will be modified.
    iPhone/iPad This option is not available.
Universal Windows 10 App You cannot select a specific display mode: the Looper controls display a single column.
Versions 17 and later
Android The multi-column Looper controls are now available.
New in version 17
Android The multi-column Looper controls are now available.
Android The multi-column Looper controls are now available.
Versions 18 and later
WINDEVAndroidiPhone/iPad Display mode (horizontal Looper control) ("Details" tab of description window)
Several display modes are available:
  • Variable row height. All you have to do is specify the number of rows to display. The height of each row will evolve according to the window height.
    The height of each row will change proportionally when the window height is modified by the user.
  • Variable number of rows. All you have to do is specify the height of the rows. This height will be used for each one of the rows found in the Looper control. The number of rows will evolve according to the window height.
    The number of rows will change when the window height is modified by the user.
  • Fixed height and number of rows: All you have to do is specify the number of rows to display and the height of rows.
    Only the height of Looper control will be modified when the window height is modified. The number of rows and the height of rows will not be modified.
    iPhone/iPad This option is not available.
Limitation: the breaks cannot be used in an horizontal Looper control.
New in version 18
WINDEVAndroidiPhone/iPad Display mode (horizontal Looper control) ("Details" tab of description window)
Several display modes are available:
  • Variable row height. All you have to do is specify the number of rows to display. The height of each row will evolve according to the window height.
    The height of each row will change proportionally when the window height is modified by the user.
  • Variable number of rows. All you have to do is specify the height of the rows. This height will be used for each one of the rows found in the Looper control. The number of rows will evolve according to the window height.
    The number of rows will change when the window height is modified by the user.
  • Fixed height and number of rows: All you have to do is specify the number of rows to display and the height of rows.
    Only the height of Looper control will be modified when the window height is modified. The number of rows and the height of rows will not be modified.
    iPhone/iPad This option is not available.
Limitation: the breaks cannot be used in an horizontal Looper control.
WINDEVAndroidiPhone/iPad Display mode (horizontal Looper control) ("Details" tab of description window)
Several display modes are available:
  • Variable row height. All you have to do is specify the number of rows to display. The height of each row will evolve according to the window height.
    The height of each row will change proportionally when the window height is modified by the user.
  • Variable number of rows. All you have to do is specify the height of the rows. This height will be used for each one of the rows found in the Looper control. The number of rows will evolve according to the window height.
    The number of rows will change when the window height is modified by the user.
  • Fixed height and number of rows: All you have to do is specify the number of rows to display and the height of rows.
    Only the height of Looper control will be modified when the window height is modified. The number of rows and the height of rows will not be modified.
    iPhone/iPad This option is not available.
Limitation: the breaks cannot be used in an horizontal Looper control.

Resizing the cells of a Looper control

You can allow the user to resize the cells found in a Looper control. To do so, check the following options in the "Details" tab of control description:
  • "Height of rows resizable".
  • "Width of columns resizable".
You can allow the user to resize the cells found in a Looper control. In the "Details" tab of control description, all you have to do is check "Resizable" found in front of the following options:
  • "Row height".
  • "Column width".
Note: The default height of a row can be specified.
Input parameters and scrollbar display

Input parameters

The input parameters are used to specify the behavior of browsing Looper controls in edit. The possible options are as follows:
  • Cascading input: Pressing the Enter key in an edit control is used to automatically perform an input in a new row.
    Universal Windows 10 App This option is not available.
  • Lock the record in modification: When modifying a row, the corresponding record in the data file will be automatically locked until the modification is validated.
  • Save during row exit: The record currently modified or created will be automatically saved in the corresponding data file as soon as the row is no longer selected. If this option is not selected, the record backup must be programmed with LooperSave.

Scrollbar

The display of horizontal/vertical scrollbar can be:
  • automatic: the scrollbar will be displayed when necessary.
  • always visible: the scrollbar will always be displayed.
  • never visible: the scrollbar will never be displayed.
A tooltip can be displayed on the vertical scrollbar. This tooltip displays the number of the current row in relation to the total number of rows.
Universal Windows 10 App This option is not available.
The scrollbar move can be done:
  • to the pixel: a row may not be entirely displayed according to the scrollbar position.
  • with the finger: used to handle the scrollbar via a touch screen.
Versions 18 and later
AndroidiPhone/iPad Specific options regarding the moves and gestures can also be defined. See Looper: Moves and gestures for more details.
New in version 18
AndroidiPhone/iPad Specific options regarding the moves and gestures can also be defined. See Looper: Moves and gestures for more details.
AndroidiPhone/iPad Specific options regarding the moves and gestures can also be defined. See Looper: Moves and gestures for more details.
Versions 22 and later
Windows
Filling a memory Looper control
Specific information can be displayed when filling a memory Looper control:
  • Progress bar,
  • Information window, ...
To display an information when filling a memory Looper control:
  1. Display the description window of Looper control.
  2. In the "GUI" tab of the description window of control, check "Display an internal window above the rows".
  3. Specify (if necessary) the internal window that will be used. You can:
    • use the window proposed by default by WINDEV ("None" option).
    • import into the project the preset window proposed by WINDEV in order to customize it ("Preset window" option). If this option is selected, the internal window is immediately added into the current project and it is associated with the feature.
      Note: We advise you to copy the window into the directory of current project. The internal window is named "IW_TableLoadStatus".
  4. Validate (if necessary) the description window of control.
  5. To enable this mechanism, call LooperStartFilling and LooperEndFilling to frame the code used to fill the Looper control.
Notes:
  • By default, the "No available data" message is displayed in the empty Looper control. During the fill operation, an infinite progress bar is displayed at the bottom of Looper control.
  • The internal window proposed by default contains 3 planes:
    • Plane 1 containing an infinite progress bar.
    • Plane 2 containing the caption displayed if the Looper control is empty. The caption "No available data" is displayed by default.
    • Plane 3 containing the caption displayed before the call to LooperStartFilling.
  • The internal window named "IW_TableLoadStatus" is also used to manage the fill of memory Table controls.
New in version 22
Windows
Filling a memory Looper control
Specific information can be displayed when filling a memory Looper control:
  • Progress bar,
  • Information window, ...
To display an information when filling a memory Looper control:
  1. Display the description window of Looper control.
  2. In the "GUI" tab of the description window of control, check "Display an internal window above the rows".
  3. Specify (if necessary) the internal window that will be used. You can:
    • use the window proposed by default by WINDEV ("None" option).
    • import into the project the preset window proposed by WINDEV in order to customize it ("Preset window" option). If this option is selected, the internal window is immediately added into the current project and it is associated with the feature.
      Note: We advise you to copy the window into the directory of current project. The internal window is named "IW_TableLoadStatus".
  4. Validate (if necessary) the description window of control.
  5. To enable this mechanism, call LooperStartFilling and LooperEndFilling to frame the code used to fill the Looper control.
Notes:
  • By default, the "No available data" message is displayed in the empty Looper control. During the fill operation, an infinite progress bar is displayed at the bottom of Looper control.
  • The internal window proposed by default contains 3 planes:
    • Plane 1 containing an infinite progress bar.
    • Plane 2 containing the caption displayed if the Looper control is empty. The caption "No available data" is displayed by default.
    • Plane 3 containing the caption displayed before the call to LooperStartFilling.
  • The internal window named "IW_TableLoadStatus" is also used to manage the fill of memory Table controls.
Windows
Filling a memory Looper control
Specific information can be displayed when filling a memory Looper control:
  • Progress bar,
  • Information window, ...
To display an information when filling a memory Looper control:
  1. Display the description window of Looper control.
  2. In the "GUI" tab of the description window of control, check "Display an internal window above the rows".
  3. Specify (if necessary) the internal window that will be used. You can:
    • use the window proposed by default by WINDEV ("None" option).
    • import into the project the preset window proposed by WINDEV in order to customize it ("Preset window" option). If this option is selected, the internal window is immediately added into the current project and it is associated with the feature.
      Note: We advise you to copy the window into the directory of current project. The internal window is named "IW_TableLoadStatus".
  4. Validate (if necessary) the description window of control.
  5. To enable this mechanism, call LooperStartFilling and LooperEndFilling to frame the code used to fill the Looper control.
Notes:
  • By default, the "No available data" message is displayed in the empty Looper control. During the fill operation, an infinite progress bar is displayed at the bottom of Looper control.
  • The internal window proposed by default contains 3 planes:
    • Plane 1 containing an infinite progress bar.
    • Plane 2 containing the caption displayed if the Looper control is empty. The caption "No available data" is displayed by default.
    • Plane 3 containing the caption displayed before the call to LooperStartFilling.
  • The internal window named "IW_TableLoadStatus" is also used to manage the fill of memory Table controls.
Versions 23 and later
Variable row content
The Looper controls allow you to customize the appearance of rows: layout, content, ...

Implementation

To create a Looper control with variable content:
  1. Creating a memory Looper control (filled by programming). This control must be a vertical Looper control containing a single column.
  2. Display the description window of Looper control.
  3. In the "Content" tab of control description:
    • Check "Use an internal window per row".
    • Indicate the mode for unloading the internal windows:
      • Never: The internal windows are loaded when the associated row is visible in the control. The unload is never performed when using the control. It is performed when closing the window. This mode is recommended if there are few internal windows and if they do not contain too many controls .
        Benefit: The entire data is always available
        Drawback: Large memory consumption.
      • When the row is no longer visible (option selected by default): The internal windows are loaded when the associated row is visible in the control. The unload is performed when the row is not visible anymore. This mode is recommended for the non-editable Looper controls. Indeed, if an internal window allows the input, the content typed by the user is lost when this internal window is no longer visible.
        Benefit: Consumes few memory.
        Drawback: Loss of information typed by the user.
      • Row not visible + IW containing read-only controls: The internal windows are loaded when the associated row is visible in the control. The unload is performed according to the type of row:
        • If the row contains no control allowing the user input, the associated internal window is unloaded when it is no longer visible.
        • If the row allows the input, the associated internal window is never unloaded.
  4. Validate the description window of control.
  5. Create the different internal windows corresponding to the rows of Looper control.
  6. Add the internal windows into the Looper control via the following functions:
    Versions 23 and later
    LooperAddIW
    New in version 23
    LooperAddIW
    LooperAddIW
    Adds a row corresponding to an internal window at the end of a memory Looper control.
    Versions 23 and later
    LooperInsertIW
    New in version 23
    LooperInsertIW
    LooperInsertIW
    Inserts a row corresponding to an internal window into a memory Looper control.
    Versions 23 and later
    LooperModifyIW
    New in version 23
    LooperModifyIW
    LooperModifyIW
    Modifies a row corresponding to an internal window in a memory Looper control.

Characteristics of internal windows

The characteristics regarding the width and height of internal windows are as follows:
  • Height: The height of the row using an internal window exactly corresponds to the height of internal window defined in edit. The height of internal window cannot exceed the height of Looper control.
  • Width:
    • If the width of internal window is smaller than the width of Looper control, the width of internal window is automatically increased and anchors are applied.
    • If the width of internal window exceeds the width of Looper control, the internal window is automatically truncated.
    In most cases, we advise you to create the internal window with the smallest possible width and to use anchors.
Note: If the internal window includes controls adapted to content, the row height will be increased or reduced according to the content.
New in version 23
Variable row content
The Looper controls allow you to customize the appearance of rows: layout, content, ...

Implementation

To create a Looper control with variable content:
  1. Creating a memory Looper control (filled by programming). This control must be a vertical Looper control containing a single column.
  2. Display the description window of Looper control.
  3. In the "Content" tab of control description:
    • Check "Use an internal window per row".
    • Indicate the mode for unloading the internal windows:
      • Never: The internal windows are loaded when the associated row is visible in the control. The unload is never performed when using the control. It is performed when closing the window. This mode is recommended if there are few internal windows and if they do not contain too many controls .
        Benefit: The entire data is always available
        Drawback: Large memory consumption.
      • When the row is no longer visible (option selected by default): The internal windows are loaded when the associated row is visible in the control. The unload is performed when the row is not visible anymore. This mode is recommended for the non-editable Looper controls. Indeed, if an internal window allows the input, the content typed by the user is lost when this internal window is no longer visible.
        Benefit: Consumes few memory.
        Drawback: Loss of information typed by the user.
      • Row not visible + IW containing read-only controls: The internal windows are loaded when the associated row is visible in the control. The unload is performed according to the type of row:
        • If the row contains no control allowing the user input, the associated internal window is unloaded when it is no longer visible.
        • If the row allows the input, the associated internal window is never unloaded.
  4. Validate the description window of control.
  5. Create the different internal windows corresponding to the rows of Looper control.
  6. Add the internal windows into the Looper control via the following functions:
    Versions 23 and later
    LooperAddIW
    New in version 23
    LooperAddIW
    LooperAddIW
    Adds a row corresponding to an internal window at the end of a memory Looper control.
    Versions 23 and later
    LooperInsertIW
    New in version 23
    LooperInsertIW
    LooperInsertIW
    Inserts a row corresponding to an internal window into a memory Looper control.
    Versions 23 and later
    LooperModifyIW
    New in version 23
    LooperModifyIW
    LooperModifyIW
    Modifies a row corresponding to an internal window in a memory Looper control.

Characteristics of internal windows

The characteristics regarding the width and height of internal windows are as follows:
  • Height: The height of the row using an internal window exactly corresponds to the height of internal window defined in edit. The height of internal window cannot exceed the height of Looper control.
  • Width:
    • If the width of internal window is smaller than the width of Looper control, the width of internal window is automatically increased and anchors are applied.
    • If the width of internal window exceeds the width of Looper control, the internal window is automatically truncated.
    In most cases, we advise you to create the internal window with the smallest possible width and to use anchors.
Note: If the internal window includes controls adapted to content, the row height will be increased or reduced according to the content.
Variable row content
The Looper controls allow you to customize the appearance of rows: layout, content, ...

Implementation

To create a Looper control with variable content:
  1. Creating a memory Looper control (filled by programming). This control must be a vertical Looper control containing a single column.
  2. Display the description window of Looper control.
  3. In the "Content" tab of control description:
    • Check "Use an internal window per row".
    • Indicate the mode for unloading the internal windows:
      • Never: The internal windows are loaded when the associated row is visible in the control. The unload is never performed when using the control. It is performed when closing the window. This mode is recommended if there are few internal windows and if they do not contain too many controls .
        Benefit: The entire data is always available
        Drawback: Large memory consumption.
      • When the row is no longer visible (option selected by default): The internal windows are loaded when the associated row is visible in the control. The unload is performed when the row is not visible anymore. This mode is recommended for the non-editable Looper controls. Indeed, if an internal window allows the input, the content typed by the user is lost when this internal window is no longer visible.
        Benefit: Consumes few memory.
        Drawback: Loss of information typed by the user.
      • Row not visible + IW containing read-only controls: The internal windows are loaded when the associated row is visible in the control. The unload is performed according to the type of row:
        • If the row contains no control allowing the user input, the associated internal window is unloaded when it is no longer visible.
        • If the row allows the input, the associated internal window is never unloaded.
  4. Validate the description window of control.
  5. Create the different internal windows corresponding to the rows of Looper control.
  6. Add the internal windows into the Looper control via the following functions:
    Versions 23 and later
    LooperAddIW
    New in version 23
    LooperAddIW
    LooperAddIW
    Adds a row corresponding to an internal window at the end of a memory Looper control.
    Versions 23 and later
    LooperInsertIW
    New in version 23
    LooperInsertIW
    LooperInsertIW
    Inserts a row corresponding to an internal window into a memory Looper control.
    Versions 23 and later
    LooperModifyIW
    New in version 23
    LooperModifyIW
    LooperModifyIW
    Modifies a row corresponding to an internal window in a memory Looper control.

Characteristics of internal windows

The characteristics regarding the width and height of internal windows are as follows:
  • Height: The height of the row using an internal window exactly corresponds to the height of internal window defined in edit. The height of internal window cannot exceed the height of Looper control.
  • Width:
    • If the width of internal window is smaller than the width of Looper control, the width of internal window is automatically increased and anchors are applied.
    • If the width of internal window exceeds the width of Looper control, the internal window is automatically truncated.
    In most cases, we advise you to create the internal window with the smallest possible width and to use anchors.
Note: If the internal window includes controls adapted to content, the row height will be increased or reduced according to the content.
Related Examples:
The Looper control Unit examples (WINDEV): The Looper control
[ + ] Using the Looper control.
You have the ability to add a row with LooperAddLine.
The following syntax is used to retrieve the existing values:
  AttributeName[Subscript]
WM Managing Contacts Cross-platform examples (WINDEV Mobile): WM Managing Contacts
[ + ] This example presents the management of contacts for Android et iOS.
It is used o:
- list the contacts found on the phone
- call the contacts
- send SMSs to the contacts
- ...
WM Registered Cross-platform examples (WINDEV Mobile): WM Registered
[ + ] This application is an attendance manager. It allows you to list the persons who attended a meeting.
The database is filled beforehand with the list of registered persons.
You have the ability to find a person by using his/her name.
The following topics are presented in this example:
1/ using a browsing looper based on a query
2/ using a database in HFSQL format.
Minimum required version
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment