Главная страница
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.031 c
3-1080725353
JibSkeart
2004-03-31 13:29
2004.04.25
Интерестно а можно узнать в ADOConnection у какого обьекта ...


14-1080619470
Dmitriy O.
2004-03-30 08:04
2004.04.25
Если ты лежишь больной, если завтра выходной..."


3-1079334458
Pete
2004-03-15 10:07
2004.04.25
TRXDBComboLookup


11-1063785981
<Falcon>
2003-09-17 12:06
2004.04.25
Текст в несколько строк в mdvXLGrid - КАК?


9-1067757990
Micah'GF
2003-11-02 10:26
2004.04.25
Из Picture исчез DIB