Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как сделать функцию получающую в виде параметра ссылку на структу   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.041 c
7-1078053511
NetworK
2004-02-29 14:18
2004.04.25
Имя процесса


6-1077886764
ALeX.B.
2004-02-27 15:59
2004.04.25
Помогите довести до ума!


7-1077399444
BBCHa
2004-02-22 00:37
2004.04.25
Завершение чужой проги


3-1080799942
race1
2004-04-01 10:12
2004.04.25
filter by date


3-1080637658
alex123
2004-03-30 13:07
2004.04.25
DBGridEH.SumList.VirtualRecords