Tertium |
Отправлено: 07.04.2004, 11:22 |
|
Машинист паровоза
Группа: Почетный участник
Сообщений: 192
|
логика многократной смены кисти и пера
Народ, чувствую, что вопрос примитивный, но никак не могу понять, в чём дело. В обработчике onPaint пишу нечто вроде:
CODE |
Canvas->Brush->Style=bsSolid;
Canvas->Pen->Color=clBlack;
Canvas->Brush->Color=clBlack;
|
потом рисую всякую фигню и — далее, скажем:
CODE |
Canvas->Brush->Style=bsNone;
Canvas->Pen->Color=clRed;
Canvas->Pen->Style=psDash;
Canvas->Brush->Color=clRed;
|
и снова рисую.
Нарисованное выглядит так, что применён только второй блок, но как-то сквозь него просачивается и первый. Ладно. Теперь сначала всё рисую, потом применяю второй блок. Всё кроме стиля линий работает(?). Хорошо же, думаю. Прямо перед рисованием линии пишу:
CODE |
//закомментарил смену стиля кисти
//Canvas->Brush->Style=bsNone;
Canvas->Pen->Color=clRed;
Canvas->Pen->Style=psDash;
Canvas->Brush->Color=clRed;
|
Работает. Если же стиль у кисти задать — стиль пера не проходит. Что за вообще такой глюкодром? Почему тогда Borland пишут, что в канвасе инкапсулировано GDI, когда логика работы какая-то не-GDI-шная? Почему пишут, что при изменении св-в пера и кисти к hdc автоматически делается SelectObject соответствующих HBRUSH и HPEN? Может, конечно, какое-то свойство есть у канваса скрытое, типа NiceWorking, которое надо поставить в true? ))
Заранее спасибо за ответы.
|
|
Asher |
Отправлено: 07.04.2004, 12:22 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Где взял стиль bsNone?
в справке только так:
QUOTE | enum TBrushStyle {bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross};
|
P.S. Сам рисую на канве давно и много — глюков не наблюдал
|
|
Tertium |
Отправлено: 07.04.2004, 21:58 |
|
Машинист паровоза
Группа: Почетный участник
Сообщений: 192
|
имелся ввиду bsClear, но даже не в этом дело. дело в том, что рисую линию, потом меняю перо, а линия выглядит уже нарисованной этим пером. Я на канве в дельфях года четыре назад тоже вроде рисовал без проблем... Но тогда я не был испорчен ещё программмированием под живой GDI в вижл студии Так что, неважно когда применять перо?....
|
|
Tertium |
Отправлено: 07.04.2004, 22:10 |
|
Машинист паровоза
Группа: Почетный участник
Сообщений: 192
|
Кто бы мог подумать! Ай да борланд. С использованием новейших технологий компьютерной индустрии стало возможно решить некоторые проблемы в исходном коде простой перезагрузкой компьютера!
Проблема снимается. Неужели его так глючит? Я код не менял, а оно заработало:)
|
|
|