1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 
4. НЕ используйте форум для личного общения! 
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел! 
![]() ![]()  | 
	
| kornet | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация:    -1           	 | 
       
			
			 Здравствуйте! Можно ли как то с помощью процедур Паскаля или ассемблера в текстовом режиме скопировать часть экрана и сохранить её (в графического режиме для этого существует процедура GetImage из модуля Graph)? Заранее спасибо за ответ. 
			
			
					
		 | 
	
| klem4 | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
        	
        		![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация:    44           	 | 
       
			
			 Используй видеопамять. 
			
			-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";' 
					
		 | 
	
| Гость | 
                        
			
			  
			
				 Сообщение
					#3				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Используй видеопамять. Спасибо. Я нашёл на форуме несколько тем по поводу использования видеопамяти, но такой способ не работает во FreePascal'e. type bytear = array [1..4000] of byte;- не компилируется, компилятор выдает ошибку <Syntax Error, ";" expected but ":" found >. Вопрос: как обратиться к видеопамяти с помощью FreePascal?  | 
	
| volvo | 
                        
			
			  
			
				 Сообщение
					#4				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Используя Go32V2 DOSExtender. Иначе FPC не воспринимает привязку Absolute к адресу в памяти, только к другой переменной... 
			
			
					
		Сообщение отредактировано: volvo -  | 
	
| klem4 | 
                        
			
			  
			
				 Сообщение
					#5				
			 
		 | 
	
        	
        		![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация:    44           	 | 
       
			
			 kornet 
			
			Советую покапаться в rtl.pdf, вот что я смог вынести из копания за пару минут: 
 Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";' 
					
		 | 
	
| volvo | 
                        
			
			  
			
				 Сообщение
					#6				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Кстати, kornet, ты в программе Crt используешь? А то Video можно применять только тогда, когда не используется Crt, иначе будут глюки...   
			
			
					
		 | 
	
| kornet | 
                        
			
			  
			
				 Сообщение
					#7				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация:    -1           	 | 
       
			
			 Цитата(volvo) Используя Go32V2 DOSExtender. Иначе FPC не воспринимает привязку Absolute к адресу в памяти, только к другой переменной... Не хочет компилировать в режиме Go32V2 DOSExtender. Жалуется на то, что не может найти модуль System.ppu, хотя он есть в папке FPC\2.2.0\units\i386-win32\rtl и в Directories этот адрес указан. Пишет : PPU Loading D:\FPC\2.2.0\units\rtl\System.ppu. PPU is compiled for other target. test2.pas(1,1) Fatal: Can't find unit System used by program; Цитата(klem4) kornet Советую покапаться в rtl.pdf, вот что я смог вынести из копания за пару минут: Спасибо, почитаю. Этот способ работает. Цитата(volvo) Кстати, kornet, ты в программе Crt используешь? А то Video можно применять только тогда, когда не используется Crt, иначе будут глюки...  Вообще то я хочу разработать несколько объектов окон(типа тех, что во FreePascal), чтобы их можно было передвигать, изменять их размеры, закрывать и т.д., для использования в других программах. Для этого, мне и надо, чтобы можно было сохранять часть экрана - для того, чтобы запоминать то, что находится под окном.  | 
	
| andriano | 
                        
			
			  
			
				 Сообщение
					#8				
			 
		 | 
	
| 
        	
        		 Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация:    28           	 | 
       |
| kornet | 
                        
			
			  
			
				 Сообщение
					#9				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация:    -1           	 | 
       
			
			 Цитата(andriano) По сути дела ты ручками сделаешь то, что за тебя делает Go32V2. Вопрос в том, как сделать так, чтобы FreePascal компилировал в этом режиме? Кидал модуль system.ppu в разные папки, все равно компилятор пишет ту же ошибку, о которой я писал в своём предыдущем посте. | 
	
| andriano | 
                        
			
			  
			
				 Сообщение
					#10				
			 
		 | 
	
| 
        	
        		 Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация:    28           	 | 
       
			
			 Вопрос в том, как сделать так, чтобы FreePascal компилировал в этом режиме? Кидал модуль system.ppu в разные папки, все равно компилятор пишет ту же ошибку, о которой я писал в своём предыдущем посте. Нет, сервис DPMI позволяет 32-разрядным программам DOS работать с нижней памятью вообще (например, со звуковым буфером или прерываниями, использующими память, такие как сервис VESA) и видеопамятью в частности. Директива absolute, естественно, при этом работать не будет. Но ведь у тебя задача получить доступ к видеопамяти, а не использовать определенную конструкцию языка.  | 
	
| kornet | 
                        
			
			  
			
				 Сообщение
					#11				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация:    -1           	 | 
       
			
			 Нет, сервис DPMI позволяет 32-разрядным программам DOS работать с нижней памятью вообще (например, со звуковым буфером или прерываниями, использующими память, такие как сервис VESA) и видеопамятью в частности. Директива absolute, естественно, при этом работать не будет. Вообще то я спрашивал, как настроить FreePascal, чтобы он работал в режиме Go32V2 DOSExtender. Но, допустим, я не смогу его настроить. Мог бы ты написать, какими функциями DPMI я должен пользоваться или где я могу про это прочитать. Спасибо.  | 
	
| volvo | 
                        
			
			  
			
				 Сообщение
					#12				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Цитата Вообще то я спрашивал, как настроить FreePascal, чтобы он работал в режиме Go32V2 DOSExtender. Вообще-то ты толком объясни, чего хочешь-то? Ты хочешь из-под WinNT пользоваться Go32V2? (Компилятор какой качал? Для Win32? Судя по пути, указанному тобой, так и есть...)  Не будет этого: Цитата(Offsite) The latest release version is 2.0.4 Please keep in mind that this package isn't supposed to work in Windows NT/2000/XP. , с ним можно работать под чистым ДОСом. Обрати также внимание на соответствие версии компилятора, если у тебя вторая ветка - ты огребешь столько проблем с Go32V2, что лучше и не начинай... | 
	
| kornet | 
                        
			
			  
			
				 Сообщение
					#13				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация:    -1           	 | 
       
			
			 Вообще-то ты толком объясни, чего хочешь-то? Ты хочешь из-под WinNT пользоваться Go32V2? (Компилятор какой качал? Для Win32? Судя по пути, указанному тобой, так и есть...) Не будет этого: , с ним можно работать под чистым ДОСом. Обрати также внимание на соответствие версии компилятора, если у тебя вторая ветка - ты огребешь столько проблем с Go32V2, что лучше и не начинай... Да, качал для Win32. И хотел бы все программы и модули компилировать в нём. Вобщем, я понял, что для обращения к видеопамяти в Windows легче и лучше всего пользоваться модулем video.ppu, но при этом придется отказаться от использования модуля crt(но судя по тому, что я прочитал в руководстве, в video.ppu имеются те же и другие подпрограммы и переменные, которые есть в crt, и можно пользоваться ими). Спасибо всем, еще раз, за советы.  | 
	
| andriano | 
                        
			
			  
			
				 Сообщение
					#14				
			 
		 | 
	
| 
        	
        		 Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация:    28           	 | 
       
			
			 ...что для обращения к видеопамяти в Windows легче и лучше всего... Нич-чего не понимаю!В Windows обращаться к видеопамяти вообще безыдейно. До сих пор я был уверен, чо речь идет имено о DOS, исходя из этого и писал. В DOS требуется вполне конкретное железо, соответственно, можно гарантировать, что номера регистров, способов работы с ними, адресов видеопамяти и т.п. при работе программы идентичны вне зависимости от того, где и когда бы эта программа ни запускалась. Windows изначально предполагает иное. Поэтому непосредственная работа с видеопамятью - дело гиблое и бесперспективное.  | 
	
| sheka | 
                        
			
			  
			
				 Сообщение
					#15				
			 
		 | 
	
        	
        		![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация:    11           	 | 
       
			
			 Цитата type bytear = array [1..4000] of byte; Так что, получается этим под виндосом пользоваться нельзя? (у меня ФриПаскаль, ОСь ХРюша или Вин7) Т.е. надо качать ТП и на ХРюше работать, да?  | 
	
| volvo | 
                        
			
			  
			
				 Сообщение
					#16				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Цитата Так что, получается этим под виндосом пользоваться нельзя? Получается, что нельзя. Если б ты сразу задал вопрос в разделе "32-битные компиляторы" - тебе бы сразу сказали, что обращение к видеопамяти напрямую - не их сильная черта. | 
	
![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 13:48 |