| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > FillRect & TextOut |
| Автор: Pakshin A. S. 10.7.2003, 22:15 | ||||||||
Пытаюся сделать следующее:
На старом Windowse всё работало, но тут вылетает ошибка:
Оказывается определение процедур здеся следующее:
Хотя Delphi одно и то же, т. е. с одного диска ставил. А теперь вопросы: 1) Что такое hDC: HDC (DC: HDC) и с чем это едят; 2) Что такое hbr: HBRUSH и с чем это едят; 3) При чём в TextOut Count: Integer. P. S. В Help лазил, там всё описывается по другому:
|
| Автор: &-ray 10.7.2003, 23:19 |
| делай все через canvas: canvas.textout canvas.fillrect |
| Автор: Mikel 11.7.2003, 07:11 |
| Т.е. сначала создай canvas, получи гр. дескриптор этого окна- это и есть то самое hDC, по его Handle(hnd) Canvas.Handle:=GetDC(hnd) |
| Автор: <Spawn> 11.7.2003, 08:45 |
| Скорее всего, что эти функции из разных модулей. И вторые из них явно прототипы АПИ. Самое простое конечно использовать Canvas. Но если хочется с АПИ тогда для получения ссылки на контекст утсройства юзай GetDC(Или GetWindowDC, если нужно добраться до рамок окна например). Для использования HBRUSH можно воспользоваться готовой кистью, например, Cnavas.Brush.Handle. А можно через Апи создать новую кисть - CreateBrushIndirect. Короче бери все что я тут сказал и жми F1)))))) |
| Автор: B2_Russia 11.7.2003, 09:16 |
| По-моему, можно без GetDC() HDC есть практически у всего. Попробуй так: function FillRect(Canvas.Handle, rect; Canvas.Brush.Handle); Ну и для TextOut, чтото подобное. |
| Автор: &-ray 11.7.2003, 21:15 | ||||
| Зачем такие сложности Pakshin A. S. работает со следующими параметрами:
И именно такая структура передается, если работать через канву, т.е.
|