User Tools

Site Tools


format_list_box_mouse_click_properties.htm
Navigation:  Language Reference > 9 -  Window and Report Attributes > Window and Report Attributes >====== FORMAT() List Box Mouse Click Properties ====== Previous pageReturn to chapter overviewNext page

NewC7.jpg

The following runtime properties return the mouse position within the LIST or COMBO control when pressed or released.They can also be written to, which has no effect except to temporarily change the value that the property returns when next read (within the same ACCEPT loop iteration). This may make coding easier in some circumstances.

PROPLIST:MouseDownField Returns the field number when the mouse is pressed. Same as list column as in PROP:COLUMN
PROPLIST:MouseDownRow Returns the row number when the mouse is pressed.
PROPLIST:MouseDownZone Returns the ordinal zone number of the field or group when the mouse is pressed.
PROPLIST:MouseMoveField Returns the field number when the mouse is moved. Same as list column as in PROP:COLUMN
PROPLIST:MouseMoveRow Returns the row number when the mouse is moved.
PROPLIST:MouseMoveZone Returns the ordinal zone number of a field or group when the mouse is moved.
PROPLIST:MouseUpField Returns the field number when the mouse is released. Same as list column as in PROP:COLUMN
PROPLIST:MouseUpRow Returns the row number when the mouse is released.
PROPLIST:MouseUpZone Returns the ordinal zone number of a field or group when the mouse is released.

The three “Row” properties all return zero (0) for header text and negative one (-1) if below the last displayed item.

Equates for the following Zones are listed on EQUATES.CLW:

LISTZONE:Field On a field in the LIST
LISTZONE:Right On the field's right border resize zone
LISTZONE:Header On a field or group header
LISTZONE:GroupHeader Mouse moved/clicked inside the header, but outside of any particular field's part of the header. Note: a field not in a group is considered as a group by itself.
LISTZONE:ExpandBox On an expand box in a Tree
LISTZONE:Tree On the connecting lines of a Tree
LISTZONE:Icon On an icon (Tree or not)
LISTZONE:Nowhere Anywhere else

Example:

Que  QUEUE

F1    STRING(50)

F2    STRING(50)

F3    STRING(50)

    END

WinView WINDOW('View'),AT(,,340,200),SYSTEM,CENTER

        LIST,AT(20,0,300,200),USE(?List),FROM(Que),HVSCROLL, |

        FORMAT('80L~F1~80L~F2~80L~F3~'),ALRT(MouseLeft)

       END

SaveFormat  STRING(20)

SaveColumn  BYTE

Columns     BYTE,DIM(3)

CODE

OPEN(WinView)

Columns[1] = 1

Columns[2] = 2

Columns[3] = 3

DO BuildListQue

ACCEPT

CASE EVENT()

OF EVENT:PreAlertKey

 CYCLE                               !Allow standard LIST clicks to process

OF EVENT:AlertKey

 IF ?List{PROPLIST:MouseDownRow} = 0 |              !Check for click in header

  AND ?List{PROPLIST:MouseDownZone}<;>LISTZONE:Right !but not the resize zone

  EXECUTE Columns[?List{PROPLIST:MouseDownField}]   !Check which header

   SORT(Que,Que.F1)

   SORT(Que,Que.F2)

   SORT(Que,Que.F3)

  END

  SaveFormat = ?List{PROPLIST:Format,?List{PROPLIST:MouseDownField}}

  ?List{PROPLIST:Format,?List{PROPLIST:MouseDownField}} = ?List{PROPLIST:Format,1}

  ?List{PROPLIST:Format,1} = SaveFormat

  SaveColumn = Columns[?List{PROPLIST:MouseDownField}]

  Columns[?List{PROPLIST:MouseDownField}] = Columns[1]

  Columns[1] = SaveColumn

  DISPLAY

  END

 END

END

FREE(Que)

BuildListQue ROUTINE

LOOP Y# = 1 TO 9

 Que.F1 = 'Que.F1 - ' &amp; Y#

 Que.F2 = 'Que.F2 - ' &amp; RANDOM(10,99)

 Que.F3 = 'Que.F3 - ' &amp; RANDOM(100,999)

 ADD(Que)

 ASSERT(NOT ERRORCODE())

END

SEE ALSO:

LIST

format_list_box_mouse_click_properties.htm.txt · Last modified: 2021/04/15 15:57 by 127.0.0.1