• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Ellipse

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

Codekid

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

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


кто знает?plz help
 
Z

zubr

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

Codekid

вот возник новый вопрос:


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....
Почему? и как исправить чтобы цвет оставался а не терялся....
 
Z

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;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!