Добрый день! Подскажите пожалуйсто модуль для работы с bmp, или продцедуру вывода на экран bmp файла известного размера и битности цвета(скорость не критична, поэтому если можно на Pascale, без вставок asm). Большое спасибо.
Добрый день, WinN! Вот статеечка по этому поводу, как Вы просили, без асма :) http://pascal.sources.ru/articles/099.htm
Ответ отправлен: 30.01.2004, 04:51 Отправитель: sir henry Отвечает Boriss
Приветствую Вас, WinN! Есть например, (не проверял, правда, как работает): http://pascal.sources.ru/graph/bmp2pas.htm http://www.karatetski.narod.ru/pascal/sources/BMP.ZIP http://psc.h11.ru/text/sprite4.shtml Ответ отправлен: 30.01.2004, 15:58 Отправитель: Boriss Отвечает Pawel
Доброе время суток, WinN! Поищите на http://pascal.sources.ru Ответ отправлен: 30.01.2004, 18:51 Отправитель: Pawel Отвечает Strory
Добрый день, WinN! Стандартного модуля или процедуры для этих целей нет (к сожалению). Да и просто процедурой Вам, думаю, не обойтись. Нужен ещё модуль для VESA режима, и т.д. и т.п. ИМХО, лучше всего, если Вы посмотрите всё что Вам нужно на http://pascal.sources.ru/ Там есть и модуль для работы с VESA режимом и исходники просмотрщиков BMP'шек и GIF'ов. Думаю и для Вас это будет удобнее. Удачи :) Ответ отправлен: 30.01.2004, 19:20 Отправитель: Strory
Вопрос № 409
Здравствуйте, уважаемые эксперты ! Сейчас пишу программу на Делфи и возник чисто Паскалевский вопрос. Как создать массив чисел размером, который пользователь укажет во время выполнения программы. Чтобы было понятно, мне нужно создать массив чисел, а размерность массива должна быть равна числу записей в БД. А как известно число записей БД величина переменная и доступна только для чтения во время выполнения программы.
Приветствую Вас, Sergey N.! Для дельфи: var mas:array of integer; {объявление массива переменной длинны} Далее, в тексте программы: SetLength(Mas,NewSize); Где NewSize - нужное количество элементов. Для многомерных массивов: Var mas:array of array of byte; mas2:array of array of array of Integer; и т.д. SetLength(mas,NewSize); SetLength(mas[0]),100); SetLength(mas[1],200); и т.д. Урезать массив можно также: SetLength(Mas,NewSize-100); Хотя Borland советует использовать Copy. Ответ отправлен: 30.01.2004, 16:36 Отправитель: Vitally Отвечает sir henry
Добрый день, Sergey N.! Если Вы программируете на Дельфи, то нет ничего проще: var my_array: array of любой_тип; {Объявление безразмерного массива} Begin {Выделение памяти под массив} SetLength(my_array, величина); End; Ответ отправлен: 31.01.2004, 04:00 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, Sergey N.! Это называется динамический массив. Var mas:array of integer; длину не указываем Чтобы установить длинну вызываем SetLength(Mas,size); Ответ отправлен: 30.01.2004, 18:47 Отправитель: Pawel Отвечает samum2000
Добрый день, Sergey N.! На самом деле вопрос чисто дельфийский, если так можно выразиться. При написании подобных программ на паскале возникали серьезные трудности, приходилось работать с динамической памятью и т.п. (см. ответы на вопросы 318, 325). В Delphi все гораздо проще. В определении переменных пишите a: array of integer; Это создаст динамический массив. Далее при помощи функции setlength(dynarray, length) задаете длинну массива, и в дальнейшем её можно использовать для увеличения массива. Только тут надо иметь ввиду такую особенность - массив начинается с нулевого элемента, т.е. если напишешь setlength(a,5), то обращение a[5] вызовет ошибку (элементы 0, 1, 2, 3, 4 - 5 нет). Попутного ветра! Ответ отправлен: 02.02.2004, 08:21 Отправитель: samum2000 Отвечает Boriss
Доброе время суток, Sergey N.! Ну так Вы пишете в Delphi - а там динамические массивы поддерживаются, так что эта "паскалевская" проблема там не существует
Приложение: Ответ отправлен: 30.01.2004, 15:05 Отправитель: Boriss Отвечает Strory
Приветствую Вас, Sergey N.! Если я Вас правильно понял, Вам нужно создать одномерный динамический массив. Если так, то проблема решается созданием указателя на одномерный массив. Например, как в приложении. А вообще, чтобы всё хорошо понять, нужно вплотную заняться указателями. Удачи :)
Приложение: Ответ отправлен: 30.01.2004, 19:20 Отправитель: Strory
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.