Назначить значок окну

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Назначить значок окну

Сообщение Сквозняк »

Есть поток, он создаёт окна, можно ли приделать к ним значок из файла?
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Что значит "окна" - формы? У каждой формы есть свойство icon. Назначать его динамически создаваемым формам удобнее из ресурсов, код легко найти в интернете.
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

>Что значит "окна" - формы?

Если бы вопрос был про лазарусные окна, то и задавал бы их в теме про лазарус. Выходит так, что у окна сделанном в лазарусе значок есть, а у окна создаваемом в другом потоке не лазарусом значок а системный, лазарусный на него не перелезает.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Для винды копай в сторону LoadIcon() и ищи начиная оттуда.
Как-то иконка пристёгивается, но надо либо вшивать в екзешник как ресурс, либо такие танцы с бубном, что я не осилил. Я вшиваю через .rc файл, а потом один раз прописываю через LoadIcon() при создании класса окна.
По линуксам - не знаю.

Код: Выделить всё

    ZeroMemory(@wndClass, SizeOf(wndClass));
    with wndClass do begin
      style         :=    CS_OWNDC; 
      lpfnWndProc   := @WndProc;
      hInstance := system.HInstance;
      lpszClassName := PAnsiChar(s);
      hIcon:= LoadIcon(system.HInstance, PAnsiChar('MAINICON'));
    end;
    if (0 = RegisterClass(wndClass)) then Die('RegisterClass() returned 0');     
Ответить