Форум: "Основная";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];
ВнизAssign или := Найти похожие ветки
← →
_Nicola_ (2002-11-12 09:48) [0]Есть куча записей (не БД), в которых есть поле TStringList. При переходе по записям TStringList отображается в Memo.
Как лучше сделать:
Memo.Lines := MyRec.StringList (как сейчас).
или
Memo.Lines.Assign(MyRec.StringList)?
2) Не будет ли при первом способе засоряться память?
3) Можно ли сделать так, чтобы изменения сделанные в Memo автоматически оставались в StringList текущей записи без специальной процедуры сохранения?
Спасибо всем ответившим.
← →
MBo (2002-11-12 09:52) [1]1) оба способа делают одно и тоже.
3) OnChange Memo
← →
Reindeer Moss Eater (2002-11-12 09:53) [2]1. Без разницы:
procedure TCustomMemo.SetLines(Value: TStrings);
begin
FLines.Assign(Value);
end;
2. Нет
3. Нет
← →
_Nicola_ (2002-11-12 10:28) [3]Мне хотелось услышать независимое мнение. Но, как говорил какой-то известный робот - "Есть другая информация":
(Где-то вычитал)
При Memo.Lines := MyRec.StringList указатель Memo.Lines начинает указывать на MyRec.StringList (отсюда вопросы 2 и 3), а при Assign копируется содержимое. Но, действительно, глядя на исходники, убеждаешься, что это враки.
И по (3): если 2 указателя указывают на 1 переменную, то изменив значение по одному указателю, по другому прочитаем измененное значение. Наверное, как-то можно такое провернуть и со StringList. Я, правда, ничего не смог придумать. А вы?
← →
Reindeer Moss Eater (2002-11-12 10:31) [4]не начинает он указывать.
← →
Bsl (2002-11-12 10:33) [5]Мне кажется, что если StringList - это property, то нормальные порграммисты Borland не допустят лобовое присвоение объектов (указателей).
А если совсем точно нужно, то посмотри исходник TMemo - как работает это property.
← →
Юрий Федоров (2002-11-12 10:57) [6]Слушайте MBO, он прав
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c