Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизКак сделать функцию получающую в виде параметра ссылку на структу Найти похожие ветки
← →
besen-ok (2004-04-07 17:51) [0]Как сделать функцию получающую в виде параметра ссылку на структу и заполняющую ее ?
Пыпаюсь делать след обрагидм
procedure GetMeansList (curADOConnection:TADOConnection;curMList:LLIST);
Основаня процедура:
LLIST (ранее описанная структура)
var
LinkList:LLIST;
begin
.
.
.
GetMeansList (curADO,LinkList);
Так вот после отработки подпрограммы GetMeansList в LinkList как будто ничего и небыло !
← →
Тимохов © (2004-04-07 17:52) [1]много пропущено кода но, рискну предположить, что LList это record, тогда нужно перед curMList в описании процедуры поставить var
← →
pavia (2004-04-07 17:54) [2]procedure GetMeansList (var curADOConnection:TADOConnection;curMList:LLIST);
← →
Тимохов © (2004-04-07 17:55) [3]не тут
← →
besen-ok (2004-04-07 18:12) [4]Да там был именно рекорд ?
Спасибо заработало ! Хотел еще кое что уточнить, т.е. если мне нужно передавать что то в процедуру или функию параметьром и внутри этой процедуры менять этот параметр, то писывается должно через var имя параметра ? (тогда как бы в процедуру попадает указатель на переменную и не копия переменной) ?
← →
Семен Сорокин © (2004-04-07 18:14) [5]besen-ok (07.04.04 18:12) [4]
type
PLIST = ^LLIST;
и передавай PLIST, тогда можно без var
← →
Тимохов © (2004-04-07 18:19) [6]
> besen-ok (07.04.04 18:12) [4]
"параметр" - понятие растяжимое.
Если имеется в виду record, то нужно либо писать var либо воспользоваться советом 5.
Если имеется в виду простой тип (число, строка) то нужно делать также.
Если имеется в виду объект, то var не нужен - т.к. объект это и уже есть указатель, просто вы этого явно в коде не видете...
← →
WebErr © (2004-04-07 18:19) [7]
> Семен Сорокин © (07.04.04 18:14) [5]
Можно и так, но зачем!
Всё равно создаётся переменная указателя, под которую выделяется память, если использовать var то это будет уже ссылка, где переменная просто получит имя, а адрес возьмёт уже существующей переменной! :))))
И вообще всё это странно попахивает Сёй, когда есть С++ и Delphi!
← →
WebErr © (2004-04-07 18:21) [8]
> Тимохов © (07.04.04 18:19) [6]
А чем record не простой тип? :))))
← →
Тимохов © (2004-04-07 18:23) [9]
> WebErr © (07.04.04 18:21) [8]
открываем хелп
object pascal reference
data types
structured types и simple types.
Правда по этой логике строки тоже не простые типы...
← →
WebErr © (2004-04-07 18:29) [10]
> Тимохов © (07.04.04 18:23) [9]
Буквоед! :))))
← →
Anatoly Podgoretsky © (2004-04-07 18:45) [11]Тимохов © (07.04.04 18:23) [9]
Правильно string это ключевое слово, в отличии от Integer
← →
WebErr © (2004-04-07 18:50) [12]А array - это простой тип?! :))))
← →
Тимохов © (2004-04-07 18:52) [13]
> Anatoly Podgoretsky © (07.04.04 18:45) [11]
Не объясните почему. Никогда этого не понимал.
← →
WebErr © (2004-04-07 18:55) [14]
> Тимохов © (07.04.04 18:52) [13]
Потому, что это больше record, чем array.
Посудите сами:
S: String;
S[0] - длина строки (короткой)
S[i] - символы 1<=i<=Length(S)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c