Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Здесь был Я

Delphi , Графика и Игры , Компоненты и Графика

Здесь был Я

Автор: HuNtEr

Письмо пользователя в группу технической поддержки сетевой игры "Квейк": "Я нашел глюк. Прямо посреди сцены во время игры постоянно зависают пять ботов." Ответ группы поддержки: "Это не глюк. Это не зависают пять ботов, это играет команда финов."

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

  • Добавляем своё имя в System Tray (рядом с часами)

program Name_in_tray;

{$APPTYPE CONSOLE}
uses
  registry, windows;

procedure name_in_tray;
const
  name = 'Delphi World'; // Указываем своё имя или какое-либо слово
var
  reg: tregistry;
begin
  reg:=tregistry.Create;
  reg.RootKey:=HKEY_CURRENT_USER;
  reg.OpenKey('Control Panel\International',true);
  reg.WriteString('s1159',name);
  reg.WriteString('s2359',name);
  reg.WriteString('sTimeFormat','HH:mm:ss tt');
  reg.CloseKey;
end;

begin
  name_in_tray;
end.

  • Пишем на кнопке Пуск

program Name_on_pusk;

{$APPTYPE CONSOLE}

uses
  windows;

procedure name_on_pusk;
const
  name='Delphi World';
var
  h, h1: hwnd;
begin
  h := findwindow('Shell_TrayWnd', nil);
  h1 := findwindowex(h, 0, 'Button', nil);
  setwindowtext(h1, name);
end;

begin
  name_on_pusk;
end.

  • Рисуем прямо по экрану (поверх всех окон)

program Name_on_screen;

{$APPTYPE CONSOLE}

uses
  windows, graphics;

procedure Name_on_screen;
const
  name='Delphi World';
var
  ScreenDC: hDC;
begin
  ScreenDC := GetDC(0);
  settextcolor(screendc,clred); // Устанавливаем цвет текста, в данном случае
  // clRed - красный.
  SetBkMode(screendc, TRANSPARENT); // Рисуем на прозрачном фоне,
  // без этой строчки фон - белый.
  textout(screendc,0,0,name,6); // Устанавливаем координаты вывода и длину
  // строки (в нашем случае - 6 символов)
  ReleaseDC(0,ScreenDC);
end;

begin
  name_on_screen;
end.

Надеюсь, кому-то это пригодиться, хотя бы ради развлечения =). Но смотрите - не перетрудитесь!

Программист-энтузиаст Delphi!

В предоставленном коде представлены три программы, демонстрирующие различные способы отображения имени автора на системе Windows.

Программа 1: Имя в системной панели (Name_in_tray.pas) Эта программа добавляет имя автора в системную панель (рядом с часами). Она использует API регистра для хранения и извлечения имени. Процедура name_in_tray создает ключ регистра, записывает туда имя, и настраивает формат времени.

Программа 2: Имя на кнопке "Пуск" (Name_on_pusk.pas) Эта программа отображает имя автора на кнопке "Пуск". Она использует Windows API для поиска handle окна системной панели, находит кнопку с текстом "Button", и изменяет ее текст на имя автора.

Программа 3: Имя на экране (Name_on_screen.pas) Эта программа рисует имя автора прямо на экран (над всеми окнами). Она использует Graphics API для создания DC (Device Context), настраивает цвет текста, режим фона и координаты для рисования текста. Процедура name_on_screen затем освобождает DC.

Код прост и структурирован, с четкими объявлениями переменных и компактными процедурами. Однако, у меня есть некоторые предложения по улучшению:

  1. Рассмотрите использование более надежного способа хранения и извлечения имени, например, использования файла INI или базы данных.
  2. Для программы 2 не рекомендуется напрямую модифицировать окно системной панели. Вместо этого вы можете создать свой собственный кастомный иконку трея.
  3. В программе 3 вам может быть полезно использовать более точный способ определения координат экрана, особенно если вы планируете запускать эту программу на различных системах с разными разрешениями.

В целом, эти программы демонстрируют некоторые интересные техники для отображения текста на системе Windows. Хотя они могут не быть готовыми к производству кодом, они могут служить хорошим стартовым пунктом для исследования Delphi-программирования и функциональности Windows API.

Автор статьи рассказывает о привычке людей оставлять свои автографы и делает попытку оставить свой след в компьютерном варианте, предложив несколько программ на языке Delphi для добавления имени в системный трей, кнопку Пуск и рисование текста прямо по эк


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Компоненты и Графика ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-02 22:01:55/0.0037229061126709/0