Главная страница
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.023 c
1-1081254208
hgd
2004-04-06 16:23
2004.04.25
Перемещение компонента внутри другого


3-1080558744
JibSkeart_
2004-03-29 15:12
2004.04.25
А что за фишка с ExecuteOtions -> eoAsyncExecute = true ?


3-1080389025
Новичек2
2004-03-27 15:03
2004.04.25
TDBAdvStringGrid и выравнивание по вертикали.


11-1065002302
Ал
2003-10-01 13:58
2004.04.25
PopUp меню, открываемое при щелчке по иконке в трее


1-1081282711
Leon1234
2004-04-07 00:18
2004.04.25
Почему D6 не позволяет работать с указателями?