Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
Random Найти похожие ветки
← →
Hatchy (2003-06-20 13:36) [0]Создал .res файл с 20-ю картинками. Теперь ну жно сделать так чтобы при нажатии button из этого файла они прорисовывались (например в Canvas), но не по порядку а вразброс (Random) Можно ли это сделать? и не плохо бы было рассмотреть пример...
Во код просто грузить картинки из .res файла в canvas:
{$R MyPic.RES}
procedure LoadJPEGfromEXE;
var
MyJPG : TJPEGImage; // Объект - JPEG
ResStream : TResourceStream;
begin
try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream);
Canvas.Draw(12,12,MyJPG);
finally
MyJPG.Free;
ResStream.Free;
end;
end;
Может его как нибудь изменить?
← →
Alexxoft (2003-06-20 14:25) [1]
procedure LoadRandomJPEGfromEXE;
const cMaxJPGImages = 20;
var MyJPG: TJPEGImage;
ResStream: TResourceStream;
i: integer;
begin
i:=Random(cMaxJPGImages)+1;
MyJPG:=TJPEGImage.Create;
ResStream:=TResourceStream.CreateFromID(HInstance,1,RT_RCDATA);
Repeat
MyJPG.LoadFromStream(ResStream);
Dec(i)
Until i=0;
Canvas.Draw(12,12,MyJPG);
MyJPG.Free;
ResStream.Free
end;
← →
aleXXoft (2003-06-20 14:25) [2]
procedure LoadRandomJPEGfromEXE;
const cMaxJPGImages = 20;
var MyJPG: TJPEGImage;
ResStream: TResourceStream;
i: integer;
begin
i:=Random(cMaxJPGImages)+1;
MyJPG:=TJPEGImage.Create;
ResStream:=TResourceStream.CreateFromID(HInstance,1,RT_RCDATA);
Repeat
MyJPG.LoadFromStream(ResStream);
Dec(i)
Until i=0;
Canvas.Draw(12,12,MyJPG);
MyJPG.Free;
ResStream.Free
end;
← →
Hatchy (2003-06-20 15:10) [3]Если написать этот код в button1.click то получается следуеще:
При первом нажтие на кнопку рисуется картинка 1 Rcdata;
При втором нажатии ничего не меняется;
А при третьем нажатии вылетает ошибка :
Project project1.exe raised exception class EJPEG with message
"JPEG error #41".
Process stopped. Use step or Run to continue.
Что можно сделать?
← →
Hatchy (2003-06-21 07:03) [4]Так почему же все таки вылетает ошибка?
← →
aleXXoft (2003-06-21 08:36) [5]Удалено модератором
Примечание: Личная переписка
← →
aleXXoft (2003-06-21 11:36) [6]Удалено модератором
Примечание: Пререкания с модератором
← →
Hatchy (2003-06-21 11:49) [7]Удалено модератором
Примечание: Обсуждение действий модератора
← →
Hatchy (2003-06-21 12:06) [8]Так что с ошибкой то делать?
← →
aleXXoft (2003-06-21 12:29) [9]Удалено модератором
Примечание: Пререкания с модератором, при продолжении будет перевод в режим только чтение
← →
Hatchy (2003-06-21 12:31) [10]Удалено модератором
Примечание: Личная переписка
← →
aleXXoft (2003-06-21 12:34) [11]> Так что с ошибкой то делать?
Ещё раз (в связи с обстоятельствами) попрошу тебя выложить сюда содержимое твоего RC-файла, т.к. мне не достаточно ясно каким образом ты запихнул ЖПЕГи в ресурсы. Возможно, что я недостаточно ясно понял каким образом эти ЖПЕГи лежат у тебя в ресурсе, т.е. каким образом ты их в нём (ресурсе) идентифицируешь. Либо это у тебя один сплошной файл с ЖПЕГами, либо каждый ЖПЕГ у тебя лежит отдельно в секции RC_DATA.
С приветом, aleXXoft
← →
Hatchy (2003-06-21 12:41) [12]Я сейчас в чате... На счет файла: создал текстовый .rc после brcc32.exe MyPic.rc ---> Mypic.res
В текстовом фале 20 картинок:
1 RCDATA "Alsin.jpg"
2 RCDATA "Arium.jpg"
3 RCDATA "Ban2.jpg"
4 RCDATA "Baket.jpg"
5 RCDATA "Bole2.jpg"
6 RCDATA "Brus.jpg"
7 RCDATA "Bud.jpg"
.
.
.
20 RCDATA "Resk.jpg"
← →
Hatchy (2003-06-21 13:10) [13]Удалено модератором
Примечание: Личную переписку вести мимо форума
← →
aleXXoft (2003-06-21 13:22) [14]Вот поставь тогда это в свой кусок в то же место:
ResStream := TResourceStream.CreateFromID(HInstance, Random(20)+1, RT_RCDATA);
С приветом, aleXXoft
← →
aleXXoft (2003-06-21 13:34) [15]> Удалено модератором
> Примечание: Пререкания с модератором,
> при продолжении будет перевод в режим только чтение
Админу-ламеру:
Да плевать я хотел на твои замечания.
Если ты считаешь, что я БЫЛ НЕ ПРАВ, написав то, что написал в мессаге, которую ты удалил первой, посчитав, что в мессаге некая "личная переписка", то давай - делай РидОнли. Мне-то что. Я ведь тут вопросы не задаю и никогда не задавал.
А ещё делай мне РидОнли, если ты нифига не понял из предыдущего абзаца. Ибо находится на форуме, на котором Админ несколько туповат - мне нафик не надо.
NOTE BENE: Если бы ты не удалил мою первую мессагу, то разговор уже давно был бы закончен, а вопрос решён. Так что удалить надо бы тебя за встревание в разговор, который тебе не понятен. ;)
Ага, типа всего тебе хорошего и побольше мозгов на будущее.
P.S. Как я люблю поспорить с власть-придержащими... Кто бы знал! ;))))
← →
Hatchy (2003-06-21 13:41) [16]aleXXoft ладно не горячись, может ему делать больше нечего вот и удаляет... Кстати насчет вот этой сторки:
ResStream := TResourceStream.CreateFromID(HInstance, Random(20)+1, RT_RCDATA);
Ошибка вылетает таже самая ошибка только принажатии второй раз на кнопку...
← →
aleXXoft (2003-06-21 13:45) [17]> Ошибка вылетает таже самая ошибка
> только принажатии второй раз на кнопку
Забавно. Попробуй секцию в RC-файле замени на JPEG, а не RC_DATA, тогда вот так:
ResStream := TResourceStream.CreateFromID(HInstance, Random(20)+1,"JPEG");
← →
Hatchy (2003-06-21 13:49) [18]т.е
1 JPEG "Alsin.jpg"
2 JPEG "Arium.jpg"
3 JPEG "Ban2.jpg"
4 JPEG "Baket.jpg"
5 JPEG "Bole2.jpg"
6 JPEG "Brus.jpg"
7 JPEG "Bud.jpg"
так что ли?
← →
Hatchy (2003-06-21 13:50) [19]Ладно сейчас поробую...
← →
aleXXoft (2003-06-21 13:52) [20]Удалено модератором
← →
Hatchy (2003-06-21 13:56) [21]Удалено модератором
← →
Hatchy (2003-06-21 14:06) [22]Удалено модератором
Примечание: Опять личная переписка, предупреждений больше не будет
← →
aleXXoft (2003-06-21 14:19) [23]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.007 c