Vloení objektu 'NumObj' pro výběr z dvourozměrného pole stringů 'StrArr' do okna 'NumWind'. Umoňuje pohyb po poli stringů v ose X a Y. Atribut 'Attr' definuje chování objektu. Dvojice čísel [X1, Y1] a [X2, Y2] tvoří souřadnice objektu. K objektu lze připojit dva objekty 'LinkX' a 'LinkY' typu Ins_StrViewer, které sledují pohyby kurzoru v ose X a Y. Jestlie se kurzor bude pohybovat v ose X, bude se pohybovat i v objektu 'LinkX'. Jestlie se kurzor bude pohybovat v ose Y, bude se pohybovat i v objektu 'LinkY'. Nechcete-li těchto objektů pouít, pite místo nich nuly. Bude-li 'HSCBar' = True, bude ve spodní části objektu zobrazen posuvný indikátor polohy kurzoru. Bude-li 'VSCBar' = True, bude v pravé části objektu zobrazen posuvný indikátor polohy kurzoru. 'MaxX' a 'MaxY' definují výřez v poli stringů. Jestlie tyto parametry překročí maximální velikosti pole, budou upraveny. 'SelLabel' je návěstí podprogramu, který bude volán po stisknutí mezerníku nebo po dvojitém stisku levého tlačítka myi na některém prvku pole 'StrArr'. V rámci tohoto podprogramu nelze samozřejmě zruit rodičovské okno procedurou WDone! Pokud se tak přesto stane, hlásí program chybu. Definujete-li podprogram který se má volat při změně objektu procedurou ChObjProc , bude volán při pohybu kurzoru po poli stringů.
Datový obraz objektu je LongInt. Řádky | Sloupce
Nastavení dat objektu:
Přečtení dat objektu:
dim LI : LongInt;
GetDataObj(WinNum, ObjNum, LI)
Řádky := _Shr(LI, 16);
Sloupce := LI land
$FFFF;
Příklad:
dim StrArr (8,6) : String[3]; ... Ins_StrViewer(1, 80, 01,01,12,04, 1, 0,0, True,True, 7,5, StrArr, SelLabel)
1 2 3 4 5 6 7 8 ------------------------- ----------------------- Pole je omezeno 1 || | | | | | |ÎÎÎÎÎ| na výřez 7 x 5. ------|-----|-----|------ ----|-----|-----|------ 2 | | | | | | | |ÎÎÎÎÎ| ------|-----|-----|------ ----|-----|-----|------ 3 | | | | | | | |ÎÎÎÎÎ| ------|-----|-----|------ ----|-----|-----|------ 4 | | | | | | | |ÎÎÎÎÎ| ------------------------- ----|-----|-----|------ 5 | | |ÎÎÎÎÎ| ------|-----|-----|-----|-----|-----|-----|------ 6 |ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ|ÎÎÎÎÎ| -------------------------------------------------
Příklad:
const MaxCol = 50; const MaxRow = 30; dim Col, Row : Word; dim LI : LongInt; dim Array (MaxCol, MaxRow) : String[10]; WInit(1, 0,0,64,10, "", winMove, 0); Ins_StrViewer(1, 10, 15,02,63,03, 8, 0, 0, False,False, 50,30, Array, 0) Ins_StrViewer(1, 20, 02,04,14,10, 8, 0, 0, False,False, 50,30, Array, 0) Ins_StrViewer(1, 80, 15,04,63,10, 9, 10,20, True,True, 50,30, Array, SelLabel) WOpen(1) _Execute(1) Exit SelLabel: GetDataObj(1, 80, LI) Row := LI div $FFFF; Col := LI land $FFFF; Array[Col, Row] := "1234567890"; SetDataObj(1, 80, Row*$10000+Col) return