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

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

Незнаю как назвать. (Заполнение свойства при создании объекта)


Страницы:   1 2 3

RASkov ©   (2006-10-04 00:35:00) 

Есть такое вот дело (код компанента):

TArrRect: array of TRect;
....
-----------
ArrRect: TArrRect;
....
published
property MCount: Integer read GetMCount;
property SList: TStrings read FSList write SetSList;

constructor T<name>.Create(...);
begin
 SList := TStringList.Create;
 ...
end;

function T<name>.GetMCount: Integer;
begin
 Result:=SList.Count;
end;

procedure T<name>.SetRect;
begin
 SetLength(ArrRect, MCount); //MCount=0 ????
 for N := 0 to MCount-1 do...
end;

procedure T<name>.SetSList(const Value: TStrings);
begin
 SList.Assign(Value);
//  SetLength(ArrRect, SList.Count);
 SetRect;
end;

procedure T<name>.Paint;
begin
 Canvas.TextOut(10, 10, IntToStr(MCount)+' - '+IntToStr(Length(ArrRect)));
end;


Такая вот конструкция неправильна.
Вопрос: как при создании экземпляра T<name> заполнить поле ArrRectпри условии, что поле SList заполняется в инспекторе объектов?
при выполнении Paint рисует 5 - 0 ????(аргентина-ямайка, блин) - в SList - 5 строк....
ЗЫ SetLength в SetSList проблему не решает.
ЗЫЫ Если нужно, могу привести полное описание T<name>


Zeqfreed   (2006-10-04 01:29:00) [41]

> [6] RASkov   (04.10.06 01:25)


> непонял про
> procedure Loaded; override; - в ней и заполняй ArrRect.

LOL! Нет, даже ROFL! Если ты не понял именно про это преложение, тогда на что ты отвечал вот этим:


> Мне необходимо после создания СРАЗУ в ArrRect иметь данные...
> Код я привел - это как я пытаюсь сделать, что ниесть правильный.
> Если есть какие варианты подругому - пожалуйста - я весь
> внимание.

?!


RASkov   (2006-10-04 01:29:00) [42]

В SList список строк - нужно при инициализации компанента в зависимости от кол-ва строк задать длинну массива=кол-ву строк в SList и пробежаться по этому массиву...:( ну как еще объяснить? подскажите.


RASkov   (2006-10-04 01:25:00) [43]

Кинули на форму компанент, в инспекторе объектов заполнили поле SList. нажали F9....
При создании компанента нужно заполнить массив ArrRect в зависимости от того сколько строк в SList'е. В дизайнтайме при разработке этого компанента все работает нормально, а вот когда он создается в рунтайм где SList заполняется из ресурса - здесь косяк....:(

> [5] Percent   (04.10.06 01:15)

Мне необходимо после создания СРАЗУ в ArrRect иметь данные... Код я привел - это как я пытаюсь сделать, что ниесть правильный. Если есть какие варианты подругому - пожалуйста - я весь внимание.
непонял про
procedure Loaded; override; - в ней и заполняй ArrRect.
????


Percent   (2006-10-04 01:15:00) [44]

как при создании экземпляра T<name> заполнить поле ArrRect при условии, что поле SList заполняется в инспекторе объектов?

procedure Loaded; override; - в ней и заполняй ArrRect.


ProgRAMmer Dimonych   (2006-10-04 01:13:00) [45]

> [3]
:)


sniknik   (2006-10-04 01:09:00) [46]

> Чё вообще приблизительно должен делать компонент, если не секрет?
ездить! как и обычный велосипед, только у этого будут квадратные колеса....


ProgRAMmer Dimonych   (2006-10-04 01:00:00) [47]

Чё вообще приблизительно должен делать компонент, если не секрет?


Zeqfreed   (2006-10-04 00:48:00) [48]

Елки-палки. Если не получается сформулировать мысль по-человечески с первого раза, то лучше подумать и переписать, а не постить свои потоки мыслей в форум.


Страницы:   1 2 3

Наверх

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