Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.07.07;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
1-20086
bmv
2003-06-23 13:18
2003.07.07
Загрузка большого объема данных


3-19950
NewD
2003-06-10 13:30
2003.07.07
Как через ADO установить связь с файлами FOXPRO и DBASE


1-20072
hex_for_delphi
2003-06-24 00:37
2003.07.07
как загружать из внешнего файла в масив и обратно.


14-20195
Lionzi
2003-06-21 09:47
2003.07.07
Определить, в поле edit число или нечто другое


3-19948
Chayan
2003-06-11 11:54
2003.07.07
Помогите выбрать сервер БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский