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

Вниз

как правильнее организовать доступ к списку из 2-х процедур   Найти похожие ветки 

 
Scott Storch   (2011-09-19 12:54) [0]

Есть метод ProcA, который внутри себя имеет процедуру ProcB. Из обоих процедур нужно рабоать с одним списком List. Как правильнее организовать доступ к списку из обоих процедур.

1-вариант:


procedure TForm1.ProcA;

 procedure ProcB(List: TStrings);
 begin

 end;

var
 List: TStrings;
begin
 List := TStringList.Create;
 try
   ProcB(List);
 finally
   FreeAndNil(List);
 end;
end;


2-й вариант


procedure TForm1.ProcA;
var
 List: TStrings;

 procedure ProcB;
 begin

 end;

begin
 List := TStringList.Create;
 try
   ProcB;
 finally
   FreeAndNil(List);
 end;
end;


 
stas ©   (2011-09-19 12:59) [1]

В данном случае во втором варианте, сохранишь 4 байта ОЗУ.
А так без разницы.


 
Медвежонок Пятачок ©   (2011-09-19 13:03) [2]

Из обоих процедур нужно рабоать с одним списком List.

Да хоть из миллиона процедур.
Какая разница-то?


 
stas ©   (2011-09-19 13:05) [3]

1-й вариант имеет смысл если будешь делать так :

procedure TForm1.ProcA;

procedure ProcB(List: TStrings);
begin

end;

var
List1: TStrings;
List2: TStrings;
begin
List1 := TStringList.Create;
List2 := TStringList.Create;
try
  ProcB(List1);
  ProcB(List2);
finally
  FreeAndNil(List1);
  FreeAndNil(List2);

end;

end;


 
Ega23 ©   (2011-09-19 13:31) [4]


> 1-вариант:
> 2-й вариант


3-й вариант:

type

 TForm1 = class (TForm)
  .....
 private
   procedure ProcB(Strings: TStrings);
  ......
 public
   .....
   procedure ProcA;
   .....
 end;  


 
RWolf ©   (2011-09-19 14:59) [5]


> Scott Storch   (19.09.11 12:54) 

вариант 1 обычно нагляднее, т.к. явно описано, что ProcB использует указанный аргумент, а не контекст охватывающей процедуры. Кроме того, можно её при необходимости безболезненно вынести уровнем выше без переделок в коде.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
2-1316405617
i2e
2011-09-19 08:13
2011.12.25
Прозрачный фон при выводе текста


15-1315083828
Knight
2011-09-04 01:03
2011.12.25
Алгоритм выбора случайного элемента...


4-1253095828
roughneck
2009-09-16 14:10
2011.12.25
Перехват WM_QUERYENDSESSION


15-1315380382
user1987
2011-09-07 11:26
2011.12.25
Помогите разобраться с Post данными


15-1315427389
Юрий
2011-09-08 00:29
2011.12.25
С днем рождения ! 8 сентября 2011 четверг





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский