Текущий архив: 2005.09.25;
Скачать: CL | DM;
Вниз
Ну почему мне проще написать ... Найти похожие ветки
← →
Валя (2005-08-17 14:57) [0]... такой класс, чем наследника TList. Может мне кто объяснит как этот класс реализовать в виде наследника TList?
type
TOpenFileStruc = record
FullName:string;
ShortName:string;
Saved:boolean;
Year:string;
Conf:string;
end;
TOpenedFiles = class(TObject)
private
FOpenedFiles: array of TOpenFileStruc;
function GetItem(Index: Integer): TOpenFileStruc;
procedure SetItem(Index: integer; Value: TOpenFileStruc);
public
function Add(Value: TOpenFileStruc): Integer;
function Count : integer;
procedure Delete(Index: integer);
property OpenedFiles[Index: Integer]: TOpenFileStruc read GetItem write SetItem; default;
end;
implementation
function TOpenedFiles.Add(Value: TOpenFileStruc): Integer;
begin
SetLength(FOpenedFiles, Length(FOpenedFiles)+1);
SetItem(Length(FOpenedFiles)-1, Value);
Result := Length(FOpenedFiles)-1;
end;
function TOpenedFiles.Count : integer;
begin
if FOpenedFiles <> nil then Result := Length(FOpenedFiles) else Result := 0;
end;
procedure TOpenedFiles.Delete(Index: integer);
var
i:integer;
begin
if index <= Count then begin
if index < Count then begin
for i := index to count-2 do begin
FOpenedFiles[i] := FOpenedFiles[i+1];
end;
end;
SetLength(FOpenedFiles, Length(FOpenedFiles)-1);
end;
end;
function TOpenedFiles.GetItem(Index: Integer): TOpenFileStruc;
begin
Result := FOpenedFiles[Index];
end;
procedure TOpenedFiles.SetItem(Index: integer; Value: TOpenFileStruc);
begin
FOpenedFiles[index] := Value;
end;
← →
Гаврила © (2005-08-17 15:01) [1]Для этого вообще не обязательно писать наследника Tlist
И разумеется не обязательно городить этот огород ,ибо он работает намного менее оптимально ,чем TList
type
POpenFileStruc = ^TOpenFileStruc;
И добавляй в список указатели (не забывая выделять и освобождать память)
← →
Digitman © (2005-08-17 15:04) [2]
> почему мне проще написать
потому что изобретатели велосипедов никогда не переведутся на белом свете
← →
TUser © (2005-08-17 18:38) [3]Ну, мне тоже было бы проще. И память оптимальнее используется - не тратится на хранение указателей. И удобнее, имхо. Удлиннение массива лучше сделать примерно так же, как у Борланда - см. методл Grow.
← →
alex_*** (2005-08-17 18:46) [4]сделать наследник TObjectList куда запихать классы, преобразованные из TOpenFileStruc. ИМХО: надежнее и проще.
Страницы: 1 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.031 c