Ellipse

Тема в разделе "Delphi - Система", создана пользователем Codekid, 17 янв 2007.

Статус темы:
Закрыта.
  1. Codekid

    Codekid Гость

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

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


    кто знает?plz help
     
  2. zubr

    zubr Гость

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

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

    Codekid Гость

    Zubr ты точно знаешь... :)
     
  5. zubr

    zubr Гость

    Код (Text):
    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;
     
  6. Codekid

    Codekid Гость

    спасиба :)
     
Статус темы:
Закрыта.

Поделиться этой страницей