![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Незнаю как назвать. (Заполнение свойства при создании объекта)
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]Елки-палки. Если не получается сформулировать мысль по-человечески с первого раза, то лучше подумать и переписать, а не постить свои потоки мыслей в форум.