Вот читал "Библию Делфи" Флёного... Там есть глава об указателях (стр.240).
	Цитата:
	
	
		
			
				Допус- 
тим, у вас есть процедура с именем муРгос, у которой есть два параметра: 
число и строка. Как происходит вызов такой процедуры, и как ей передаются 
эти параметры? Очень просто. Сначала параметры принимаются в стек (на- 
помню, что стек — это область памяти для хранения временных или ло- 
кальных переменных). Первой заносится строка, затем число и после этого 
вызывается процедура. Прежде чем процедура начнет свое выполнение, она 
извлекает эти параметры из стека в обратном порядке. 
Теперь вспомним о наших параметрах. Первый — это число, которое будет 
занимать два байта. Когда происходит запись его в стек, оно займет там свои 
положенные два байта. Второй параметр — строка. Каждый символ стро- 
ки — это отдельный байт. Допустим, что строка состоит из 10 символов. Это 
значит, для передачи такой строки в процедуру в стеке понадобится 10 байт 
плюс один байт для указания конца строки или ее размера (это зависит от 
типа строки). Всего для передачи в процедуру понадобится в стеке как мини- 
мум 12 байт. Это не так уж и много, поэтому такое можно себе позволить. 
А теперь представьте, что строка, которую надо передать в процедуру, состоит 
из 1000 символов. Вот тут нам понадобится в стеке уже около килобайта. При 
нынешних размерах памяти на это уже никто не обращает внимания, но 
программисты забывают про то, что такая строка сначала копируется в память 
стека, а потом извлекается из него. Такое копирование большого размера па- 
мяти отнимает достаточно много времени и ваша программа тратит лишнее 
время на бессмысленное клонирование в памяти большой строки. 
Выход из сложившейся ситуации достаточно прост. Можно не передавать 
строку, а только передать указатель на область памяти, где находится эта 
строка. Любой указатель занимает всего четыре байта, а это уже существен- 
ная экономия. Мы просто даем нашей процедуре понять, где найти строку.
			
		 | 
	
	
  Теперь вопрос: Как для большего быстродействия мне передовать параметры в поцедуру или функцию?
--------------------------------------------
1) 
	Код:
	 
var s: sttring; p: pointer;
p := @s;
myProc(string(p^));
procedure myProc(value: string);
begin
    showMessage(value);
end; 
  
--------------------------------------------
2) 
	Код:
	 
var s: sttring; p: pointer;
p := @s;
myProc(p);
procedure myProc(value: pointer);
begin
    showMessage(string(value^));
end; 
  
--------------------------------------------
Спасибо заранее! 
