![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PolyLine
Дима2 © (2002-04-02 16:40:00)C помощью PolyLine рисую линию в FormCreat. Перпендикулярно ей стоит labal стрелка. Когда меняю цвет линии(заново прорисовываю) и стелки(label), то получается разрыв. В чем дело?
REA (2002-04-03 15:19:00) [1]Насчет PolyLine и PolyPolyLine - там есть ограничение - не более 15000 точек (экспериментально определено). На принтер и того меньше (зависит от модели и размера памяти).
Alx2 (2002-04-03 14:54:00) [2]Пока дремучий лес. Подробнее код надо. В частности, все места, отколь это все вызывается. Или весь юнит, если он небольшой.
Вообще подобные вещи (с PolyLine) делаются в OnPaint
Дима2 (2002-04-02 20:18:00) [3]?
Дима2 (2002-04-02 19:52:00) [4]?
Дима2 (2002-04-02 19:47:00) [5]При нажатии Button
yaJohn (2002-04-02 19:40:00) [6]А откуда вызывается procedure???
Дима2 (2002-04-02 19:39:00) [7]Нет не в Oncreat. В procedure. C начала у меня всё нормально.(Я имею в виду что на форме у меня всё нормально при OnCreat)
А в procedure я сначало делаю label4.Font.Color, а потом рисую линию!
yaJohn (2002-04-02 19:33:00) [8]Где? В OnCreate? Вот эта линия один раз и отрисовывается. А потом, уже после OnCreate Windows может неоднократно посылать окну WM_PAINT. При этом Лейбл перерисовывается поверхлинии, а линия - нет.
Дима2 (2002-04-02 19:08:00) [9]Да, но я сначало делаю label4.Font.Color, а потом рисую линию!
yaJohn (2002-04-02 19:04:00) [10]Лабел сначала рисует свой прямоугольник цветом фона, а потом выводит текст. Изменение Label.Font.Color приводит к перерисовке Label. Потому и разрыв.
Линия нарисованная в OnCreate формы.... Попробуйте свернуть форму, а потом снова развернуть. И где линия?
Линию надо рисовать в OnPaint (или OnDraw ???), коли таковой имеется.
Дима2 (2002-04-02 18:48:00) [11]for ch:=1 to 2 do begin
if ch=2 then begin
label4.Font.Color:=clblack;
end;
for i:=1 to 19 do begin
if (i<9) or (i>13)then Canvas.Polyline([Point(x11[i],y11[i]),Point(x12[i],y12[i])]);
end;{1,2,3,4}
Canvas.Pen.Color := clblack;
button6.Click;{Процедура ожидающая нажатия Buton2}
end;
Alx2 (2002-04-02 17:10:00) [12]Код?
Дима2 (2002-04-02 16:49:00) [13]?