purebasic.info

PureBasic forum
Текущее время: Сб июн 23, 2018 10:15 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Ср май 12, 2010 10:15 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн апр 27, 2009 5:18 pm
Сообщений: 387
Откуда: Череповец, Вологодская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Привет всем! Можете подсказать, как правильно использовать функцию ExtractAssociatedIcon_()?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 12:13 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6314
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
ExtractAssociatedIcon - мутная она какая то, вот есть почти аналогично работает:

Код:
1
2
3
4
5
6
7
8
If OpenWindow(0, 0, 0, 300, 300, "Аssociated icon",  #PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
 
    file$ = "С:\WINDOWS\win.ini"
    SHGetFileInfo_(file$, 0, @sh.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_TYPENAME|#SHGFI_SHELLICONSIZE|#SHGFI_SYSICONINDEX|#SHGFI_DISPLAYNAME|#SHGFI_ICON);|#SHGFI_SMALLICON) или маленькая иконка
    ImageGadget(0, 0, 0, 64, 64, sh\hIcon)
    Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
 
EndIf


_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 12:21 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн апр 27, 2009 5:18 pm
Сообщений: 387
Откуда: Череповец, Вологодская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Огромное спасибо!!! Как раз то, что нужно!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 1:02 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6314
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Собственно и с ExtractAssociatedIcon разобрался, так что если надо то можно и это использовать.

Код:
1
2
3
4
5
6
7
8
9
10
If OpenWindow(0, 0, 0, 300, 300, "Аssociated icon",  #PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
file$ = "c:\WINDOWS\Паркет.bmp"
hInstance = GetModuleHandle_(0)
i=1
hIco=ExtractAssociatedIcon_(hInstance, @file$, @i)
ImageGadget(0, 0, 0, 64, 64,hIco )
CloseLibrary(0)
 Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
;  
 EndIf



А не получалось потому, что последний параметр записывал напрямую числом, а этой функции нужен указатель на переменную. В общем, пришлось читать инструкцию :D

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 1:14 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2275
Откуда: Russia — Belarus
Благодарил (а): 5 раз.
Поблагодарили: 71 раз.
Пункты репутации: 11
Удобнейшая функция! Можно смело писать какой-нибудь заменитель иконок...

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 1:31 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11194
Благодарил (а): 4 раз.
Поблагодарили: 417 раз.
kvitaliy писал(а):
CloseLibrary(0)
Это зачем?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 1:45 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6314
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Пётр писал(а):
Это зачем?


Рудимент, остался от пробного кода -

Код:
1
2
3
4
OpenLibrary(0,"shell32.dll")
hInstance = GetModuleHandle_(0)
i=1
hIco=CallFunction(0,"ExtractAssociatedIconA",hInstance, @file$, @i)



Люблю эксперименты с исходным материалом :)

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 1:54 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11194
Благодарил (а): 4 раз.
Поблагодарили: 417 раз.
kvitaliy писал(а):
CallFunction
в 4.4х эта функция глючит! :(

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 2:24 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн апр 27, 2009 5:18 pm
Сообщений: 387
Откуда: Череповец, Вологодская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Собственно и с ExtractAssociatedIcon разобрался, так что если надо то можно и это использовать.

Объясните пожалуйста, зачем ставить @ перед переменными? И чем отличаются та функция, которую вы мне в первый раз предложили от этой?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 2:56 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11194
Благодарил (а): 4 раз.
Поблагодарили: 417 раз.
BaCo писал(а):
Объясните пожалуйста, зачем ставить @ перед переменными
Чтобы получить указатель на неё, т. к. в данном случае, нужны не данные из переменной а адрес переменной в памяти компа.
Вот читай http://pure-basic.narod.ru/docs/point.html

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 12, 2010 3:09 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн апр 27, 2009 5:18 pm
Сообщений: 387
Откуда: Череповец, Вологодская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Цитата:
Чтобы получить указатель на неё

Понятно. Спасибо!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 06, 2018 11:52 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 624
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
BaCo писал(а):
А не получалось потому, что последний параметр записывал напрямую числом, а этой функции нужен указатель на переменную. В общем, пришлось читать инструкцию :D

ага, Соковников такого понаписал, у меня не получилось дешефрировать его перевод :D
тоже напрямую индекс нужной иконки давал :(


а как получить саму картинку чтобы работать с ней средствами РВ? ибо РВ ругается на то что функция возвращает


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 06, 2018 1:10 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6314
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
newJS писал(а):
а как получить саму картинку чтобы работать с ней средствами РВ? ибо РВ ругается на то что функция возвращает


Возвращается ImageID.
Создай сам картинку и нарисуй на ней это изображение.
Код:
1
2
3
4
5
 
CreateImage(0,64,64,32,#PB_Image_Transparent )
StartDrawing( ImageOutput(0))
DrawImage(hIco,0,0)
StopDrawing()


_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср мар 07, 2018 2:57 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 624
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Возвращается ImageID.
Создай сам картинку и нарисуй на ней это изображение.

А размеры откуда взять? размеры полученной картинки из ExtractAssociatedIcon_()

и растолкуй как этим воспользоваться в данном случае
StretchBlt_()
не могу понять что ей надо, всегда ноль возвращает


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср мар 07, 2018 1:26 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11194
Благодарил (а): 4 раз.
Поблагодарили: 417 раз.
newJS писал(а):
не могу понять что ей надо, всегда ноль возвращает
GetLastError_()

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB