Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2010, 18:16   #1
nza
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 10
По умолчанию Свойство копонента типа TStringlist

Пытаюсь сделать свойство у компонента типа TStringList.

делаю так:


Код:
 private
...
    FFixedCaption :TStringList;
    function GetFixedCaption: TStringList;
    procedure SetFixedCaption(const Value: TStringList);
...
 published
...
property FixedCaptions: TStringList read GetFixedCaption write SetFixedCaption;
...
implementation
...
constructor TButtonGrid.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FFixedCaption:=TStringList.Create;
...

procedure TButtonGrid.SetFixedCaption(const Value: TStringList);
var i:integer;
begin
   if  not assigned(value) then exit;
   FFixedCaption:=value; 
   for i:=0 to value.Count-1 do   FGrid.Cells[i,0]:=value[i];
   
end;

function TButtonGrid.GetFixedCaption: TStringList;
begin
  Result:=FFixedCaption;
end;
ввожу строки а Object inspector

после ввода выскакивает ошибка.

Помогите разобраться


FGrid - это TStinggrid
nza вне форума Ответить с цитированием
Старый 24.12.2010, 18:37   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Код:
procedure TButtonGrid.SetFixedCaption(const Value: TStringList);
var i:integer;
begin
   FFixedCaption:=value; //неправильно, вы создали экземпляр TStringList, FFixedCaption хранит на него ссылку, здесь вы её затираете
  FFixedCaption.Assign(Value); //Должно быть так
   for i:=0 to value.Count-1 do   FGrid.Cells[i,0]:=value[i];
   
end;
Лучше объявлейте FFixedCaption не TStringList а TStrings, это не мешает сделать в конструкторе FFixedCaption := TStringsList.Create;

Последний раз редактировалось Stilet; 25.12.2010 в 12:42.
Rik вне форума Ответить с цитированием
Старый 24.12.2010, 18:47   #3
nza
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 10
По умолчанию

Rik,
спасибо ошибка пропала ...
но теперь введенные данные в конструкторе видны,
а при запуске приложения пропадают
nza вне форума Ответить с цитированием
Старый 24.12.2010, 20:24   #4
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от nza Посмотреть сообщение
Rik,
спасибо ошибка пропала ...
но теперь введенные данные в конструкторе видны,
а при запуске приложения пропадают
Вы имеете ввиду данные ячеек FGrid ?
Rik вне форума Ответить с цитированием
Старый 25.12.2010, 06:35   #5
nza
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 10
По умолчанию

да ... пропадают данные ячеек Fgrid
nza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом сохранить цвет. Типа в переменную типа TColor ? serres C++ Builder 5 07.12.2010 16:19
свойство класса TStringList krikaved Общие вопросы Delphi 5 29.04.2010 13:03
Создание класса с полем типа TStringList. Ошибка при его заполнении Son Общие вопросы Delphi 8 13.04.2010 21:38
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
Изменене свойство копонента DBGrid Uchqunbek БД в Delphi 2 19.03.2009 19:54