Добрый день Всем!
Вот мое решение.
Знаю что так делать ненадо, однако быстро и главное работает, может кому пригодится.
Правил модуль StdTables.
1. К записи Table добавил поля
ColWidth, ColWidthNb: INTEGER;
2. Добавил метод
Код:
PROCEDURE (VAR tab: Table) SetColWidth* (ColNb, ColWidth: INTEGER), NEW;
BEGIN
tab.ColWidthNb:=ColNb;
tab.ColWidth:=ColWidth
END SetColWidth;
3. изменил метод Control.Update
Код:
PROCEDURE (c: Control) Update (f: Views.Frame; op, from, to: INTEGER);
VAR
t: TableValue;
b: BOOLEAN;
BEGIN
IF c.item.Valid() THEN
c.item.GetVal(t, b);
IF (t.t.ColWidth>0)&(t.t.ColWidthNb<t.t.cols) THEN
c.width[t.t.ColWidthNb]:=t.t.ColWidth * Ports.mm;
END
END;
Views.Update(c, Views.keepFrames)
END Update;
Аналогично с Control.mode
Обращаясь к Илье Ермакову.
Согласен с Вами - стандартный модуль править не хорошо. Только что-то у меня не получилось
сделать отдельную подсистему, поэтому "срезал угол". Может потом научусь.
Согласен также что StdTables.Table - не конрол, но тогда зачем в описании Table свойства
weights, styles, colors?
С уважением, Игорь.