Size: a a a

2020 August 31

GB

George Bakhtadze in Delphi & Lazarus
Generic.Collections совместим с дельфи по идее
источник

Y

YuS in Delphi & Lazarus
Мне показалось что с Generic.Collections комфортней работать
источник

RS

Renat Suleymanov in Delphi & Lazarus
Лично я работаю с родным лазарусовским fcl-stl, хотя конечно совместимости с Delphi неи
источник

АВ

Александр В... in Delphi & Lazarus
А я к fgl привык через боль😄 хотя к простому TList и играми в наследование привык еще во времена D7😄
источник

RS

Renat Suleymanov in Delphi & Lazarus
https://github.com/Al-Muhandis/chgk
Ну мало ли, может кому пригодится )
источник
2020 September 01

RS

Renat Suleymanov in Delphi & Lazarus
К сожалению, обнаружил, что index может быть только Integer. Как думаете, есть ли красивый выход из этой ситуации или на каждый объект TValuteItem придется создавать свой геттер метод?
 { TValuteList }

 TValuteList = class
 private
   FValuteItems: TStringList;
   function GetValutes(Index: String): TValuteItem;
 public
   constructor Create;
   destructor Destroy; override;
   property Valutes[Index: String]: TValuteItem read GetValutes;
 published
   property GBP: TValuteItem read GetValutes('GBP');
   property USD: TValuteItem read GetValutes('USD');
 end;

... ... ...

function TValuteList.GetValutes(Index: String): TValuteItem;
var
 aIndex: Integer;
begin
 if FValuteItems.Find(Index, aIndex) then
   Result:=TValuteItem(FValuteItems.Objects[aIndex])
 else begin
   Result:=TValuteItem.Create;
   FValuteItems.AddObject(Index, Result);
 end;
end;
P.S. FreePascal, структура published свойств определяется не мной (
источник

SB

Sergey Bodrov in Delphi & Lazarus
А нефиг всякую ерунду индексом называть =)
источник

SB

Sergey Bodrov in Delphi & Lazarus
Есть же ISO 4217, там и буквенные и цифровые коды
источник

SB

Sergey Bodrov in Delphi & Lazarus
А как по буквенному ключу получить значение - можно подсмотреть в TStringList.Values
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
А нефиг всякую ерунду индексом называть =)
Ну это реально индекс только строкой.  Ну и дело не в названии
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
А как по буквенному ключу получить значение - можно подсмотреть в TStringList.Values
Я ж и использовал его.
источник

Ш

Шляпник in Delphi & Lazarus
может вместо стринглиста дженерик использовать?
источник

Ш

Шляпник in Delphi & Lazarus
дженерик спокойно работает с любыми индексами
источник

RS

Renat Suleymanov in Delphi & Lazarus
Шляпник
дженерик спокойно работает с любыми индексами
Не понял как помоожет. Буду у компа уточню аопрос
источник

Ш

Шляпник in Delphi & Lazarus
а понял в чём затык, это я не так немного проблему понял
источник

Ш

Шляпник in Delphi & Lazarus
у тебя индекс произвольный или ограниченного диапозона?
источник

RS

Renat Suleymanov in Delphi & Lazarus
Шляпник
у тебя индекс произвольный или ограниченного диапозона?
Ну .. ограниченного в принципе
источник

RS

Renat Suleymanov in Delphi & Lazarus
Их штук 15 может... поэтому и сказал, что можно вручную на каждое свойство поле сделать и геттер
источник

Ш

Шляпник in Delphi & Lazarus
источник

RS

Renat Suleymanov in Delphi & Lazarus
Массивом бы сделал без проблем
источник