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

Вниз

Подскажите по TStringList;   Найти похожие ветки 

 
Руслана   (2005-07-12 14:38) [0]

В процессе работы используется TStringList. Причем, разные функции пишут в него различные строки. Как правильно передавать TStringList в эти функции?
Если так WriteString1(List:TstringList) означает ли это, что весь TSTringList будем сначало помещаться в стек, а затем извлекаться.
Или можно передать только указатель на TStringList? Как?


 
Ega23 ©   (2005-07-12 14:40) [1]

Или можно передать только указатель на TStringList? Как?

var
List:TStringList;

List в данном случае является указателем на экземпляр класса TStringList.


 
Руслана   (2005-07-12 14:42) [2]

Да, у меня так и объявлено.

var
List:TStringList;

То есть можно так и писать WriteString(List:TStringList) ?


 
Ega23 ©   (2005-07-12 14:47) [3]

Да. Это и есть передача указателя.


 
Юрий Зотов ©   (2005-07-12 15:41) [4]

> Руслана   (12.07.05 14:42) [2]

В Delphi любая переменная объектного типа - это не сам объект, а указатель на него.


 
VMcL ©   (2005-07-12 15:45) [5]

>>Юрий Зотов ©   (12.07.05 15:41) [4]

Кроме собственно object"ов, если не ошибаюсь.


 
Руслана   (2005-07-12 16:32) [6]

Хорошо, тогда еще вопрос

если у меня объявлен массив

type mybuf=array[0..131072]of byte;
var Buf:mybuf;

И я хочу передать его в функцию
ChangeArray(Buf:array of byte)
в этом случае тоже передается указатель?

И насчет файлов
Если имеется
var
BinFile:File;
begin

WriteEof(BinFile:File) - здесь тоже указатель?


 
Anatoly Podgoretsky ©   (2005-07-12 16:36) [7]

Руслана   (12.07.05 16:32) [6]
ChangeArray(Buf:array of byte)

В этом случае передается массив констант. Объявить надо так
ChangeArray(Buf: mybuf)


 
Digitman ©   (2005-07-12 16:42) [8]


> И насчет файлов
> Если имеется
> var
> BinFile:File;
> begin
>
> WriteEof(BinFile:File) - здесь тоже указатель?


здесь передается копия значения.
значением же является неявный указатель на неявную же упр.структуру данных типа File


 
VMcL ©   (2005-07-12 16:42) [9]

>>Anatoly Podgoretsky ©   (12.07.05 16:36) [7]

А если ещё и "const" к параметру дописать, то ваще лепота будет.


 
TUser ©   (2005-07-12 16:46) [10]

> Кроме собственно object"ов, если не ошибаюсь.

? Но с ними вроде бы нельзя работать непосредственно, а надо объявлять соотв. указатель. Или я не прав?


 
Юрий Зотов ©   (2005-07-12 16:47) [11]

> Руслана   (12.07.05 16:32) [6]

procedure ChangeArray(const Buf: mybuf);
И будет передаваться указатель.


 
имя   (2005-07-12 16:47) [12]

Удалено модератором


 
Anatoly Podgoretsky ©   (2005-07-12 16:51) [13]

VMcL ©   (12.07.05 16:42) [9]
Ну кто бы спорил, а то будут вопросы почему за стек ругается, так что const/var не помешает.


 
begin...end ©   (2005-07-12 17:04) [14]

> Руслана   (12.07.05 16:32) [6]
> WriteEof(BinFile:File) - здесь тоже указатель?

Нет.

> Digitman ©   (12.07.05 16:42) [8]
> здесь передается копия значения.

Здесь ничего не передаётся. Это даже не скомпилируется.

> TUser ©   (12.07.05 16:46) [10]
> Или я не прав?

Не прав.



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
14-1120766682
ferr
2005-07-08 00:04
2005.07.31
Страна дураков.


14-1121093154
Piter
2005-07-11 18:45
2005.07.31
"Запуст от имени..."


14-1120559083
smak
2005-07-05 14:24
2005.07.31
компонент XML


14-1120484902
GRAND25
2005-07-04 17:48
2005.07.31
Воровство или мудрая политика в национальных интересах?


14-1120654675
netnt
2005-07-06 16:57
2005.07.31
Есть ли такая программа?