Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid.Rows [D7, WinXP]


Separator ©   (2007-10-09 12:18:00) 

Какой вариант правильный:


   Result:= StringGrid.Rows[0].Strings[0]


или


   S: TStrings;

   S:= StringGrid.Rows[0];
   Result:= S.Strings[0];
   S.Free


Leonid Troyanovsky   (2007-10-09 12:57:00) [1]


> Separator   (09.10.07 12:51) [6]

> Спасибо, это и хотел узнать

Проще всего придерживаться правила  им. Т.Бульбы:
кто породил объект - тот его и убивает.

--
Regards, LVT.


Separator   (2007-10-09 12:51:00) [2]

Спасибо, это и хотел узнать


ЮЮ   (2007-10-09 12:46:00) [3]

А что исходники уже закрыты? В 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:41:00) [4]


> StringGrid.Rows[0].Strings[0] === StringGrid.Cells[0, 0]

Это я знаю, так для примера привел. В данном случае, при вызове функции Rows, нужно ли после использования очищать S, или можно просто 1 вариант использовать?


ЮЮ   (2007-10-09 12:36:00) [5]

StringGrid.Rows[0].Strings[0] === StringGrid.Cells[0, 0]

При чем здесь Subj? Да и в чем вопрос, собственно?


Separator   (2007-10-09 12:36:00) [6]

При вызове функции StringGrid.Rows создается ли новый экземпляр класса TStrings со значениями или дается ссылка на уже существующий экземпляр?


clickmaker   (2007-10-09 12:32:00) [7]

с какой радости во втором S.Free?


Наверх

Титульная страница Поиск, карта сайта Написать письмо