Текущий архив: 2007.10.28;
Скачать: CL | DM;
ВнизStringGrid.Rows Найти похожие ветки
← →
Separator © (2007-10-09 12:18) [0]Какой вариант правильный:
Result:= StringGrid.Rows[0].Strings[0]
или
S: TStrings;
S:= StringGrid.Rows[0];
Result:= S.Strings[0];
S.Free
← →
clickmaker © (2007-10-09 12:32) [1]с какой радости во втором S.Free?
← →
ЮЮ © (2007-10-09 12:36) [2]StringGrid.Rows[0].Strings[0] === StringGrid.Cells[0, 0]
При чем здесь Subj? Да и в чем вопрос, собственно?
← →
Separator (2007-10-09 12:36) [3]При вызове функции StringGrid.Rows создается ли новый экземпляр класса TStrings со значениями или дается ссылка на уже существующий экземпляр?
← →
Separator (2007-10-09 12:41) [4]
> StringGrid.Rows[0].Strings[0] === StringGrid.Cells[0, 0]
Это я знаю, так для примера привел. В данном случае, при вызове функции Rows, нужно ли после использования очищать S, или можно просто 1 вариант использовать?
← →
ЮЮ © (2007-10-09 12:46) [5]А что исходники уже закрыты? В D7 правильный вариант совсем другой:
function TStringGrid.GetRows(Index: Integer): TStrings;
begin
Result := EnsureColRow(Index, False);
end;
function TStringGrid.EnsureColRow(Index: Integer; IsCol: Boolean):
TStringGridStrings;
var
RCIndex: Integer;
PList: ^TSparseList;
begin
if IsCol then PList := @FCols else PList := @FRows;
Result := TStringGridStrings(PList^[Index]);
if Result = nil then
begin
if IsCol then RCIndex := -Index - 1 else RCIndex := Index + 1;
Result := TStringGridStrings.Create(Self, RCIndex);
PList^[Index] := Result;
end;
end;
ЗЫ. Очищать ничего не нужно. И даже вредно.
← →
Separator (2007-10-09 12:51) [6]Спасибо, это и хотел узнать
← →
Leonid Troyanovsky © (2007-10-09 12:57) [7]
> Separator (09.10.07 12:51) [6]
> Спасибо, это и хотел узнать
Проще всего придерживаться правила им. Т.Бульбы:
кто породил объект - тот его и убивает.
--
Regards, LVT.
Страницы: 1 вся ветка
Текущий архив: 2007.10.28;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.045 c