|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Аналог TStringList для вещественных чисел
Хотелось бы поиметь аналог класса TstringList для вещественных чисел, так как необходима ассоциативность массива, в идеале:
List.Values['a'] := 3.265482; Использовал TDictionary, там список переменных типа Variant, приводит к сильному тормозу проги, а считать приходится много. Поиск мне не помог, хотя как мне кажется вопрос тривиальный. Последний раз редактировалось bossyara, 08.10.2011 в 01:56. |
#2
|
||||
|
||||
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Tfloat=class //создаем новый класс i:integer; end; var Form1: TForm1; List:TstringList ; float:Tfloat;//объявляем переменную этого класса implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //инициалтзация объектов List:=TstringList.Create ; float:= Tfloat.Create; float.i:=43; list.AddObject('Элемент',float); //добавление строчки и привязанного к нему объект float form1.Caption:=inttostr(Tfloat(list.Objects[list.IndexOf('Элемент')]).i); end; end. IndexOf это свойство возвращает индекс элемента по его названию, как раз то что тебе нужно.. |
#3
|
|||
|
|||
Супер!!! Моя ошибка что я заганял переменную типа, а не объект класса. Спасибо
|
#4
|
||||
|
||||
Как-то не кошерно в типа TObject хранить число.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
Цитата:
не, конечно можно и такой финт ушами сделать var i:integer; .................................................. .. MyList.AddObject('элемент',TObject(i)); |
#6
|
||||
|
||||
Цитата:
По смыслу напрашивается такой подход: Код:
type TInteger = class private FValue: integer; procedure SetValue(aValue: integer); function GetValue: integer; public property Value: integer read GetValue write SetValue; constructor Create(aValue: integer); end; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
Просто главное до автора смысл довести, что помимо строчек в TStringList можно хранить и объекты(хотя указатели на объекты лучше бы были).
А так да, полностью согласен с предыдущем постом! |
#8
|
|||
|
|||
Может быть Вы правы!!!, но во-первых, надо закидывать все-таки действительное число, а не целое. И обязательна асоциативность массива. В любом случае мне главное чтоб считало правильно и скорость была приемлимая, поскольку програма не в коммерческих, а в научных целях используется!!!
|
#10
|
|||
|
|||
А ассоциации к примеру ['p']=3.13456 ???
|
#11
|
||||
|
||||
Ну ведь указали только направления для размышления, полностью код за вас никто не напишет.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#12
|
|||
|
|||
Вот поэтому меня вполне устраивает вариант с списками. Спасибо!!!
Кстати, часто бывает, что рабочий холодильник используется как шкаф |