Эта процедура рисует на экране круг:
PROCEDURE DrawOnScreen;
VAR
A: hDC;
BEGIN
A := GetDC(0);
Ellipse(А, 0, 0, 200, 200);
ReleaseDC(0,А);
END;
Как задать цвет контура (penColor) и закраски (BrushColor) чтобы нарисовать красный круг.
Пробую вот так нарисовать красный прямоугольник:
PROCEDURE DrawOnScreen;
VAR A: hDC;
G: HBRUSH;
R : TRect;
BEGIN
A := GetDC(0);
SetDCBrushColor(A,clRed);
G := GetDCBrushColor(A);
r.left := 100;
r.top := 100;
r.right := 110;
r.bottom := 110;
Windows.FillREct(A,R,G);
ReleaseDC(0,А);
END;
Результат: прямоугольник рисуется, но всё равно белым цветом.
Установка цвета при рисовании на экране
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
Viktor Zull, код оформляется с помощью тега "CODE"
Код: Выделить всё
var
dc:hwnd;
p: HPEN; // Дескриптор пера
b: HBRUSH;
begin
dc:=GetDC(0);
SetTextColor(DC, RGB(255, 0, 255));
p:=CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
b:=CreateSolidBrush(RGB(0, 255, 255));
SelectObject(DC, p); // Привязываем созданное перо к контексту устройства
SelectObject(DC, b);
Ellipse(dc, 0, 0, 200, 200);
TextOut(dc, 75, 90, 'Привет',Length('Привет'));
ReleaseDC(0,dc);
DeleteDC(dc);
end;