Может кому пригодится
Добавлено: 15 июл 2009, 20:05
Запостить в опыт не могу, пишу сюда, может кому пригодится. Накидал интерфейс для подбора цвета шрифтов и фона (открытие через "Запуск внешнего интерфейса")
Внешний вид:

Код:
Внешний вид:

Код:
Код: Выделить всё
#component "Utils"
interface ColorDetect 'Подборка цвета', dialog;
show at (,, 60, 20);
table struct local tblTest
(
NRec : comp,
Name : string
);
create view from tblTest;
var
_fontColor : word;
_backColor : word;
_fontParams : word;
_isItalic : boolean;
_isBold : boolean;
_strTest : string;
screen scrMain;
show at(,,, 5);
noTableNavigation;
fields
_fontColor : [3], noprotect;
_fontParams : noprotect;
_backColor : [3], noprotect;
buttons
cmApply;
<<
`Цвет шрифта:`.@@ [.] Italic`
`Цвет фона:` .@@ [.] Bold`
<. Применить .>
>>
end;
screen scrTest;
show at(, 6,, 7)
noTableNavigation;
fields
_strTest : protect, skip, { font = { bold = _isBold; italic = _isItalic; color = _fontColor; backColor = _backColor; } };
_strTest : protect, skip, { font = { bold = _isBold; italic = _isItalic; color = _fontColor; } };
<<
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
end;
#define CheckOrder(trueCon, falseCon) If(Longint(tblTest.NRec) mod 2 = 0, #trueCon, #falseCon)
browse brwsTest;
show at(, 8,,);
table tblTest;
fields
{ font = {
bold = #CheckOrder(_isBold, false);
italic = #CheckOrder(_isItalic, false);
color = #CheckOrder(_fontColor, ColorSysBlack);
backColor = #CheckOrder(_backColor, 0);
}
};
tblTest.NRec #3'Идентификатор' : [20], noAutoSize, protect;
tblTest.Name #3'Наименование' : [20], noAutoSize, protect;
end;
private procedure ApplyChanges;
{
_isItalic := (_fontParams and 1) = 1;
_isBold := (_fontParams and 2) = 2;
ReScanPanel(#tblTest);
}
handleEvent
cmInit:
{
_strTest := 'Cъешь ещё этих мягких французских булок, да выпей чаю';
var i : longint;
for (i := 0; i < 1000; i++)
insert into tblTest set tblTest.NRec := i, tblTest.Name := 'Наименование ' + String(i);
}
cmApply:
{
ApplyChanges();
}
cmCheckField:
{
ApplyChanges();
}
end;
end.