Что нового

как вставить картинку в окно программы?

agikon

Знающий
Сообщения
789
Репутация
16
можно ли такое сделать?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
спасибо прочитал. много чего понял. понял что легче всего пихать битмапы. но так и не понял как именно то пихать. Через AutoIt3Wrapper? так а как именно там выбирать и центрировать картинку в нужное место?

там пишется что можно добавить и resoursehacker но нет самого механизма как именно добавить, кто его знает глаза разбегаются.

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

ну от запустил AutoIt3Wrapper и куда тут картинку загружать? http://s4.postimage.org/54cr8h1f4/sss.jpg
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
agikon, я бы разделил работу с ресурсами на два этапа: добавление ресурсов в исполняемый файл и непосредственно их использование в ходе выполнения программы. На каком этапе у вас возникли проблемы?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
пока что я не понял самого механизма добавления в исполняемый файл. не пойму с чего даже начать. есть скрипт, есть картинка а как запихнуть кто его знает.
не плохо если бы ктото написал хотябы краткий алгоритм действий.

например:
1)запустить того
2)выбрать тото
3) и т.д

или с картинкой так не прокатит? сложнее видать намного?
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
Код:
#AutoIt3Wrapper_Res_File_Add=image3.jpg, rt_rcdata, TEST_JPG_1 ;Пихаем картинку

#include "resources.au3"
 
$gui = GUICreate("Data from resources simple example 1",400,150)
$pic1 = GUICtrlCreatePic("",0,0,400,150)
_ResourceSetImageToCtrl($pic1, "TEST_JPG_1") ;Ставим картинку в контрол
GUISetState(@SW_SHOW)

While 1
 If GUIGetMsg() = -3 Then Exit
WEnd


resources.au3 можно скачать тут.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
agikon

Ресурсы добавляются в программу на стадии ее компилирования (точнее после компиляции). Если вы используете полную версию SciTE, то для компиляции вашего скрипта в исполняемый файл (.exe) достаточно нажать в редакторе F7 или Tools - Build. Если используется урезанная версия SciTE (идет в одном дистрибутиве с AutoIt), то необходимо дополнительно скачать AutoIt3Wrapper и компилировать скрипт именно через эту утилиту, а не через F7, как в первом случае.

Все строки в скрипте, которые начинаются с #AutoIt3Wrapper..., являются командами (директивами) для AutoIt3Wrapper'а и никоем образом не влияют на сам код программы. Как правило, они записываются в самом начале скрипта. В данном случае, следующая директива указывает компилятору на то, что необходимо поместить в исполняемый файл картинку CrashXP.bmp (именно .bmp, т.е. битмап). Цифра 2 означает стандартный тип ресурсов для битмапов, т.е. в него можно помещать только .bmp или .dib (.jpeg или .png уже не получится). MY_IMAGE - произвольное название, по которому вы будите обращаться к вашей картинке во время выполнения программы.

Код:
#AutoIt3Wrapper_Res_File_Add=CrashXP.bmp, 2, MY_IMAGE


Теперь вы можете открыть полученный .exe в любом редакторе ресурсов и увидите вашу картинку в секции BITMAP\MY_IMAGE.

Это есть первый этап. Так понятно?



Добавлено:
Сообщение автоматически объединено:

Естественно, все вышесказанное можно проделать и в самом редакторе ресурсов. Создайте новую секцию типа "BITMAP" и перетащите в нее вашу картинку (.bmp). После чего сохраните изменения.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
вот вы Zaramot написали что надо пихнуть картинку в #AutoIt3Wrapper_Res_File_Add=image3.jpg, rt_rcdata, TEST_JPG_1 ;Пихаем картинку
А как же компилятор узнает путь этой картинки? если например картинка лежит по пути C:\Documents and Settings\Admin\Рабочий стол\00\картинка.jpg ?
Где путь до картинки прописывать?


Yashied
спасибо за ссылки поставил полную версию 3,3,6,1
но вопрос тот же, через какое менню загружать картинку? как назначать ей координаты в окне?это ж кому то все равно надо делать, сама ж картинка только от моего хотения не станет в том месте где я хочу :smile:
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
А как же компилятор узнает путь этой картинки? если например картинка лежит по пути C:\Documents and Settings\Admin\Рабочий стол\00\картинка.jpg ?
Где путь до картинки прописывать?
Код:
#AutoIt3Wrapper_Res_File_Add=C:\Documents and Settings\Admin\Рабочий стол\00\картинка.jpg, rt_rcdata, TEST_JPG_1 ;Пихаем картинку


Для компиляции используй AutoIt3Wrapper, а не Aut2Exe.

P.S. Проверил у себя, на Windows XP SP3 - Работает :smile:
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
а как скомпилировать через AutoIt3Wrapper?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
вот посмотрите видео и скажите чего я не так делаю, почему картинка не вшивается в окно программы?
http://zalil.ru/31547066
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
У тебя получилось так:
Код:
#AutoIt3Wrapper_Res_File_Add=C:\Documents and Settings\Admin\Рабочий стол\00.bmp
;...


ты забыл про:
1) название раздела (rt_rcdata).
2) название ресурса (TEST_JPG_1).

и по этому функция
Код:
_ResourceSetImageToCtrl($pic1, "TEST_JPG_1") ;Ставим картинку в контрол

не вставит картинку в контрол ($pic1), так как не найдёт ресурс.

Ты должен дописать то что ты забыл, должно получится так:
Код:
#AutoIt3Wrapper_Res_File_Add=C:\Documents and Settings\Admin\Рабочий стол\00.bmp, rt_rcdata, TEST_JPG_1
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
Zaramot спасибо действительно дописал и сразу картинка вставилась :smile:
спасибо всем за помощь.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
ребята вот в некоторых скриптах выскакивают такие ошибки http://postimage.org/image/1v5tmlxlw/

воде ж и делаю всё абсолютно идентично, инклуды, записи всё не забываю но вот от чего оно бывает такое, может кто сталкивался?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
agikon,
1. Я бы Вам советовал прислушаться к советам Yashied`а.
2. Если Вы все-таки решите использовать resources.au3. Она была написана достаточно давно и глобальные константы, объявленные в ней, дублируются в APIConstants.au3 (если она у Вас есть, а, судя по ошибкам, она у Вас есть). В этом случае используйте прикрепленный вариант.

Я поменял прикрепленный файл на самый свежий.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
мадмаслес, спасибо поменял на ваш и действительно ошибок поменьшало, а те ошибки которые остались вели на некоторые записи в коде, которые я отключил и теперь всё нормально. Спасибо а то я вообще не мог понять в чем дело. спасибо.
 
Верх