![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно реализовать?
Andy BitOff © (2004-08-24 23:32:00)Надо так:
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, но так как я написал не катит.
Как правильно?
Алхимик (2004-08-25 00:43:00) [1]Наверно.
В блокноте чтоли пишешь? Delphi подпряги :)
Andy BitOff (2004-08-25 00:41:00) [2]Вообщем согласен :) Наверное поздно уже, башка не варит :) А вообще спасибо.
Andy BitOff (2004-08-25 00:39:00) [3]Тьфу, забыл коментарии убрать.
Andy BitOff (2004-08-25 00:38:00) [4]Т.е. так(?):
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;
Алхимик (2004-08-25 00:34:00) [5]Ну мухи отдельно, котлеты отдельно.
Как ты собираешься писатьв property JobNumber?
Может в свойствах оставить только методы чтений, а коли
> HowUsesRate не могет быть записана на прямую. Она напрямую
> связана с JobNumber и если меняется JobNumber, то и HowUsesRate
> тоже должна быть изменена или подверждена, если значение
> не меняется.
то и писать их отдельными методами?
Andy BitOff (2004-08-25 00:29:00) [6]При этом должна быть возможность прочитать их по отдельности.
Andy BitOff (2004-08-25 00:28:00) [7]Пример обращения такой:
var
a:TSome;
begin
...
a.AddJobNumber(2, 1.5);
или
var
a:TSome;
begin
...
a.SetJobNumber(1, 2, 1.8);
HowUsesRate не могет быть записана на прямую. Она напрямую связана с JobNumber и если меняется JobNumber, то и HowUsesRate тоже должна быть изменена или подверждена, если значение не меняется.
Алхимик (2004-08-25 00:19:00) [8]
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-24 23:55:00) [9]Типа там несовместимость и типа компилица не хотит. Типа очень надо, а не хотит.
Алхимик (2004-08-24 23:45:00) [10]
> [1] Andy BitOff © (24.08.04 23:34)
> Ошибка в строке 17 :)))
Типа подсказка?
Andy BitOff (2004-08-24 23:34:00) [11]Ошибка в строке 17 :)))