Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2019, 09:50
Maetsky Maetsky вне форума
Прохожий
 
Регистрация: 06.11.2018
Сообщения: 8
Версия Delphi: Delphi 2009
Репутация: 10
По умолчанию Очистить экран после вывода текста на Канве

Код:
procedure DrawOnScreen(const S: string);
var
  DC: HDC;
  Canvas: TCanvas;
  X, Y: Integer;
begin
  DC := GetDC(0);
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := DC;
    Canvas.Brush.Style := bsClear;
    with Canvas.Font do
    begin
      Name := 'Times New Roman';
      Size := 50;
      Color := clRed;
    end;
    X := (GetSystemMetrics(SM_CXSCREEN) - Canvas.TextWidth(S)) div 2;
    Y := (GetSystemMetrics(SM_CYSCREEN) - Canvas.TextHeight(S)) div 2;
    Canvas.TextOut(x, y, S);
  finally
    ReleaseDC(0,DC);
    Canvas.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DrawOnScreen('Сообщение на экране');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
RedrawWindow(GetDesktopWindow,nil,0,RDW_INVALIDATE + RDW_UPDATENOW + RDW_ALLCHILDREN);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
RedrawWindow(GetDesktopWindow, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_UPDATENOW or RDW_ALLCHILDREN or RDW_FRAME);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
InvalidateRect(0,0,false);
InvalidateRect(0,0,true);
end;

Нюансы работы:
1. Текст выводится в чёрном прямоугольнике, а хотелось бы, чтобы фон текста отсутствовал, т.е. чёрного прямоугольника не было.
2. При нажатии на Button2 и Button3 текст не исчезает, хотя должен бы. При нажатии на Button4 - исчезает, но:
3. При выводе другого текста, он отображается наложением на старый.

Почему не стирается предыдущий текст и как избавиться от чёрного прямоугольника вокруг текста? Операционные Vista и Win7.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter