Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

.Items , .lines [D6, Win2k]


Ragazor ©   (2004-08-30 14:27:00) 

Как правильно объявить в типе сабж
TAdata = class(Tobject)
  ItemID: array [0..100] of integer;
  ItemName: array[0..100] of string;
  ItemDescr: array[0..100] of string;
  ItemNotes: array[0..100] of Ansistring;
  ItemATTR: array[0..100] of string;
...
Вот ItemID нужен как .Items типа стринг


Ragazor   (2004-08-30 15:26:00) [1]

о, это уже то, что я криво просил...


icWasya   (2004-08-30 15:19:00) [2]


TAdata = class(Tobject)
private
  FItemID: array [0..100] of integer;
  FItemName: array[0..100] of string;
  FItemDescr: array[0..100] of string;
  FItemNotes: array[0..100] of Ansistring;
  FItemATTR: array[0..100] of string;
 function GetItemID(index:Integer):Integer;
 function GetItemName(index:Integer):string;
 function GetItemDescr(index:Integer):string;
 function GetItemNotes(index:Integer):Ansistring;
 function GetItemATTR(index:Integer):string;
 procedure SetItemID(index:Integer;Value:Integer);
 procedure SetItemName(index:Integer;const Value:string);
 procedure SetItemDescr(index:Integer;const Value:string);
 procedure SetItemATTR(index:Integer;const Value:string);
 procedure SetItemID(index:Integer;const Value:string);
public
 property ItemID[index:integer]:integer read GetItemID write SetItemId;
 property ItemName[index:integer]:String read GetItemName write SetItemName;

...
 end;

implementation
function TAdata.GetItemID(Index:Integer):Integer;
begin
 if (Index<0) or (Index>100) then Exception.CreateFMT('Index Error %d',[Index]);
 Result:=FItemID[Index];
end;

procedure TAdata.SetItemID(Index:Integer;Value:Integer);
begin
 if (Index<0) or (Index>100) then Exception.CreateFMT('Index Error %d',[Index]);
 if FItemID[Index] = Value then Exit;

 FItemID[Index]:=Value;
end;

а лучше посмотреть property+F1


default   (2004-08-30 15:19:00) [3]

TMyClass = class
private
 FItems: TStrings;
protected
 procedure SetItems(const Value: TStrings); virtual;
public
 property Items: TStrings read FItems write SetItems;
end;

procedure TMyClass.SetItems(const Value: TStrings);
begin
 if Assigned(FItems) then
   FItems.Assign(Value)
 else
   FItems := Value;
end;

что-то навроде этого


Digitman   (2004-08-30 15:17:00) [4]


> Ragazor   (30.08.04 15:11) [9]


да с какого перепугу-то св-во ItemId[] будет текстовым ?!
если соотв.одноим.массив у тебя имеет тип эл-тов integer ?!


Ragazor   (2004-08-30 15:11:00) [5]

to default
\\Вот скажем Combobox имеет св-во Items(это TStrings)
ну так что написать вроде:
type ...
ItemID:Tstrings;
...
?


default   (2004-08-30 15:06:00) [6]

1)"Вот ItemID нужен как .Items типа стринг(это String)"
2)"Вот скажем Combobox имеет св-во Items(это TStrings)
вот и мне такое объявить нужно в Type"
вот вам типа задачка что же мне нужно надо отгадать
кто отгадает тому бонус ввиде спасиба


GuAV   (2004-08-30 15:03:00) [7]


> Вот ItemID нужен как .Items типа стринг

так и делай.

type
 TItemID = class(TStrings)
 ...
 end;

 TAdata = class(Tobject)
   ItemID: TItemID ;


Digitman   (2004-08-30 15:03:00) [8]


> Ragazor   (30.08.04 14:51) [2]
> сори, я на скорую руку спешу очень...


а вот спешка-то как раз нужна в оч известных случаях


>   ItemName: array[0..100] of string; //раз !
>   ItemDescr: array[0..100] of string; //два !
>   ItemNotes: array[0..100] of Ansistring; //три !
>   ItemATTR: array[0..100] of string; //четыре !
> ...
> Вот ItemID нужен как .Items типа стринг


ты мозгами-то шевели малясь !

ты хочешь вернуть некое значение типа String

в твоем классе аж 4 поля такого типа могут возвращать значение данного типа

что, догадываться нужно о каком поле идет речь ?


GuAV   (2004-08-30 15:02:00) [9]


> Вот ItemID нужен как .Items типа стринг

так и делай.

type
 TItemID = class(TStrings)
 ...
 end;

 TAdata = class(Tobject)
   ItemID: TItemID ;


KSergey   (2004-08-30 15:00:00) [10]

> [3] default ©   (30.08.04 14:57)
> а исходники открыть?

Он спешит, ему некогда


default   (2004-08-30 14:57:00) [11]

Ragazor   (30.08.04 14:51) [2]
а исходники открыть?(а вообще почитать как свойства объявляются...)


Ragazor   (2004-08-30 14:51:00) [12]

сори, я на скорую руку спешу очень...
Вот скажем Combobox имеет св-во Items
вот и мне такое объявить нужно в Type


Digitman   (2004-08-30 14:38:00) [13]


> Как правильно объявить в типе сабж


что еще зв тип "сабж" ? ты про пунктуацию в рус.языке слышал хоть что-нибудь ?


> Вот ItemID нужен как .Items типа стринг


бред какой-то ... имзложи мысль нормальным языком программиста !


Наверх

Титульная страница Поиск, карта сайта Написать письмо