Ellipse

  • Автор темы Автор темы Codekid
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
C

Codekid

Вот возник вопрос как поместить Ellipse на центр экрана, и сделать его красным...

var
screendc:hdc;
begin
screendc := getdc(0);
Ellipse(screendc,190,190,200, 200,);
releasedc(0,screendc);
end;


кто знает?plz help
 
В Delphi есть глобальная переменная Screen класса TScreen, а у этого класса есть свойства WorkAreaRect, ...Left, ...Top, ...Width, ...Height, показывающие рабочую область экрана. Так вот, пользуясь свойствами этой переменной можно определить центр экрана.
Для цвета - создаем кисть красного цвета функциеей CreateBrush, затем для контекста экрана выбираем эту кисть функцией SelectObject, после этого вызываем функцию Ellipse. После всего не забываем контексту экрана вернуть старую кисть и удалить созданную кисть.
 
вот возник новый вопрос:


begin
while true do
begin
SelectObject(ScreenDC,BrushHandle);
ScreenDC := GetDC(0);
PenHandle := CreatePen(PS_SOLID, 1, clRed);
OldPenHandle := SelectObject(ScreenDC, PenHandle);
Ellipse (screendc, 645,515,Screen.Width div 2,Screen.Height div 2);
ReleaseDC(0,ScreenDC);
sleep (10);

Во время работы гаснит красный цвет, и остается толка ellipse....
Почему? и как исправить чтобы цвет оставался а не терялся....
 
Zubr ты точно знаешь... :)
 
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
screendc:hdc;
PenHandle, OldPenHandle, OldBrush, BrushHandle:cardinal;
begin
while true do
begin
BrushHandle:=CreateSolidBrush(clRed);
ScreenDC := GetDC(0);
OldBrush:=SelectObject(ScreenDC,BrushHandle);
PenHandle := CreatePen(PS_SOLID, 1, clRed);
OldPenHandle := SelectObject(ScreenDC, PenHandle);
Ellipse (screendc, 645,515,Screen.Width div 2,Screen.Height div 2);
SelectObject(ScreenDC, OldBrush);
SelectObject(ScreenDC, OldPenHandle);
ReleaseDC(0,ScreenDC);
DeleteObject(BrushHandle);
DeleteObject(OldPenHandle);
sleep (10);
Application.ProcessMessages;
end;
end;
 
спасиба :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab