Форум: "Основная";
Текущий архив: 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