Страница 2 из 2
Добавлено:
17.07.2007 14:26:30
compiler
>Там же и многочисленные примеры.
не нашел ни одного...
>Однако, на мой взгляд, более удобно пользоваться хелпом от Delphi
для этого надо его иметь...
Добавлено:
17.07.2007 15:53:45
Brainenjii
- Код: Выделить всё
Type TItem = class // Описание "ячейки" :)
Private
FValue: Integer;
Public
Property Value: Integer Read FValue; // Описание "полей"
Constructor Create(C_Value: Integer);
End;
var
Form1: TForm1;
Implementation
Constructor TItem.Create(C_Value: Integer);
Begin
FValue := C_Value;
End;
Procedure TForm1.FormCreate(Sender: TObject);
var
List: TList;
i: Integer;
Begin
List := TList.Create;
For i := 0 To 9 Do
List.Add(TItem.Create(Random(100)));
For i := 0 To List.Count - 1 Do
Caption := Caption + ':' + IntToStr(TItem(List[i]).Value);
List.Free;
End;
Добавлено:
17.07.2007 17:49:26
compiler
- Код: Выделить всё
Caption := Caption + ':' + IntToStr(TItem(List[i]).Value); //а что мы тут сделали? :)
List.Free; //в конструкторе? оригинально...
Добавлено:
17.07.2007 18:08:31
Attid
//в конструкторе? оригинально...
учмтывая что переменая обьявлена внутри процедуты то так и надо.
Добавлено:
17.07.2007 18:25:23
compiler
Attid писал(а)://в конструкторе? оригинально...
учмтывая что переменая обьявлена внутри процедуты то так и надо.
мне просто понравилось уничтожение в методе Create...
Добавлено:
17.07.2007 19:17:21
Brainenjii
FormCreate - это не конструктор, а обработчик события :Р
Добавлено:
18.07.2007 17:11:17
compiler
а можна увидеть деструктор ячейки по индексу?
Добавлено:
18.07.2007 17:54:38
Brainenjii
- Код: Выделить всё
Item := TItem(List[i]);
List.Delete(i);
Item.Free;
Добавлено:
18.07.2007 18:36:13
compiler
Brainenjii писал(а):- Код: Выделить всё
Item := TItem(List[i]);
List.Delete(i);
Item.Free;
а зачем первая и третья строчка?
Добавлено:
18.07.2007 21:42:47
zub
тлист - список ссылок. в нем хранится только ссылка на твой объект.
без 1 и 3 строчек ссылка удалится из списка, но сам объет останется в памяти. соответственно если тебе нужно только убрать объект из списка то 1 и 3 ненужны
Добавлено:
18.07.2007 22:02:17
v-t-l
Тогда можно обойтись без промежуточной переменной
- Код: Выделить всё
TItem(List[i]).Free; //освобождаем объект
List.Delete(i); //удаляем ссылку на него
Добавлено:
18.07.2007 22:17:02
compiler
спасибо