Array and text properties (OpenInsight 32-Bit)
At 28 JAN 2004 12:46:14PM Clay wrote:
When I want to get the value of an Edit Line as it appears on a form I use the TEXT property. For an edit table, is there something similar to that, because array grabs the internal value of the table. I want an array of exactly what is being shown on the form. Any ideas?
Clay
At 28 JAN 2004 02:45PM Bob Carten wrote:
Clay
try the 'LIST' property
BOB
At 28 JAN 2004 05:38PM Richard Hunt wrote:
Clay,
If you mean only the visible data, then this will help you get the visible rows.
* Declare statements.
DECLARE FUNCTION GETWINDOW, GETWINDOWLONG, GETSYSTEMMETRICS, SENDMESSAGE*
* Set program variables WINDOW=@WINDOW FOCUS=WINDOW:'.TABLE_1' HSCROLLBAR=0 VSCROLLBAR=0 HANDLE=GET_PROPERTY(FOCUS,'HANDLE') ROW_HEIGHT=SENDMESSAGE(HANDLE,1120,1,0) HEAD_HEIGHT=SENDMESSAGE(HANDLE,1120,3,0) TOTAL_HEIGHT=GET_PROPERTY(FOCUS,'SIZE') ET_HANDLE=GET_PROPERTY(FOCUS,'HANDLE') DT_HANDLE=GETWINDOW(ET_HANDLE,5) CHILD_HANDLE=GETWINDOW(DT_HANDLE,5) *
* Check for edit table scroll bars.
LOOP WHILE CHILD_HANDLECLASS_NAME=STR(CHAR(0),256)CALL GETCLASSNAME(CHILD_HANDLE,CLASS_NAME,255)CONVERT CHAR(0) TO '' IN CLASS_NAMEIF OCONV(CLASS_NAME,'UPPER') EQ 'SCROLLBAR' THENCHILD_STYLE=GETWINDOWLONG(CHILD_HANDLE,-16)IF BITAND(CHILD_STYLE,268435456) THENIF BITAND(CHILD_STYLE,1) THENVSCROLLBAR=1END ELSEHSCROLLBAR=1ENDENDENDCHILD_HANDLE=GETWINDOW(CHILD_HANDLE,2)REPEAT*
* Calculate horizontal scrollbar size. IF HSCROLLBAR THEN HS_SIZE=GETSYSTEMMETRICS(3) END ELSE HS_SIZE=0 END *
* Calculate total visible row count.
HEIGHT=TOTAL_HEIGHT - HEAD_HEIGHT - HS_SIZEIF ROW_HEIGHT GT 0 THENCOMPLETE_ROWS=INT(HEIGHT / ROW_HEIGHT)VISIBLE_ROWS=COMPLETE_ROWS + (COMPLETE_ROWS NE (HEIGHT / ROW_HEIGHT))END ELSECOMPLETE_ROWS=0VISIBLE_ROWS=0END*
**
* Get the start and end rows.
START_ROW=GET_PROPERTY(FOCUS,'TOPPOS')END_ROW=COMPLETE_ROWS - START_ROW + 1