Привет!
Я использую XDS Oberon-2.
Создаю статус-бар. Это работает.
Не могу его разбить на parts (отсеки), получается только single-part.
Интересно, что Modulа-2 код работает.
В SendMessage третий параметр - длина маcсива, четвертый - сам адрес массива.
Даже M2ADR не помог для обероновского кода.
В чем может быть дело?
...

IMPORT CC := CommCtrl;
IMPORT W := Windows;

...
PROCEDURE CreateStatusBar (hWnd: W.HWND);
VAR
style: W.WS_SET;
arrWidthsSB: ARRAY 6 OF INTEGER;
-- arrWidthsSB: ARRAY [0..5] OF INTEGER;

BEGIN
style := W.WS_CHILD + W.WS_VISIBLE + W.WS_BORDER
+ W.WS_CLIPSIBLINGS + SYSTEM.VAL(W.WS_SET, CC.SBARS_SIZEGRIP);

hwndSB := W.CreateWindowEx (W.WS_EX_SET{}, CC.STATUSCLASSNAME, "",
W.WS_CHILD + W.WS_VISIBLE,
0, 0, 0, 0, hWnd,
SYSTEM.VAL (W.HMENU, IDC_MAIN_STATUS), W.MyInstance(), NIL);

arrWidthsSB[0] := 125;
arrWidthsSB[1] := 225;
arrWidthsSB[2] := 325;
arrWidthsSB[3] := 375;
arrWidthsSB[4] := 500;
arrWidthsSB[5] := -1;

W.SendMessage (hwndSB, CC.SB_SETPARTS, SYSTEM.VAL (W.WPARAM, LEN(arrWidthsSB)), SYSTEM.VAL (W.LPARAM, SYSTEM.ADR(arrWidthsSB)));

(* Oberon-2, не работает !!! *)
-- W.SendMessage (hwndSB, CC.SB_SETPARTS, SYSTEM.CAST (W.WPARAM, LEN(arrWidthsSB)), SYSTEM.CAST (W.LPARAM, SYSTEM.ADR(arrWidthsSB)));
-- или вот так
-- W.SendMessage (hwndSB, CC.SB_SETPARTS, SYSTEM.CAST (W.WPARAM, LEN(arrWidthsSB)), SYSTEM.CAST (W.LPARAM, SYSTEM.M2ADR(arrWidthsSB)));

END CreateStatusBar;