![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Есть композиция:
Код:
type TStringArray = array[0..FCount-1] of string; TRec = record Var1:string; Vars:TStringArray; end; TRecs = array of TRec; TClass = class private FRecs:TRecs; public constructor Create(Count:integer); end; var FCount:integer; *** constructor TClass.Create(Count:integer); begin FCount := Count; end; |
|
#2
|
||||
|
||||
|
Никак
______________ |
|
#3
|
||||
|
||||
|
О как! С трудом в это верится. Может есть и другие мнения?
![]() |
|
#4
|
||||
|
||||
|
Цитата:
Цитата:
А по вопросу - record не может быть переменной длины. |
|
#5
|
|||
|
|||
|
Код:
type
TRec = record
Var1: string;
Memo1: TMemo;
end; |
|
#6
|
||||
|
||||
|
Цитата:
Цитата:
Цитата:
Pyro, использовать TMemo, TStrings или TStringList в данном случае неактуально. Мне не нужен набор методов и переменных данных классов. Зачем зря утяжелять? ) Последний раз редактировалось morebeauty, 29.11.2012 в 12:46. |
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
||||
|
||||
|
А что если record переделать в класс?
|
|
#9
|
||||
|
||||
|
Будет сильно круто.
|
|
#10
|
||||
|
||||
|
Цитата:
В общем то и массивов переменной длины в Delphi нет - либо статические, либо динамические. |
|
#11
|
||||
|
||||
|
Код:
В общем то и массивов переменной длины в Delphi нет - либо статические, либо динамические. |
|
#12
|
||||
|
||||
|
Цитата:
:Код:
const FCount = 10; type TStringArray = array[0..FCount-1] of string; |
|
#13
|
||||
|
||||
|
Код:
Ну если "статический массив от константы", то это легко делается |
|
#14
|
|||
|
|||
|
Цитата:
Вопрос, а чем тебя не устраивает что-то типа: Код:
type
TMyClass = class
privatre
FCount : Integer;
A : Array Of String;
public
constructor Create(ACount : Integer); virtual;
property Count : Integer read FCount;
end;
constructor TMyClass.Create(ACount : Integer);
begin
FCount := ACount;
SetLength(A,FCount);
end;Если FCount потом не меняется, задается через конструктор, то один вызов SetLength погоды не делает и на производительности сильно не скажется. |
|
#15
|
||||
|
||||
|
Цитата:
Код:
TStringArray = array[0..FCount-1] of string; TRec = record Var1:string; Vars:TStringArray; end; TRecs = array of TRec; TClass = class private FRecs:TRecs; public constructor Create(Count:integer); end; Для того, чтобы задать размер TStringArray, к нему придется обращаться через TRecs = array of TRec;... То есть SetLength (FRecs.[i(от 0 до B)].Vars,A); то есть SetLength будет вызвано B раз |