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

Вниз

как передать в процедуру переменную типа Tstringlist   Найти похожие ветки 

 
lena19   (2004-06-16 18:54) [0]

всем привет
народ как передать в процедуру переменную типа Tstringlist
как в этом случае объявлять процедуру ????


 
VMcL ©   (2004-06-16 18:57) [1]

>>lena19  (16.06.04 18:54)

ну, например, так:

procedure lena19proc(SL: TStringList);
begin
 // ..
end;


или так:
procedure lena19proc(SL: TStrings);
begin
 // ..
end;


 
Тимохов ©   (2004-06-16 18:59) [2]

можно и так

procedure lena19proc(SL: TObject);
begin
  // ..
end;

только приведение типов к TStringList внутри метода нужно делать.


 
Gero ©   (2004-06-16 19:03) [3]


> Тимохов ©   (16.06.04 18:59)

Ну раз уж на то пошло, то и так можно:
procedure lena19proc(SL: Pointer);
begin
 // ..
end;


 
YurikGL ©   (2004-06-16 19:03) [4]


> Тимохов ©   (16.06.04 18:59) [2]

Только, если я не ошибаюсь, действия будут производится с тем же экземпляром объекта, а копия создаваться не будет, в отличии от объявления procedure lena19proc(SL:integer).


 
VMcL ©   (2004-06-16 19:06) [5]

>>Тимохов ©  (16.06.04 18:59) [2]

Ну тогда можно вообще даже так :)

procedure lena19proc(SL: Pointer);
begin
// ..
end;


или на Win32 даже вообще так:

procedure lena19proc(SL: LongInt);
begin
// ..
end;


 
VMcL ©   (2004-06-16 19:06) [6]

Oops. Опередили :)


 
Тимохов ©   (2004-06-16 19:17) [7]


> YurikGL ©   (16.06.04 19:03) [4]

вы о чем?
какая копия.
копия никогда создаваться не будет - всегда будет передаваться ссылка.
или я что-то пропустил?


 
Тимохов ©   (2004-06-16 19:34) [8]


> VMcL ©   (16.06.04 19:06) [5]

[2] я привел не ради флуда.

Иногда случается так, что никда не денешься без зацикленности юнитов. Понимаю, что это плохо, ошибка проектирования, но иногда деваться некуда - нужно срочно сделать так, чтобы заработало.

Тогда в одном из юнитов в интерфейсной части я объявляю процедуры как TObject, предполагая, что в них будет передаваться объекты класса из другого юнита. Юнит подключается под implementaion. И в процедуре просто проверяется - то ли класс или нет.


 
VMcL ©   (2004-06-16 19:37) [9]

>>Тимохов ©  (16.06.04 19:34) [8]

1. В данном контексте это не случится. TStrings, TStringList находятся в classes.pas.

2. Зацикленность юнитов можно разрешить с помощью, например, базового Custom-класса.



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

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

Наверх





Память: 0.46 MB
Время: 0.029 c
14-1087398509
DSKalugin
2004-06-16 19:08
2004.07.04
Серийный номер тома


1-1087755757
terra0
2004-06-20 22:22
2004.07.04
передача глобальной переменной в DLL


14-1087429736
Гарри Поттер
2004-06-17 03:48
2004.07.04
средство передвижения


3-1086610429
Valeri
2004-06-07 16:13
2004.07.04
DBRichEdit


14-1087457948
SPeller
2004-06-17 11:39
2004.07.04
Проблемы с MSDN





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