Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Вниз
Как правильно реализовать? Найти похожие ветки
← →
Andy BitOff © (2004-08-24 23:32) [0]Надо так:
type
TSome = class
private
...
FJobNumber : array of integer;
FHowUsesRate : array of Real;
...
function GetHowUsesRate(index: integer): Real;
function GetJobNumber(index: integer): integer;
procedure SetJobNumber(index: integer; JobNumber : integer; HowUsesRate : Real);
public
Procedure AddJobNumber(JobNumber: integer; HowUsesRate : Real);
function CountJobNumber: integer;
function CountHowUsesRate: integer;
...
/////////////// Несовместимость типов!!!!!!!!
property JobNumber [index : integer] : integer read GetJobNumber write SetJobNumber;
///////////////
property HowUsesRate [index : integer] : Real read GetHowUsesRate;
end;
implementation
function TSome.CountJobNumber: integer;
begin
Result := Length(FJobNumber);
end;
function TSome.GetJobNumber(index: integer): integer;
begin
Result := FJobNumber[index];
end;
procedure TSome.SetJobNumber(index: integer; JobNumber : integer; HowUsesRate : Real);
begin
FJobNumber[index] := JobNumber;
FHowUsesRate[index] := HowUsesRate;
end;
procedure TSome.AddJobNumber(JobNumber: integer; HowUsesRate : Real);
begin
SetLength(FJobNumber,Length(FJobNumber)+1);
SetJobNumber(Length(FJobNumber),JobNumber,HowUsesRate);
end;
HowUsesRate должна быть записана вместе с JobNumber, но так как я написал не катит.
Как правильно?
← →
Andy BitOff © (2004-08-24 23:34) [1]Ошибка в строке 17 :)))
← →
Алхимик © (2004-08-24 23:45) [2]
> [1] Andy BitOff © (24.08.04 23:34)
> Ошибка в строке 17 :)))
Типа подсказка?
← →
Andy BitOff © (2004-08-24 23:55) [3]Типа там несовместимость и типа компилица не хотит. Типа очень надо, а не хотит.
← →
Алхимик © (2004-08-25 00:19) [4]
function TSome.GetJobNumber(index: integer): integer;
procedure TSome.SetJobNumber(index: integer; const Value: integer);
А как ты себе это представляешь:
procedure SetJobNumber(index: integer; JobNumber : integer; HowUsesRate : Real); ?
Пример обращения к этому свойству в коде програмы?
← →
Andy BitOff © (2004-08-25 00:28) [5]Пример обращения такой:
var
a:TSome;
begin
...
a.AddJobNumber(2, 1.5);
или
var
a:TSome;
begin
...
a.SetJobNumber(1, 2, 1.8);
HowUsesRate не могет быть записана на прямую. Она напрямую связана с JobNumber и если меняется JobNumber, то и HowUsesRate тоже должна быть изменена или подверждена, если значение не меняется.
← →
Andy BitOff © (2004-08-25 00:29) [6]При этом должна быть возможность прочитать их по отдельности.
← →
Алхимик © (2004-08-25 00:34) [7]Ну мухи отдельно, котлеты отдельно.
Как ты собираешься писать в property JobNumber?
Может в свойствах оставить только методы чтений, а коли
> HowUsesRate не могет быть записана на прямую. Она напрямую
> связана с JobNumber и если меняется JobNumber, то и HowUsesRate
> тоже должна быть изменена или подверждена, если значение
> не меняется.
то и писать их отдельными методами?
← →
Andy BitOff © (2004-08-25 00:38) [8]Т.е. так(?):
type
TSome = class
private
...
FJobNumber : array of integer;
FHowUsesRate : array of Real;
...
function GetHowUsesRate(index: integer): Real;
function GetJobNumber(index: integer): integer;
public
Procedure AddJobNumber(JobNumber: integer; HowUsesRate : Real);
function CountJobNumber: integer;
function CountHowUsesRate: integer;
procedure SetJobNumber(index: integer; JobNumber : integer; HowUsesRate : Real);
...
/////////////// Несовместимость типов!!!!!!!!
property JobNumber [index : integer] : integer read GetJobNumber;
///////////////
property HowUsesRate [index : integer] : Real read GetHowUsesRate;
end;
implementation
function TSome.CountJobNumber: integer;
begin
Result := Length(FJobNumber);
end;
function TSome.GetJobNumber(index: integer): integer;
begin
Result := FJobNumber[index];
end;
procedure TSome.SetJobNumber(index: integer; JobNumber : integer; HowUsesRate : Real);
begin
FJobNumber[index] := JobNumber;
FHowUsesRate[index] := HowUsesRate;
end;
procedure TSome.AddJobNumber(JobNumber: integer; HowUsesRate : Real);
begin
SetLength(FJobNumber,Length(FJobNumber)+1);
SetJobNumber(Length(FJobNumber),JobNumber,HowUsesRate);
end;
← →
Andy BitOff © (2004-08-25 00:39) [9]Тьфу, забыл коментарии убрать.
← →
Andy BitOff © (2004-08-25 00:41) [10]Вообщем согласен :) Наверное поздно уже, башка не варит :) А вообще спасибо.
← →
Алхимик © (2004-08-25 00:43) [11]Наверно.
В блокноте чтоли пишешь? Delphi подпряги :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c