Уважаемые эксперты! В паскале есть ограничение на функцию GetMem(); зарезервировать можно только 64Kb. Соответственно весь экран 1024х768х256 сохранить с помощью GetImage() не получается. Не подскажите ли решение такой проблемы? Спасибо.
Приветствую Вас, =FeanaR=! Получится! Если слегка постараться и разбить "большой" участок экрана, который "не помещается" в 64 Кб на несколько более маленьких. Думаю, что это не сильно усложнит алгоритм (хотя, я же его не видел). А Вы что решили за два дня написать супер-пупер графический редактор? :) Ответ отправлен: 27.03.2004, 06:43 Отправитель: Strory Отвечает Boriss
Доброе время суток, =FeanaR=! Объявите массив [1..12] указателей - и все Ответ отправлен: 27.03.2004, 09:06 Отправитель: Boriss Отвечает vitya
Приветствую Вас, =FeanaR=! По кусочкам. В мозаику сложи картинку. Ответ отправлен: 27.03.2004, 09:52 Отправитель: vitya Отвечает sir henry
Добрый день, =FeanaR=! А Вы на FreePascal перейти не хотите? Там это и многие дурацкие ограничения сняты. Ответ отправлен: 27.03.2004, 10:24 Отправитель: sir henry Отвечает Pawel
Здравствуйте, =FeanaR=! По частям сохраняй, или используй встроенный asm Ответ отправлен: 28.03.2004, 12:50 Отправитель: Pawel Отвечает samum2000
Приветствую вас,=FeanaR=! Разбивай на несколько блоков по 64Kb -------------------------- -=Experts helper: testmode=- Ответ отправлен: 29.03.2004, 11:43 Отправитель: samum2000 Отвечает Ayl
Приветствую Вас, =FeanaR=! Самое простое - сохраняй по частям. Высчитай, чему равен размер окна, который "влезает" в 64К и сохраняй экран такими окнами. Т.к. размер всего экрана равен 786432 байт, то сохранить весь экран в памяти у тебя, скорее всего, не получится (по крайней мере, в нижней памяти - точно). Поэтому придется сбрасывать на диск. Потом нужно будет только корректно восстановить.
Ответ отправлен: 29.03.2004, 17:44 Отправитель: Ayl
Вопрос № 446
Думаю, я вас уже достал =). Но мне в самом деле очень нужно и срочно. Скажите, пожалуйста, можно ли в Pascal изменять количество ячеек массива во время выполнения программы? Тип массива - array [0..10, 0..10]of byte . Большое спасибо.
Доброе время суток, =FeanaR=! Ну и вопрос. Ведь вы же при описании массива указываете его размер. И как вы собираетесь его менять, а?
Ответ отправлен: 26.03.2004, 21:52 Отправитель: Grand Отвечает Strory
Здравствуйте, =FeanaR=! Ну, если только этот массив динамический... Но динамические массивы стандартный Паскаль не поддерживает, поэтому придётся Вам его сделать самому. Пример приводить не буду, т.к. вопрос уже настолько изъезжен, что подписчиков уже, наверное, мутит при одном лишь упоминании о массивах и их "динамичности". Поэтому, если сами не найдёте, то пишите мне на mailto:strory@newmail.ru Ответ отправлен: 27.03.2004, 06:36 Отправитель: Strory Отвечает Boriss
Доброе время суток, =FeanaR=! :)) Нет не достали. Даже приятно, что можно кому-то помочь... Нет нельзя, но вот передавать подпрограмме массив неопределенной длины можно О том, как решать такую проблему я писал в рассылке, статью можно найти по адресу http://www.borlpasc.narod.ru/Boris/1.htm Ответ отправлен: 27.03.2004, 09:10 Отправитель: Boriss Отвечает vitya
Приветствую Вас, =FeanaR=! нет нельзя. Ответ отправлен: 27.03.2004, 09:51 Отправитель: vitya Отвечает sir henry
Добрый день, =FeanaR=! Можно. Только Вам для этого придется воспользоваться объектом TCollection. Напрямую Паскаль динамические массивы не поддерживает. Ответ отправлен: 27.03.2004, 10:23 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, =FeanaR=! В стандортном нельзя. Ответ отправлен: 28.03.2004, 12:54 Отправитель: Pawel Отвечает samum2000
Приветствую вас,=FeanaR=! Нет. Так просто не получиться. Надо использовать динамическую память и индексную арифметику. Т.е. у тебя есть указатель, который ссылается на начало массива, за ним ты резервируешь необходимый в данный момент объем памяти. -------------------------- -=Experts helper: testmode=- Ответ отправлен: 29.03.2004, 11:42 Отправитель: samum2000
Вопрос № 447
Прошу прощения, но это опять я. =) Как можно преобразовать integer в string. Сколько в Сети не искал, а ничего толкового не нашёл. Заранее большое спасибо!
Здравствуйте, =FeanaR=! В сети можно было и не искать. Для этого есть встроенная процедура: Str(var число:количество_знаков:знаков_после_запятой, var строка); Ответ отправлен: 27.03.2004, 10:45 Отправитель: sir henry Отвечает Vitally
Доброе время суток, =FeanaR=! В приложении програмка из стандартной Борландовской справки.
Приложение: Ответ отправлен: 29.03.2004, 21:49 Отправитель: Vitally Отвечает Strory
Приветствую Вас, =FeanaR=! Integer в String: Procedure Str(N: integer; S: String); String в Integer: Procedure Val(S: String; N: integer; C: Code); Скажите, а Вы вообще, когда-нибудь спите? :) Про процедуры эти написано в хелпе, а в сети нет, потому что это само собой разумеется знать... Ответ отправлен: 27.03.2004, 06:30 Отправитель: Strory Отвечает Boriss
Здравствуйте, =FeanaR=! Проще было посмотреть в учебнике (на www.turbopascal.tk) они есть в электронном виде. Про толковое в сети - не понятно.. А преобразует Str - как пользоваться, есть стандарный пример. То есть пишете Str, наводите курсор на ..., и жмете Crt+F1 - внизу "ссылка" на пример Ответ отправлен: 27.03.2004, 09:12 Отправитель: Boriss Отвечает Dark_Lord
Здравствуйте, =FeanaR=! integer to string str(integer___,string___); string to integer val(string__,integer__); Ответ отправлен: 27.03.2004, 17:49 Отправитель: VOVAN Отвечает Pawel
Добрый день, =FeanaR=! Процедура Str(integer,string) Ответ отправлен: 28.03.2004, 12:55 Отправитель: Pawel Отвечает samum2000
Приветствую вас,=FeanaR=! Integer в string: Str(myint,mystring); -------------------------- -=Experts helper: testmode=- Ответ отправлен: 29.03.2004, 11:42 Отправитель: samum2000
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.