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

Вниз

TStrings   Найти похожие ветки 

 
killer ©   (2004-04-06 18:22) [0]

procedure TForm1.Button1Click(Sender: TObject);
var
str: TStrings;
itm: TStringList;
begin
itm:=TStringList.Create;
str:=itm;
str.Add("Test_1");
str.Add("Test_2");
str.Add("Test_3");
str.Add("Test_4");
str.Add("Test_5");
str.Add("Test_6");
str.Add("Test_7");
ListBox1.Items:=itm;
itm.Free;
end;

В ListBox.Item прописываются строки "Test_.." Почему? Мы же не передаем ListBox.Items:=itm; Ктонибудь, объясните мне почему так получается...


 
Тимохов ©   (2004-04-06 18:23) [1]

т.к. str и itm это указатели на один и тот же объект.
присвоение str := itm просто копирует указатели


 
Гаврила   (2004-04-06 18:24) [2]

str:=itm;
потому что str и itm указывают на один и тот же экземпляр класса


 
killer ©   (2004-04-06 18:27) [3]

а вот если вместо ListBox-а была бы какаянибудь третья переменная типа TStrings или TStringList... тогда в нее бы это все записывалось?


 
Тимохов ©   (2004-04-06 18:29) [4]


> killer ©   (06.04.04 18:27) [3]

не путайте переменные и свойства.

str - переменная.
listbox.items - свойство. При присовоении ему значения происходит не просто Items := str, а что-то похожее на это items.assign(str), т.к. копирование значения, а не адреса.


 
killer ©   (2004-04-06 18:34) [5]

Тимохов что-то понятно.... значит если мы присвоим какоенибудь свойство какойнибудь переменной... то в объекте тотже ListBox.Item будет как-бы отображать что происходит с этой переменной? Так?


 
Тимохов ©   (2004-04-06 18:37) [6]

может так, а может и нет - честно скажу не понял утвержения.

большой совет прочесть простую книгу по дельфи. займет от силы неделю, опыта даст немеряно.

если бы это было возможно я бы попытался объяснить что-то тут, но это будет целая книга.


 
Гаврила   (2004-04-06 18:37) [7]

все завилит от реализации
в данном случае
str.Add("Test_6");
str.Add("Test_7");
ListBox1.Items:=itm;

если продолжить дальше
str.Add("Test_8");
str.Add("Test_9"); и т.д, то
содержимое ListBox уже меняться не будет



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
3-1080535531
Леван
2004-03-29 08:45
2004.04.25
как подавить обработку CTRL+DEL для DBGRID


6-1077281890
csr
2004-02-20 15:58
2004.04.25
TidMessage и base64, quoted-printable


1-1081433311
mbgmz
2004-04-08 18:08
2004.04.25
проблема с компонентами


1-1081521674
denis_group
2004-04-09 18:41
2004.04.25
Проблема с определением HDD (GetDriveType)


6-1077394335
denkop
2004-02-21 23:12
2004.04.25
while ... do Socket.Open; Socket.SendText( hello world );