Как поменять иконку и стpокy в заголовке консольного окна
Бил Гейтс, когда стал самым богатым человеком в мире, подумал: "На все воля Божья. Я никогда бы не разбогател, если бы Он этого не хотел. Надо как-то отблагодарить."
Билли построил огромный храм, зажег в нем миллион свечей, вошел и молится:
- Господи, спасибо тебе за все. Не зачти за дерзость господи, но я хочу выразить тебе свою признательность и приглашаю тебя на игру в гольф в это воскресенье.
У видел Иисус это фейерверк, услышал молитву, понял, что уважают и решил прийти.
Играю они, значит, в гольф.
Иисус бьет по мячу, мяч летит и зависает прямо над центром лунки. Иисус бьет по второму - тот летит и зависает прямо над центром лунки. Иисус бьет по третьему - тоже самое. Он оборачивается к Гейтсу и говорит:
- Билли, а другого бета-тестера для своих глючных мячей ты подыскать не мог?
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
AIcon: TIcon;
begin
AllocConsole;
SetConsoleTitle(PChar('Console Title'));
Sleep(0);
h := FindWindow(nil, PChar('Console Title'));
AIcon := TIcon.Create;
ImageList1.GetIcon(0, AIcon);
SendMessage(h, WM_SETICON, 1, AIcon.Handle);
AIcon.Free;
end;
Рассказ о Билле Гейтсе и Иисусе, играющих в гольф!
Теперь давайте поговорим об изменении иконки и заголовка консольного окна.
Код, который я предоставил, настраивает консольное окно с заголовком "Console Title" с помощью функции SetConsoleTitle из Windows API. Для изменения иконки, связанной с этим консольным окном, можно использовать функцию SendMessage, отправляя сообщение WM_SETICON в handle окна (h) и передавая handle иконки (AIcon.Handle) как аргумент.
Вот модифицированная версия вашего кода, которая изменяет иконку:
procedureTForm1.Button1Click(Sender:TObject);varh:HWND;AIcon:TIcon;beginAllocConsole;SetConsoleTitle(PChar('Новый заголовок консоли'));Sleep(0);h:=FindWindow(nil,PChar('Новый заголовок консоли'));AIcon:=TIcon.Create;ImageList1.GetIcon(0,AIcon);// Замените на индекс иконки, который вам нуженSendMessage(h,WM_SETICON,1,AIcon.Handle);AIcon.Free;end;
В этом коде:
Используется функция SetConsoleTitle для изменения заголовка консольного окна.
Функция FindWindow используется для поиска handle (h) консольного окна с новым заголовком.
Создается экземпляр класса TIcon и заряжается иконкой из вашего списка изображений с помощью метода GetIcon.
Функция SendMessage отправляет сообщение WM_SETICON в handle окна, устанавливая иконку для этого окна.
Помните заменить ImageList1.GetIcon(0, AIcon) на индекс иконки, который вам нужен, если это не 0.
В этой статье описывается, как изменить иконку и текст в заголовке консольного окна с помощью программирования на Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.