Страница 1 из 1

GRID разметка

Добавлено: 28 Декабрь 2005, 17:20
ru_alex
Может быть не в этот форум пишу, но нужно это именно для построения отчетов...
Какой наилучший способ рисования GRID разметки в виде точек на окне? Нужно для редактора отчетов. На окне могут присутствовать как контролы, так и графически нарисованнные элементы. Можно ли сделать так, чтобы разметка была "независимой" (рисовалась по верх всего :)).

Добавлено: 29 Декабрь 2005, 10:37
Admin
Что то я не понял вопрос ...

Добавлено: 29 Декабрь 2005, 10:43
Дед Пахом
наверно, имеется в виду как в Window Formatter-е - при включённом Grid всё окно в точках.

Добавлено: 29 Декабрь 2005, 13:20
ru_alex
точно, именно это и хотелось бы...

Добавлено: 29 Декабрь 2005, 15:20
Amike34
Дед Пахом - наверно, имеется в виду как в Window Formatter-е - при включённом Grid всё окно в точках.

ru_alex - GRID разметки в виде точек на окне? Нужно для редактора отчетов... точно, именно это и хотелось бы...

все равно не понял. Если Grid (сетку из точек) нужно просто высвечивать в форматтере отчетов, так она же там есть.
Если Grid нужна в отчете, то особых же проблем нет.
Пример скриншота отчета(во вложении)
Возился давно как пример изучения и распечатки вызовов методов ООП для Клары, если кому-нибудь нужна могу скинуть все приложение.
примерно так
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько '. . .'
или в цикле BY скажем 5 присвоишь '.'
примерно так(правда здесь все динамически вычисляется):

LineGr ROUTINE ! различная графика при печати
LX# = 5 * (RT:Level-1) ! позиция начала графики по X
IF IR2 = 1
SETPOSITION(?LSL,,,0)
BOX(LX#-5,0,183,4) ! для корневого метода
ELSE
LXRTC# = ?IR2{PROP:Xpos} + 8 !
LRTM# = (LEN(CLIP(RT:Method)) + 8) ! + 8 ! ? почему так нормально ???
LSLL# = (LX# + LRTM# - LXRTC#) ! длина строки . . .
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько . . .
END
?RT:Method{PROP:Xpos} = LX# ! начальная позиция(X) печати RT:Method
?RT:Method{PROP:FontColor} = RT:NormalFG
EXECUTE LGRT
BEGIN ! след.запись с тем же уровнем
LINE(LX#-3,0,0,4) ! | вертикальная линия
LINE(LX#-3,2,3,0) ! - в середине
END
BEGIN ! след.запись с большим уровнем
LINE(LX#-3,0,0,1) ! | вне бокса сверху короткая линия
BOX(LX#-4,1,3,3) !
LINE(LX#-3,2,1,0) ! - в середине бокса
LINE(LX#-1,2,1,0) ! - в середине вне бокса справа
END
BEGIN ! след.запись с меньшим уровнем
LINE(LX#-3,0,0,2) ! | вертикальная короткая линия
LINE(LX#-3,2,3,0) ! - в середине
END
END
LOOP J# = 1 TO MAXIMUM(ALV,1)
IF ALV[J#] AND |
INRANGE(IR2,AOT[J#]+1,ADO[J#]-1) ! кроме крайних №
LINE((5*(J#-1) - 3),0,0,4) ! сквозная вертикальная линия одинаковых уровней
END
END

Добавлено: 29 Декабрь 2005, 15:36
ru_alex
Неправильно поняли.
Есть в программе некий модуль, позволяющий самому строить отчет (по типу Fomin Report Builder и др.). Так вот для удобства хотелось бы там иметь Grid.
Короче, есть окно. Можно ли на нем нарисовать Grid в виде точек, так чтобы точки были поверх контролов. Если точки рисовать графикой клариона, не прозрачные котролы эти точки закрывают.

Добавлено: 29 Декабрь 2005, 16:52
Admin
Тогда только стредствами Windows API

Добавлено: 30 Декабрь 2005, 11:50
ru_alex
Может быть кто-нить еще и подскажет какими средствами :wink:
Ну или хотя бы где смотреть (за MSDN заранее спасибо :) )

Добавлено: 30 Декабрь 2005, 11:52
Дед Пахом
А такой вариант - картинка с точками на прозрачном фоне кладётся поверх всех контролов - не пройдёт?